DSMALL远程文件包含审计
审计
首先定位到 /application/home/controller/Connectwx.php的get_url_contents()方法
1 | public function get_url_contents($url){ |
这里首先判断allow_url_fopen配置是否开启,开启之后直接使用file_get_contents()方法获取文件内容,没有任何过滤
否则就使用curl()函数获取远程内容,这时候容易产生ssrf漏洞
触发
http://localhost/public/home/Connectwx/get_url_contents/?url=http://localhost/webshell.php
修复
把public该为 private,使得它只能在类的内部被调用,外部代码无法直接访问它。这样可以防止外部用户通过构造特定的输入直接调用该方法,外部无法直接访问该方法,必须通过类中受控的公开方法来间接调用,例如通过以下安全接口:
1 | public function fetch_image($url) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 X1ly?S!
评论