CTFHub----WEB-SSRF全网最详细的保姆级教程!!!!!!
詹姆诗 2024-08-29 08:33:04 阅读 65
Web--SSRF
第一部分
内网访问
1.从目标主机内网环境访问本地的flag.php.我们构造url:
伪协议读取文件
1.伪协议有以下几种类型
类型
file:///-------- 本地文件传输协议,主要用于访问本地计算机中的文件
dict://
sftp://
ldap://
tftp://
gopher://
2.在这里我们用的是第一个 file:///,去访问本地计算机中的文件,访问成功后看见有三个问号
3.查看一下源代码我们就可以获得flag
端口扫描
1.根据题目提示我们知道端口号在8000-9000之间,使用bp抓包并进行爆破
2.然后我们进行抓包
3.设置变量的类型数值和范围(8000-9000)
4.爆破结果:8438端口
5.我们尝试访问,成功访问
第二部分
POST请求
1.我们正常访问127.0.0.1/flag.php 会得到一个输入框
2.查看源代码会得到一个key值:
3.抓包后进行二次url编码
4.输入这串post请求:我们得到flag
gopher://127.0.0.1:80_POST%20/flag.php%20HTTP/1.1%0AHost%3A%20challenge-ca44b55c9bfc8f84.sandbox.ctfhub.com%3A10800%0AContent-Length%3A%2036%0AContent-Type%3A%20application/x-www-form-urlencoded%0A%0Akey%3Df270d6cb0169ae25d9c691a23f96e397
上传文件
1.我们直接访问flag.php发现没有提交按钮,所以我们需要自己写一个按钮,前端的东西还是很容易修改 的, 把这个<input type="submit" name="submit">标签直接插入到下列html中去
2.然后随便提交一个小文件进行抓包
3.然后就跟上面一样了,复制下来进行二次url编码,第一次还是先把%0A替换为%0D%0A,第二次编码之后直接把编译后的东西打入到gother协议中.
FastCGI协议
1.在kali执行一句话木马生成shell.php
2.生成编码,进行解码
3.将编码写入网站
4.打开菜刀添加shell.php
5.打开根目录查看flag文件夹获得flag
Redis协议
1.输入python2 gopherus.py --exploit redis启动环境获得payload
2.进行url编码
3.查看shell.php是否安装
4.在shell.php中get传参写入命令查看flag
5.找到文件flag后cat查看f,获得flag
第三部分
URL Bypass
我们用HTTP基本身份认证绕过
构造payload:
成功获得flag
数字IP Bypass
题目不让我们使用十进制了,我们可以尝试一下16进制
十进制:127.0.0.1
十六进制:0x7f000001 (127转换为16进制是0x7f, 剩下的'点' 和 '0' 都是0, 1还是1.
成功获得flag:
302跳转 Bypass
从题目可知我们需要绕过对ip的检测从而访问到位于127.0.0.1的flag
1.访问网页下的第一个文件flag.php,里面没有发现 hacker! Ban Intranet IP这句话
2.我们来访问第二个index.php,里面出现了hacker! Ban Intranet IP这句话,下面红框中表明限制了这几种IP
3.,我们可以使用localhost来代替,也是本机的意思.成功获得flag
DNS重绑定 Bypass1
1.我们利用下面这个网站进行dns重绑定rbndr.us dns rebinding service (cmpxchg8b.com)
https://lock.cmpxchg8b.com/rebinder.htmlrbndr.us dns rebinding service (cmpxchg8b.cozhegrbndr.us dns rebinding service (cmpxchg8b.com)
将ab都设置127.0.0.1和127.0.0.2,使得两个都能访问localhost
构造payload获得flag
url?url=7f000001.7f000002.rbndr.us/flag.php
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。