《Metasploit渗透测试魔鬼训练营》 之 命令注入
来源:互联网 发布:ntfs for mac osx9.5 编辑:程序博客网 时间:2024/06/10 02:56
命令注入漏洞就是让WEB应用执行原来没有的命令,该命令可以是操作系统命令,也可能是一段自定义的脚本程序。在《Metasploit渗透测试魔鬼训练营》书中,作者对wordpress插件Zingiri存在的一个命令注入漏洞进行了分析,但对漏洞的成因讲解的不是特别明确。
一、漏洞触发交互过程
在触发漏洞的过程中,用wireshark进行截获数据包,发现该漏洞的触发先后调用了Zingiri插件的四个文件:ajaxfilemanager.php, ajax_file_cut.php, ajax_create_folder.php, ajax_save_name.php。
二、关键函数讲解
(一)SessionAction类
该类的定义在class.sessionaction.php中,和漏洞相关的两个函数定义如下:
其中$selectedDocIndex是该类定义的一个变量,值为 'ajax_selected_doc'。
可以看到,sessionaction类的seth和get函数是对$_SESSION[‘ajax_selected_doc’]变量的存取功能。
(二)displayArray函数
该函数定义在function.base.php中,如下:
该函数是主要是打印传递进来的$array数组。
(三)writeInfo函数
该函数同样定义在function.base.php中,如下:
该函数主要功能是将传递进来的$data变量内容写入data.php文件中。
(四)ob_start()、ob_get_clean()函数机制
下面通过代码示例说明该函数的作用:
将第四行代码注释时,没有输出”Hello World”;将注释去除后,输出”Hello World”。
三、漏洞触发位置
通过wireshark截获的交互过程分析,先后分析了调用的四个文件。发现漏洞触发的关键代码位于ajax_file_cut.php、ajax_save_name.php,两个文件关键代码如下所示:
ajax_file_cut.php关键代码
ajax_save_name.php关键代码
调用ajax_file_cut.php,该脚本通过$sessionAction->set()函数,将$_SESSION[‘ajax_sel
ected_doc’]赋值为$_POST[‘selectedDoc’],并且没有对该POST变量做任何限制和校验。
调用ajax_save_name.php,通过“1”将$_SESSION[‘ajax_selected_doc’]取出,通过“2”“3”将$_SESSION[‘ajax_selected_doc’]输出到data.php文件中。
由于没有对$_POST[‘selectedDoc’]做检查,所以将$_POST[‘selectedDoc’]构造成一个webshell,随后该webshell会被写入data.php文件中。
拜了个拜!
- 《Metasploit渗透测试魔鬼训练营》 之 命令注入
- 《Metasploit渗透测试魔鬼训练营》 之 SQL注入
- 《Metasploit渗透测试魔鬼训练营》 之 信息收集工具
- 《Metasploit渗透测试魔鬼训练营》 之 工具整理
- 《Metasploit渗透测试魔鬼训练营》 之 XSS
- 《Metasploit渗透测试魔鬼训练营》 之 文件包含
- Metasploit渗透测试魔鬼训练营
- 《Metasploit 魔鬼训练营》02 渗透测试实验环境
- 《Metasploit 魔鬼训练营》04 Web 应用渗透测试
- 《Metasploit 魔鬼训练营》08 移动环境渗透测试
- 《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例Oracle数据库
- 《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例MS08-067漏洞
- 《metasploit渗透测试魔鬼训练营》学习笔记第四章—web应用渗透
- 《metasploit渗透测试魔鬼训练营》学习笔记第五章--网络服务渗透攻击
- 《metasploit渗透测试魔鬼训练营》学习笔记第六章--客户端渗透
- 《metasploit渗透测试魔鬼训练营》靶机演练之第五章实战案例KingView 6.53版本CVE-2011-0406漏洞
- 《metasploit渗透测试魔鬼训练营》学习笔记第三章----情报搜集
- 《metasploit渗透测试魔鬼训练营》学习笔记第七章--社会工程学
- hdu 4432 Sum of divisors
- 数据存储之偏好设置
- Android基础小技术点:Android ListView设置背景图片及分割线、周边距
- Codeforces Round #324 B Kolya and Tanya
- XML,JSON数据结构解析
- 《Metasploit渗透测试魔鬼训练营》 之 命令注入
- Reverse Integer
- HDOJ 题目4856 Tunnels(BFS+状态压缩,TSP)
- HDU - 3045 Picnic Cows(斜率优化)
- u-boot-2009.11移植(适用于TQ2440和MINI2440)第五篇:修改配置文件
- 粒子系统属性Life,发射速率和总数的关系
- 《机器学习实战》kMeans算法(K均值聚类算法)
- secureCRT上传下载文件
- Linux实现四则运算的简单方法