内网访问
这一关我们直接访问127.0.0.1的flag.php
伪协议读取文件
这题题目让我们尝试去读取一下Web目录下的flag.php,而作为由linux搭建的靶场,其web目录为var/www/html,所以我们直接访问这个目录下的flag.php文件,然后右键查看源代码就可以看到flag(因为由<?Php?>包起来所以普通页面上看不到)
端口扫描
这一关提示我们端口在8000-9000之间,一个一个尝试很麻烦,所以我们直接利用burpsuit进行爆破,我们在抓包后,右键将包发送到intruder
然后选中端口位置,点击添加pyload位置
在选择pyload类型以及起始点后点击开始攻击
攻击完成后找到数据长度不一样的端口后点击响应包即可看到flag
POST请求
这一关题目提醒我们是发一个HTTP POST请求,并且ssrf是用php的curl实现的.还会跟踪302跳转.打开页面后我们先尝试在url位置输入127.0.0.1/flag.php后发现进入这样的页面
然后我们右键查看源代码,发现有一个key,直接将其复制粘贴到上面的输入框中,然后抓包进行提交
在抓到的请求包中,我们将代码删除到只剩下post请求头,host,content-type和content-length以及key(记得key上方一定要留一个空行)
然后将host位置的路径改为主机地址127.0.0.1:80,因为我们要将这个交给主机。
将上方我们修改过的包进行url编码,编码一次后将其中的%0a全部替换为%0d%0a,并且在最后方再加一个%0d%0a
然后再次编码一次
将获得的编码后的请求包用gopher协议发送到127.0.0.1:80上
即可获得flag
上传文件
打开链接后看到如下页面
因为它只有上传文件,没有提交按钮,我们无法提交我们上传的文件,所以我们右键,按下检查(或者直接f12),在页面html位置右键修改html,添加一个提交按钮<input type=”submit” name=”submit”>
然后随便上传一个内容小的文件,利用burpsuit开启抓包后点击提交,将请求包中内容与上一题一样删除到只剩下post请求头,host,content-type和content-length,然后将下面的几个小框框全部删除,再随便打两个文字上去
接下来的步骤就与post提交中一样了,将其拿去编码,替换后再次编码,利用gopher协议提交到127.0.0.1:80后获得flag
fastcgi协议
这一关开始前我们先到linux中利用gopherus生成一个gopher协议链接,具体语句如下图,其中echo "PD9waHAgQGV2YWwoJF9QT1NUW2NtZF0pOz8+" | base64 -d > shell.php是输出一个包含经过base64编码的一句话木马到目录中
然后将其生成的链接进行一次url编码后拼接到url=后出现下面页面后代表木马成功生成
我们访问木马文件后即可到”中国菜刀“中连接我们的木马文件,然后在根目录中即可找到flag
redis协议
我们去linux利用gopherus生成一个植入木马的gopher协议语句,具体输入语句如下图
将其复制去进行一次url编码
然后直接放到url=后运行
访问shell.php,出现如下页面后就是植入成功,由于我们是用post提交的,所以直接到中国菜刀中连接shell.php的地址
连接后在根目录下找到flag
URL BYPASS
这一关题目要求我们请求的URL中必须包含http://notfound.ctfhub.com,所以我们使用@符号将这个url与咱们想要访问的url连接起来,这样访问的仍然是@后面的地址
访问127.0.0.1的flag.php后发现flag
数字IP Bypass
这一关提示我们它ban掉了127以及172.不能使用点分十进制的IP,我们直接用localhost代替它,成功获取flag
302跳转 Bypass
这一关与上一关一样直接访问localhost/flag.php获取flag
DNS重绑定 Bypass
这一关提示我们cdn重绑定,在附件中我们可以找到一个链接如下
rbndr.us dns rebinding service
点击后进入如下页面
我们在其中填入127.0.0.1和127.0.0.2后可以获得一个拼接语句,直接将其复制粘贴到url后加上/flag.php即可获得flag