freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

ssrf内网渗透
FreeBuf_380808 2022-01-17 14:47:54 139480
所属地 四川省

ssrf

ssrf(服务端请求伪造)由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

一般情况下,SSRF攻击的应用是无法通过外网访问的,所以需要借助目标服务端进行发起,目标服务器可以链接内网和外网,攻击者便可以通过目标主机攻击内网应用。1642401914_61e5107ac40f200e66877.png!small?1642401942252

数据流:攻击者----->服务器---->目标地址

PHP中下面函数的使用不当会导致SSRF:

  • file_get_contents()

  • fsockopen()

  • curl_exec()

file_get_contents函数:

//读取PHP文件的源码:php://filter/read=convert.base64-encode/resource=ssrf.php
//内网请求:http://x.x.x.x/xx.index
if(isset($_GET['file']) && $_GET['file'] !=null){
$filename = $_GET['file'];
$str = file_get_contents($filename);
echo $str;
}

可以利用file协议读取本地文件http://10.2.13.34/pikachu/vul/ssrf/ssrf_fgc.php?file=http:////C:/phpStudy/WWW/y.txt1642401927_61e510872066ec52bf431.png!small?1642401954512

curl_exec函数:

前端传进来的url被后台使用curl_exec()进行了请求,然后将请求的结果又返回给了前端。

//接收前端URL没问题,但是要做好过滤,如果不做过滤,就会导致SSRF
$URL = $_GET['url'];
$CH = curl_init($URL);
curl_setopt($CH, CURLOPT_HEADER, FALSE);
curl_setopt($CH, CURLOPT_SSL_VERIFYPEER, FALSE);
$RES = curl_exec($CH);
curl_close($CH) ;

可以利用这个漏洞通过服务器去访问同一个网络中的其他服务器进行相关探测http://10.2.13.34/pikachu/vul/ssrf/ssrf_curl.php?url=http://10.2.3.227:80

1642401938_61e510926b3e1e8061f09.png!small?1642401965841

fsockopen函数

PHP fsockopen需要 PHP.ini 中allow_url_fopen选项开启。

$host=$_GET['url'];
$port=$_GET['port'];
//fsockopen(主机名称,端口号码,错误号的接受变量,错误提示的接受变量,超时时间)
$fp = fsockopen($host, intval($port), $errno, $errstr, 30);
if(!$fp){
echo "$errstr ($errno)<br />\n";
}else{
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: 127.0.0.1\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp,$out);
$content = '';
while(!feof($fp)){
$content .= fgets($fp,128);
}
echo $content;
fclose($fp);
}            

地址和端口用户可控,所以可以用来SSRF漏洞的利用。

常见绕过方法

特殊域名绕过(DNS解析)

配置域名的DNS解析到目标地址(A、cname等),这里有几个配置解析到任意的地址的域名:

nslookup 127.0.0.1.nip.io 
nslookup owasp.org.127.0.0.1.nip.io

xip.io是一个开源泛域名服务。它会把如下的域名解析到特定的地址,其实和dns解析绕过一个道理。
http://127.0.0.1.xip.io/
//会解析道本地的127.0.0.1              

IP转换进制

IP地址是一个32位的二进制数,通常被分割为4个8位二进制数。通常用“点分十进制”表示成(a.b.c.d)的形式,所以IP地址的每一段可以用其他进制来转换。

8进制格式:0177.0.0.1 
16进制格式:0x7F.0.0.1
10进制整数格式:2130706433(转16进制,在转10进制)
16进制整数格式:0x7F000001
还有一种特殊的省略模式,例如127.0.0.1这个IP可以写成127.1              

@绕过

http://example.com@127.0.0.1
# 这里的example.com可以任意替换,

参考

https://zhuanlan.zhihu.com/p/116039804

# web安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_380808 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
FreeBuf_380808 LV.4
这家伙太懒了,还未填写个人描述!
  • 9 文章数
  • 5 关注者
xxe漏洞利用
2022-01-17
利用burp生成POC验证CSRF
2022-01-17
JWT的越权
2022-01-17
文章目录