0x00 前言:
接下来的几篇是对PHP
代码审计中文件操作相关漏洞挖掘的总结。文件越权和上传漏洞在审计中非常常见,所以给你一套源码该如何去搜索这两类漏洞是这篇文章要讨论的。
0x01 越权访问的脑图
0x02 文件越权访问
Tips
:
PHP
中被引入的全局文件像global.php
和common.php
会对用户是否登录进行验证,如果未登录则跳转到登录页面,所以我们可以吧没有包含 global.php
和common.php
的php
文件定义为可越权访问的文件。在Linux
环境里可以使用find
命令快速定为可越权的文件:
1.在etc
下查找没有包含common.php
字符串的php
文件
find /etc -name "*.php" | xargs grep -L "common.php"
2.在etc
下查找所有包含common.php
字符串的php
文件
find /etc -name "*.php" | xargs grep "common.php"
案例:
缺陷编号:WooYun-2015-98084
漏洞标题:佑友mailgard
webmail
任意文件上传导致getshell
(无需登录)
漏洞链接:http://wooyun.org/bugs/wooyun-2010-098084
简单分析下这个漏洞,没有包含根目录下global.php
的文件,都不会跳转到登录界面即存在越权访问,所以查找可能存在越权访问的文件:
$ find -name "*.php" | xargs grep -L -E "^require_once.+(\.\.\/global|[^/]global)\.php.+;$"
结果如下:
./overflow_alarm.php
./sms_send.php
./src/old.rule.php
./src/public_folders_upload.php
./src/big_attach.php
./src/big_att_upload.php
./src/read_data.php
./src/upload.php
./sync/linkman.php
然后就可以进一步去发现敏感信息泄露、注入和上传等漏洞了。
0x03 文件上传漏洞
案例:
以某厂商http://www.xx00.com
的源码为例
1.首先全局搜索type="file"
来判断有没有上传点(关键词$_FILE
是查找上传文件逻辑处理的地方):
命令:
结果如下:
2.xx00
也是用的php
的框架,所以我们打开主页找mvc
框架的影子:
http://www.xx00.com/at/gold_auction/auction_details/532
http://www.xx00.com/at/index/baoming
根据上面两条和源码结构,判断功能函数在/application/controller/at/
目录下
并且判断出http
的请求功能函数时应该遵循domain/at/action/function/param
格式
3.我们打开/application/views/at/phone_test/display.php
,发现上传的action="upload"
4.打开/application/controller/at/phone_test.php
,找到upload
函数,分析代码可知有上传漏洞
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章