SSRF入门到进阶绕过

admin 2020年12月2日12:00:50评论10 views字数 2401阅读8分0秒阅读模式

0x00:基础知识点介绍

SSRF全称为Server-Side Request Forgery,翻译过来就是服务器请求伪造。简单的来讲就是攻击者诱使服务器端的应用程序向任意网站发起HTTP请求。目的就是为了连接其它的服务器或者是本身获取内部信息或者篡改某些内容。

 

先说一下针对服务器本身的SSRF攻击:

假如说服务器应用端没有对敏感词进行过滤的情况下,我们可以在客户端上发起HTTP请求指向127.0.0.1或者是localhost

 

举个例子,在一个电商APP上,客户如果想在特定的店铺购买某些东西的话就需要看看库存够不够,不够的话也买不了。而APP为了显示库存量信息,必须根据客户选定的商品和店铺向后端发送REST API(即把前端的HTTP请求传给相关后端API,然后再返回信息)如果通过抓包,请求大概会是这样的:

POST /product/stock HTTP/1.0

Content-Type: application/x-www-form-urlencoded

Content-Length: 118

 

stockApi=http://stock.weliketoshop.net:8080/product/stock/check%3FproductId%3D6%26storeId%3D1

 

然后服务器会根据这个请求给发给特定的URL,接收商品库存状态再返回给用户。当然问题就出在给特定的URL这里了,如果没有特定的防护,可以通过抓包把URL指向服务器本身比如这样:

POST /product/stock HTTP/1.0

Content-Type: application/x-www-form-urlencoded

Content-Length: 118

 

stockApi=http://localhost/admin 

 

这种情况下服务器会获取到/admin里面的内容并返回给用户。正常情况下,在网页输入/admin会返回一个登录页面,你得有账号才能进去。可如果你通过抓包把URL指向服务器本身相当于我访问我自己是不需要验证的。直接放你过去。(可以理解为你用浏览器登录了一个页面随即你又删掉了,当你短时间内再次访问的时候是不需要输入账号密码的)

SSRF入门到进阶绕过

0x01:SSRF基础利用(针对自身后端系统)

这次的靶场引用PortSwigger的先看一下描述,靶场为了检查库存情况会通过内部系统获得数据。我们需要通过抓包更改其中里面的信息把URL指向admin,顺便把carlos删掉

SSRF入门到进阶绕过

SSRF入门到进阶绕过

点进去是这样的这里我选择Couple’s Umbrella

SSRF入门到进阶绕过

SSRF入门到进阶绕过

拉到下面有个check stock就是这个了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

用BURP抓包抓到一个stockApi,重点就是它了,把URL改为本地

SSRF入门到进阶绕过

SSRF入门到进阶绕过

变成localhost/admin以后偷渡成功,接下来还是把包发给Repeater先

SSRF入门到进阶绕过

SSRF入门到进阶绕过

这是发给Repeater的包

SSRF入门到进阶绕过

SSRF入门到进阶绕过

然后回到proxy那里抓取删除用户的包

SSRF入门到进阶绕过

SSRF入门到进阶绕过

对比下URL,只用把后面那部分复制下来就行了,点击GO以后

SSRF入门到进阶绕过

SSRF入门到进阶绕过

成功通关基础靶场

SSRF入门到进阶绕过

SSRF入门到进阶绕过

0x02:SSRF基础利用(针对其它服务器后端系统)

SSRF(服务器请求伪造)不仅可以让服务器访问自己,还可以访问某些用户访问不到的服务器后端。这些服务器大部分是在内网里面的,外面的用户很难访问到。根据外强内弱原则,只要你撬开了外网的大门走进去,基本上你会发现漏洞多的一匹。在大部分情况下,内部后端系统基本上不会像前端一样检验每个访问过来用户的身份。你可以随便进行访问大部分资源。

 

举个例子,假如说后端的管理系统是https://192.168.0.68/admin。那么我们可以构造一个SSRF攻击包请求如:

POST /product/stock HTTP/1.0

Content-Type: application/x-www-form-urlencoded

Content-Length: 118

 

stockApi=http://192.168.0.68/admin 

 

这次的靶场是这个,需要通过抓包然后扫出admin对应的IP然后再把carlos删了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

还是像常规的这样在check stock这里抓包,然后Burp这里会抓到一个

192.168.0.1:8080的包,我们的目标是找到

192.168.0.x:8080/admin这样的后台地址

SSRF入门到进阶绕过

SSRF入门到进阶绕过

启动Burp的Intruder的功能把1标绿

SSRF入门到进阶绕过

SSRF入门到进阶绕过

Payload里面选择Numbers类型,然后设置从1-255这样子,然后就可以点击start attack了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

最后通过长度判断出有一个返回为3316,可以确定IP为

192.168.0.231:8080/admin是后台了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

把包改了IP地址以后成功进入admin的Panel

SSRF入门到进阶绕过

SSRF入门到进阶绕过

最后在Repeater这里发送包以后刷新页面通关了,成功把用户删了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

0x03:进阶玩法一(绕过黑名单进制)

一些网站可能会针对SSRF做出一定的防护。比如禁止hostname出现127.0.0.1或者是localhost。如果请求包里面出现/admin也会被禁掉

也可以用以下方法进行绕过:

1. 短IP,用127.1来代替127.0.0.1,可以尝试在浏览器输入以下127.1,系统会自动帮你把127.1补成127.0.0.1

2. 注册一个域名,让系统把它解析为127.0.0.1

3. 使用URL编码或者大小写绕过

 

这次靶场对SSRF可利用点做了点防护

SSRF入门到进阶绕过

SSRF入门到进阶绕过

还是一样先抓包

SSRF入门到进阶绕过

SSRF入门到进阶绕过

测试了以下第一处防护地点就是把127.0.0.1给ban了

SSRF入门到进阶绕过

SSRF入门到进阶绕过

这里测试了以下可以换成短IP绕过

SSRF入门到进阶绕过

SSRF入门到进阶绕过

第二处防护应该就是这里对/admin进行过滤

SSRF入门到进阶绕过

SSRF入门到进阶绕过

查了以下可以对a进行双重编码来达到绕过效果

SSRF入门到进阶绕过

SSRF入门到进阶绕过

最后加上delete功能成功通关

SSRF入门到进阶绕过

SSRF入门到进阶绕过

通知!

公众号招募文章投稿小伙伴啦!只要你有技术有想法要分享给更多的朋友,就可以参与到我们的投稿计划当中哦~感兴趣的朋友公众号首页菜单栏点击【商务合作-我要投稿】即可。期待大家的参与~

SSRF入门到进阶绕过

记得扫码

关注我们

原文始发于微信公众号(字节脉搏实验室):SSRF入门到进阶绕过

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年12月2日12:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSRF入门到进阶绕过https://cn-sec.com/archives/1987496.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息