SSRF-服务器端请求伪造

SSRF介绍

SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由 服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的 内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔 离的内部系统)

 

开发需求:用户发表文章时插入链接,服务器请求链接内容获取title信息

实现结果:用户插入链接后,服务器对该链接发起请求并获取链接对应html内容title 标签部分,用户实现此功能时对应请求地址为 www.test.com/get_title.php?url=www.a.com

实现方式(关键步骤):

1.获取用户传递的url参数值

2.根据url的参数值发起http请求

3.获取页面中title标签内容并返回结果

036f985d74ab422d8c9706651fae1a52.png

预期的请求是从红色网站获取到的信息,但是这个红色部分没有做过滤和限制,我们可以任意的进行修改,然后访问到我们想访问到的东西,而不是网站正常业务逻辑想让我们看到的信息,这个时候,SSRF漏洞就诞生了

95c46beff571455cb5beb53cda127463.png

只要一个网页加载或读取了其他地址的内容,它就有可能导致SSRF的出现

 

SSRF可能出现的风险点

1.分享

728a6d7ff83a4c4c8759f78149cbf817.png

2.转码

c1fa3dae20724b92ade5008209b2a1d1.png

3.在线翻译

e6c9b82e3ff24b8eb2b5dc5c4f10a5f3.png

4.图片加载、下载

52731843ea2a4096b2658890a981744e.png

5.图片、文章收藏

 fcaeefbef87a4ebfa78e9da3d4f6f596.png

6.未公开的API

 

URL中的关键字:

share

wap

url

link

src

souurce

target

u


3g


dispaly


sourceURL


imageURL


domain

../api

98ce88caae72456d9014eaddc3c4b8c4.png

SSRF漏洞利用:

1.服务探测

2.协议

3.访问敏感数据

4.内网探测

C类:192.168.0.0-192.168.255.255
B类:172.16.0.0-172.31.255.255
A类:10.0.0.0-10.255.255.255


常见端口:
http 80
https 443
telnet 23
ftp 21
ssh 22
smtp 25
weblogic:
7001
tomcat:
8080
jboss:
8080
oralce:
1521
sqlserver:
1443

 

SSRF可以试试哪些协议:

(为什么要尝试这么多协议,是因为这个网站做防护的时候,可能屏蔽了某些协议,我们要试出来哪些协议没有做屏蔽)
ftp
dict
gopher
file
ladp
ssh
smb
http
https

 

file协议敏感文件读取:

file协议敏感文件读取:
winodws下:
C:\Windows\system.ini
C:\windows\system32\drivers\etc\hosts
C:\boot.ini //查看系统版本
C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件
C:\Windows\repair\sam //存储系统初次安装的密码
C:\Program Files\mysql\my.ini //Mysql配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //Mysql配置信息
Linux下:
/root/.ssh/authorized_keys //如需登录到远程主机,需要到.ssh目录下,新建authorized_keys文件,并将id_rsa.pub内容复制进去
/root/.ssh/id_rsa //ssh私钥,ssh公钥是id_rsa.pub
/root/.ssh/id_ras.keystore //记录每个访问计算机用户的公钥
/root/.ssh/known_hosts
//ssh会把每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。
/etc/passwd // 账户信息
/etc/shadow // 账户密码文件
/etc/my.cnf //mysql 配置文件
/etc/httpd/conf/httpd.conf // Apache配置文件
/etc/redhat-release 系统版本 
/root/.bash_history //用户历史命令记录文件
/root/.mysql_history //mysql历史命令记录文件
/var/lib/mlocate/mlocate.db //全文件路径
/proc/self/fd/fd[0-9]*(文件标识符)
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/porc/self/cmdline //当前进程的cmdline参数
/proc/sched_debug 配置文件可以看到当前运行的进程并可以获得对应进程的pid
/proc/pid/cmdline   则可以看到对应pid进程的完整命令行。
/proc/net/fib_trie   内网IP
/proc/self/environ   环境变量
/proc/self/loginuid   当前用户

防御方式:

1、禁用协议

2、限制请求端口

3、设置URL白名单

4、过滤返回信息

5、统一错误信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值