红队攻SSRF:那些年我们绕过的“内网大门”(附实战思路)
嘿,各位老铁,我是你们的老朋友,一个在安全圈摸爬滚打多年的“老红队”,今天咱们不聊那些高深莫测的0day,也不扯那些云里雾里的APT,咱们就来点实在的,聊聊红队视角下,那个又爱又恨的“SSRF”(服务端请求伪造),说真的,每次看到SSRF,我这心里啊,真是既兴奋又头疼——兴奋的是,这玩意儿往往是通往内网的“金钥匙”;头疼的是,要拿到这把钥匙,你还得跟它斗智斗勇,来来来,搬好小板凳,咱们泡杯茶,听我细细道来。
什么是SSRF?它凭啥是红队的“心头好”?
咱们先唠唠什么是SSRF,通俗点说,就是服务端像个傻白甜,被我们这些“狡猾”的攻击者当枪使,帮我们去访问它本不该访问的内网资源,你想想啊,服务器它自己就在内网里待着,它去访问内网的IP和端口,那可是“畅通无阻”的,而我们红队在外面,直接打内网?门儿都没有!但如果我们能找到一个SSRF漏洞,就等于让这个“傻白甜”服务器替我们去敲门,你说这能不香吗?
这玩意儿为啥是红队的最爱?我跟你讲,因为它的“性价比”实在太高了!你想想,一个简单的漏洞,可能就让我们从“外部攻击者”摇身一变成为“半内网用户”,咱们可以拿它来探测内网拓扑、扫描端口、攻击内网Web服务,甚至能直接打穿云平台的元数据服务(比如那个著名的169.254.169.254),拿到云主机的临时密钥!我的老天爷,那感觉,就像是一位武林高手突然拿到了藏宝图,能不激动吗?
红队实战:那些“花式”SSRF绕过技巧(重点来了!)
光说不练假把式,咱红队搞SSRF,最烦的就是碰到各种防护,咱们是谁啊?咱们是“打洞专家”啊!下面我就把我的私藏“绕过小本本”拿出来,跟大伙儿分享分享,看好了!
常规限制?我们直接“打码”绕过
很多开发者也不傻,他们会做一些简单的限制,比如只允许http/https协议,或者限制了IP,但这能难倒我们吗?嘿嘿,当然不能。
- URL解析差异:这时候,我就会用上我的“障眼法”,比如
http://evil.com@127.0.0.1,你看看,很多代码在解析URL时,会把后面的0.0.1当成路径,或者当成认证信息,从而放行,但实际请求时,服务器却老老实实地去访问0.0.1了,你说气不气人?还有那个http://127.0.0.1#evil.com,利用锚点来混淆,这些招数,其实就是利用了解析器之间认知的差异,玩的就是“灯下黑”的心理战。 - IP地址变换:再比如,我明明要打
0.0.1,但我偏不写这个,我写个十进制整数2130706433,看看能不能给我解析回去?实在不行,我还可以上短域名1,或者十六进制0x7f000001,总之啊,只要你的后端解析逻辑不够健壮,我总有办法“换个马甲”骗过你,这其中的乐趣,你懂的!
协议不光是http(s),还有一堆“宝藏”
老铁们,别总盯着http看啊,SSRF的魅力就在于,有时候服务端支持的协议越多,我们的“攻击面”就越大。
- file:// 协议:这可是读取本地文件的“神器”!
file:///etc/passwd,直接就能把服务器上的密码文件(如果权限允许)给拉出来,那感觉,就像是直接扒开了服务器的衣服,一览无余。 - gopher:// 协议:这个就更厉害了,简直是“万能协议”!它可以直接构造TCP数据包,去和任意的TCP服务进行交互,我可以利用gopher协议去攻击内网的Redis、MySQL,甚至直接打FastCGI,实现无文件RCE!兄弟们,这要是被我打通了,那咱们可就直接进内网“自由飞翔”了!你说刺激不刺激?
重定向?那是我们的“帮凶”
目标服务器本身就有合法的重定向功能,比如它请求了一个URL,然后这个URL告诉它,“你跳到新地址”去吧,这时候,我们就可以利用这个“跳转”,把目标引向我们真正的“目的地”。
- 比如我构造一个攻击者的站点,它返回一个302跳转,跳转到
http://169.254.169.254/latest/meta-data/,目标服务器傻乎乎地跟过去了,结果就泄露了云主机的关键信息,这招儿,我们戏称为“借刀杀人”,简直不要太爽!
为什么红队死磕SSRF?这玩意儿的价值有多大?
你可能要问了,费这么大劲,就为了搞个SSRF,值吗?那我可得好好跟你说道说道了。在红队评估中,SSRF的价值,往往不是独立的,而是一个“跳板”,它的核心价值在于打破网络边界,让我们从“网外”跨到“网内”,一旦我们拿到了内网资源,后面的事情,那可就是“海阔凭鱼跃,天高任鸟飞”了。
- 信息探测:我们可以用它扫描内网端口,绘制内网拓扑图,看看哪台机器上跑着什么业务,这可是后续攻击的关键情报。
- 攻击内网应用:内网里那些弱口令的Web系统、未授权访问的数据库、甚至打印机的管理后台,都有可能成为我们的突破口,SSRF就像是帮我们打开了一扇通往“宝藏”的大门。
- 直接getshell:就像我前面提到的,结合gopher协议去攻击内网的Redis服务,或者通过访问云元数据服务拿到高权限凭证,很多时候,从SSRF到获得服务器控制权,往往只有一步之遥!
你说,这玩意儿重不重要?值不值得咱们红队花大力气去研究?反正我是觉得,每一次成功绕过那些看似严密的防护,成功利用SSRF打进内网的那一刻,那种成就感,真的比喝了蜜还甜!
写在最后(一个老红队的碎碎念)
哎,唠了这么多,其实就想告诉大家,SSRF这个小东西,看似不起眼,但背后蕴含的攻防思想和技术深度,那可是相当了得,它考验的不仅仅是对代码的理解,更是对协议、对逻辑、对人性的洞察,作为红队,我们就是要不断挖掘这种“可能性”,用最小的成本,撕裂最坚固的防线。
当然啦,技术是把双刃剑,咱们聊这些,是为了更好地理解攻击,从而更有效地进行防御,如果你也对网络安全感兴趣,想成为一名像我一样(自恋一下,嘿嘿)的“侠客”,或者是想学习怎么防御这些攻击,都欢迎来跟我交流。
学习网络安全,或者对红队技术、SSRF攻防有独到见解的朋友,欢迎加QQ:3371496328(备注“博客交流”),咱们一起探讨,共同进步!

好了,今天就先到这儿吧,我得去喝口茶润润嗓子了,下次有机会,再跟老铁们聊聊别的有意思的攻防技巧!咱们江湖再见!

