gopher协议支持发出GET、POST请求:可以先截获get请求包和post请求包,在构成符合gopher协议的请求。gopher协议是ssrf利用中最强大的协议 得到伪造payload: ?url=gopher://127.0.0.1:80/_POST%2520/flag.php%2520HTTP/1.1%250D%250AHost:%2520challenge-3fe3506777a14929.sandbox.ctfhub.com:10800%250D%250AContent-...
访问flag.php 要上传文件给flag.php 又需要使用gopher协议并用gopher将文件传递给flag.php 首先给这个文件上传添加一个按钮 抓包 把host改为127.0.0.1 然后和上一题一样把抓到的包二次解码并用gopher协议传给flag.php 不过我这题好像环境有点问题。。。
error_reporting(0);//判断请求的ip,虽然不能访问127.0.0.1,但是可以使用Gopher协议绕过if($_SERVER["REMOTE_ADDR"]!="127.0.0.1"){echo"Just View From 127.0.0.1";return;}// 判断文件是否存在if(isset($_FILES["file"])&&$_FILES["file"]["size"]>0){echogetenv("CTFHUB");exit;}?> Upl...
CTFHub技能树通关教程——SSRF漏洞原理攻击与防御(二)(上传文件,FastCGI,Redis协议,URL Bypass)上传文件题目:这次需要上传一个文件到flag.php了.祝你好运访问内网下的127.0.0.1/flag.php,这里什么也没有,就一个上传文件,还没有提交按钮这里脑回路就来了,题目要
发现flag.php处是一个文件上传界面,但是缺少提交按钮, 修改前端页面,添加提交按钮: 1.png 2.png 先看一下flag.php的源码 利用file协议读取flag.php的源码: 请求包: GET /?url=file:///var/www/html/flag.php HTTP/1.1 Host: challenge-5a05d44ccb194622.sandbox.ctfhub.com:10080 User-Agent: Mozilla/5....
file伪协议几乎是ssrf中最常用的伪协议,我们可以尝试从服务器端任意读取文件。这里我使用的就是非常常见的网站文件路径。 端口扫描 首先构造为: ?url=dict://127.0.0.1:8000/ 然后我们用bp中的爆破模块就可以了 先用dict伪协议扫描,然后再访问。 扫到长度有明显差异的端口,查看一下: ...
CTFHub web SSRF 1.内网访问 2.伪协议读取文件 通过file协议读取文件 构造payload: ?url=file:///var/www/html/flag.php 查看源代码即可 3.端口扫描 通过dict协议用来探测开放的端口 构造payload: ?url=dict://127.0.0.1:端口号 题目说端口在8000-9000...
1.SSRF产生的原因 很多web应用都提供了从其他的服务器上获取数据的功能。使用用户指定的URL,web应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的web应用作为代理攻击远程和本地的服务器 SSRF 形成的原因往往是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过...
CTFHUB SSRF 上传文件 和上题一样步骤先读出源码。 index.php <!--?phperror_reporting(0);if (!isset($_REQUEST['url'])) {header("Location: /?url=_");exit;}$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $_REQUEST['url']);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch...
payload:?url=http ://notfound.ctfhub.com@127.0.0.1/302.php 这里的302.php是不存在的,当然其他的应该也可以,这时会有个回显提示说该文件不存在,由此我们知道我们通过该payload确实能够访问到文件。 方法:既然知道可以访问,那么我们可以目录遍历下,可以得到flag.php,就解出了flag。编辑...