四,post请求
1.打开环境,提示说发一个HTTP POST请求,ssrf是用php的curl实现的.并且会跟踪302跳转。
2.用dirsearch扫一下常见的端口,看到有三个可以访问的页面
3.构造伪协议,因为要通过172.0.0.1访问,我们需要bp抓包来修改,先访问一下302.php,没有什么,再访问flag.php,有一个key值,但是不是我们想要的东西。
4.看一下flag.php的源码,上面说使用gopher://协议进行传输,修改一下
5.进行二次编码(后面解释),再发送post请求,即可成功。
五,上传文件
1.提示说,需要上传一个flag.php文件,按照之前的惯例,就是上传一个一句话木马,先用file协议访问一下flag.php,看看它原本是什么,
2.看到里面有上传文件的位置,但是没有提交的按钮,那就自己加一个
语句: <input type="submit" value="提交">
3.上传文件后抓包,和上一题一样,需要两次编码,编码后放包访问就可以得到flag
六,FastCGI协议
附件:Fastcgi协议分析 && PHP-FPM未授权访问漏洞 && Exp编写-CSDN博客
1.进入Gopherus目录下,先弄一个payload出来
2.对payload编码
3.抓flag
4.二次编码
5.输入payload,访问
附
gopher协议
在SSRF中经常会使用Gopher来构造GET/POST包攻击应用
Gopherus:go语言的高效静态代码分析工具
1.为什么要用:
工具会对playload进行两次url转码,为了绕过网址访问时进行的url解码,故必须再次对工具构造的playload进行url编码。
2.使用流程
(1)kali下载:用root身份 git clone https://github.com/tarunkant/Gopherus.git
(2)进入该目录 cd Gopherus
(3)
./gopherus.py --exploit fastcgi 明确攻击协议
(4)工具提示先设置可访问的网页文件地址(一般是php文件),然后加载命令(shell)。
文件地址:/var/www/html/index.php(一般都是这个,如果不是用其他工具扫了看)
shell:输入ls / 看根目录,直接输ls应该看不到什么
(5)这样你就得到了一个已经编码过一次的payload,然后再编码一次(url编码),放到url里,就可以得到你想要的了。
(6)后面的步骤要看情况而定。
3.为什么要二次编码
kctf web方向与php学习记录24(SSRF续)_gopher --exploit fastcgi-CSDN博客文章浏览阅读645次。一,FastCGI协议根据附件提示,只要找到9000端口并监听,然后构造可执行任意代码的playload上传即可。这里推荐一款神器Gopherus,安装简单,装在kali里就可以了。工具会对playload进行两次url转码,为了绕过网址访问时进行的url解码,故必须再次对工具构造的playload进行url编码。1工具的使用首先,输入python gopherus.py --exploit fastcgi明确攻击协议,然后构造访问用的playload。工具提示先设置可访问的网页文件地址,然后加载命_gopher --exploit fastcgihttps://blog.csdn.net/weixin_46203060/article/details/109548606