-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathweb-ctf
39 lines (32 loc) · 1.48 KB
/
web-ctf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
## **1**1.X-Forwarded-For绕过服务器IP地址过滤##
可以使用:X-Forwarded-For: 127.0.0.1
另一种可能:Client-IP: 127.0.0.1
##**2**你必须让他停下
url:http://123.206.87.240:8002/web12/
writeup:因为图一直再刷,打开firefox调试器看到下方的图片一直在变,于是想到用burpsuite让他停下来,反复发送,得到10.jpg下面的flag
##变量1
url:http://123.206.87.240:8004/index1.php
##
代码为:
[code]
flag In the variable ! <?php
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
$args = $_GET['args'];
if(!preg_match("/^\w+$/",$args)){
die("args error!");
}
eval("var_dump($$args);");
}
?>
[/code]
根据最后一句代码:var_dump()可知,这是代码审计。。于是。。。于是。。。我想起了PHP里面的一个超级全局变量GLOBALS。
提示说flag在变量里面,经分析只要运行 eval("var_dump($$args);");,falg很有可能就会出来
$$args====>我们可以猜想$args很有可能是一个数组,应该想到的就是超全局变量$GLOBALS
他是用存储全局变量的,全局变量的值在这个超级全局变量里面是一个键值,先当于hashmap的键值对
全局变量可以通过变量名在$GLOBALS找到相对应的值。
eval()这个函数的作用是字符串里面的php代码按正常的php代码被执行
通过构造一个GET参数,直接传GET一个全局变量即可
http://123.206.87.240:8004/index1.php?args=GLOBALS