SSRF服务端请求伪造-橙子科技

课程讲的很细节,很多工具的小操作、小概念也讲的比较细,正好自己有些不太熟,方便复现了

重庆橙子科技SSRF靶场

NAT网络地址转换及SSRF漏洞原理

SSRF:服务端请求伪造

攻击目标:外网无法访问的内网系统

服务端提供了从其他服务器获取数据的功能,且没有对目的地址做过滤或限制

一开始讲解内外网的IP转换,听的懵,不过后来做实验比较清晰

站点快照,获取baidu robots(https://www.baidu.com/robots.txt) ,获取172网段下服务器内容

伪协议

file协议

利用file获取本地文件

内网端口扫描,获取服务banner信息

banner 信息来表示欢迎语,其中会包含一些敏感信息,所以获取 banner 也属于信息搜集的范畴。在渗透测试中,典型的 4xx、5xx 信息泄露就属于 banner 泄露的一种。在 banner 信息中,可以获取到软件开发商、软件名称、服务类型、版本号等。而版本号有时候就会存在公开的 CVE 问题,可以直接进行利用。

攻击内网应用程序,主要演示GET请求

file文件协议下访问路径:file:/// (/作为根目录

  • etc/passwd 输出用户

  • etc/hosts 判断网段

  • proc/net/arp arp缓存表,寻找内网其他主机

发现不全,于是先内网访问/探测,不关心对方是否存在HTTP服务,而是先用arp探测(可以直接用抓包,在SSRF页面下,将探测的url地址中最后一位设置为1-254的范围)

  • proc/net/fib_trie 显示当前网段的路由信息

至此,实现了内网的存活主机探测

dict伪协议

dict字典协议,获取字典资源

实现,内网下端口扫描、获取内网信息、爆破密码

length判断

ftp扫描也能用,但耗费时间长

HTTP协议

实现目录扫描

最后扫出了name 文件包含 shell 命令执行 phpinfo 探针

Gopher

发起get、post提交

1
2
3
4
curl gopher://127.0.0.1/123
nc -lvp 70
Connection from 127.0.0.1:64175
23

gopher请求不发送第一个字符,因此,第一位作为填充位,比如下划线

code exec 172.250.250.4 name.php

绕过技巧 & SSRF漏洞利用

环回地址

127.0.0.1转换为十六进制、八进制二进制等,前面加上进制标志

http://0x7f000001/flag.php

SSRF过滤的其他几个页面没有讲,以后搜索

302

http://127.0.0.1/flag.php

ip!

Warning: file_get_contents(http://121.43.53.23/index.php): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/html/6.php on line 58

没搞懂,没法复现,先跳过,应该就是访问公网ip的话,设置会302跳转

DNS重绑定攻击

短链接,URL变形,畸形URL,iframe攻击

两次DNS解析:对URL的host解析,使用curl发包解析;利用两次的时间差绕过,在这期间,更改域名对应的ip,实现突破同源策略或waf实现ssrf

GET和POST命令执行

后面拼接

render中没有结果

XXE漏洞

构造username和password的xml格式实现登录

实体引入/etc/passwd 打印

SQL

hackbar 两次编码

前端直接提交会进行一次url编码

空格换成%20

数据库/Redis实战攻击

mysql未授权查询

mysql未授权写入

tomcat文件写入,PUTtomcat通过PUT方法任意文件写入(CVE-2017-12615)漏洞复现 - Junglezt - 博客园

redis未授权webshell

redis未授权公钥写入

redis未授权计划任务

后面讲解不细致,只是告诉了你可以怎样操作一遍