1、内网访问
题目提示我们访问本机的flag.php,那我们便去访问一下
OK,出来结果
2、伪协议读取文件
题目告诉我们去读取一下web下的flag.php
web目录也就是网站目录,其实和上一道题在的目录是一样的,那么我们尝试去访问
这里没有,查看一下源代码
源代码也没有,尝试下一个 localhost
看一下源代码
源代码也没有,尝试换个协议file
没找到,看一下源代码
找到了
3、端口扫描
题目说端口范围在8000-9000,那我们需要用BP工具,把这个范围里的数字全部过一遍
在浏览器访问ip,抓包
抓到了,ctrl+i发送到inturder模块
把需要爆破的数字添加到payload里
在payload模块里,选择数值,从8000-9000,间隔为1,开始攻击
爆破出来的端口就是8247,答案就在下面的响应里
4、POST请求
题目告诉我们会跳转
我们先尝试一下
出来了一个对话框,我们看一下源代码
他告诉我们key=......这个就是答案,但是我们自己输入进去会跳转,所以我们要让浏览器自己输入进去,那我们需要先抓个提交的包
输入
抓包
抓到包之后把没用的先删掉,并且要用gopher协议去提交,因为在ssrf里要用gopher去代替POST协议,并且在后面加上文件的路径和端口,还要加上请求方式_POST加空格
接下来我们需要进行二次编码:复制,去到CTF工具箱进行第一次URL编码
编码完成之后,新建一个文本文档,在最后加上一个%0a,这是一个换行符,作用是告诉网站我们的数据到这里就结束了,然后再把所有的%0a全部替换为%0d%0a
完成之后复制我们修改完的包,进行第二次编码
编码完成之后就可以提交给网站了,这么做的目的就是让网站自己去发送请求
提交之后发现没有反应,原因就是网站不认识冒号进行二次编码后的字符,所以我们需要改回来,把%253A改为冒号,这样就得到了flag
5、上传文件
这一关和上一关差不多,只是多了创建木马文件,创建提交按钮这两个步骤
题目告诉我们需要上传一个flag.php
我们先照常访问一下flag文件
页面提示我们要上传一个网站的控制权,那毋庸置疑就是要让我们上传木马的,那么我们先写一个木马,1.php
但是由于网页上没有显示提交文件的按钮,那我们就自己去创建一个提交文件的按钮,按f12打开网站源代码,鼠标右键编辑html就可以创建了
接下来就可以去抓上传文件的包了
抓到之后还是先把没用的删掉,并且改为gopher协议
复制代码,进行第一次编码
把所有的%0a替换成%0d%0a
替换完成之后进行二次编码
编码完成之后放到网站里,并把冒号改回来,这样我们就得到了flag
6、FastCGI协议






echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php






7、Redis协议
上一关是攻击FastCGI协议,这一关是攻击Redis协议,方法都大差不差,我们简单说一下
在kali里把协议换成Redis
提示我们你想要什么,我们选phpshell,因为我们想要一个php木马
下面有说给他一个web网站的根目录,那我们也给他
下面又说给他一个php木马,那我们写一个
<?php @eval($_POST['cmd']);?>
得到答案之后进行一次URL编码
然后把编码复制到浏览器里,发现一直在转圈
那我们先看一下木马有没有写进去,但是我们刚刚没给文件名,那我们找一下,filename文件名,后面跟了个shell.php,那毋庸置疑这就是文件名了
那么我们尝试去访问一下
访问到了,说明木马写进去了,我们用蚁剑连一下
最后在根目录里找到了flag
8、URL Bypass
题目说必须包含http://notfound.ctfhub.com
那我们先尝试一下输入这个网站
发现什么都没有,那我们尝试去绕过,用@前是用户名,后是主机名的方法去尝试
得出结果
9、数字IP Bypass
题目说不可以使用127,172,十进制的IP
那我们尝试使用localhost绕过
成功了,我们还可以尝试使用16进制去绕过,把127.0.0.1转换为16进制
也是可以滴
10、302跳转 Bypass
题目提示我们如果我们访问IP的话就会把我们跳到其他网址
IP会遵循302跳转,但是localhost不会,我们尝试一下
成功
11、DNS重绑定 Bypass
题目提示我们链接中的附件可能有用
我们去访问一下附件里的链接,这是一个DNS域名重绑定系统的网站
如果要完成DNS重绑定,就必须要凑成IP的闭合,127.0.0.1和127.0.0.2都是我们的本机地址,这两个IP就可以凑成一个本机地址的闭环,不止0.2可以0.多少都可以
然后把这个域名输入到网站里,后面跟上文件名就可以了