curl_exec--任意文件读取

今天看到一段代码,如下,主要是使用curl发起网络请求然后返回客户端,这里我请求加载图片。


首先,这里parse_url只是负责字符串解析,并不判断协议真伪,如以下例子。


执行后结果如下:

array(3) {
  ["scheme"]=>
  string(3) "abc"
  ["host"]=>
  string(13) "www.baidu.com"
  ["path"]=>
  string(5) "/test"
}

其次,curl支持file伪协议,利用file伪协议可以获取本地文件系统
curl_exec--任意文件读取_第1张图片

直接上攻击测试例子:

http://192.168.224.130/1.php?URL=file://192.168.224.130/etc/passwd

php curl识别出来这是个file协议,他会忽略192.168.224.130,而是直接读取文件/etc/passwd。

reference
1.https://love.ranshy.com/file协议可能会引发的漏洞
2.https://zhuanlan.zhihu.com/p/27898202
3.http://vinc.top/2016/11/22/【ssrf】绕过姿势总结/
4.http://www.cnblogs.com/LittleHann/p/3665062.html

你可能感兴趣的:(curl_exec--任意文件读取)