**
0x01 原理分析
**
还是很早之前爆出来的漏洞,现在拿出来学习一下,参考阿里巴巴:
https://security.alibaba.com/...
漏洞发生在/inc/common.inc.php页面中。首先看这个函数:
首先使用ini_get来获取php.ini中变量'register_globals'的值,而register_globals代表的意思是提交的请求是否注册为全局变量,取值为OFF和ON,一般默认配置为OFF,那么将会执行extract()函数。
extract()函数是对于提交的$_FILE变量,如果已经赋值那么将跳过,不进行赋值操作,如果没有赋值,那么进行初始化操作。
并且与此同时,齐博cms并未对$_FILE进行过滤操作。
因此,我们只需要找到一个未进行初始化的变量,已$_FILE的形式提交,那么他会自动的给你一个赋值,并且没有进行过滤,如果参与到sql注入语句中,那么就可能形成注入。
0x02 漏洞利用
这里还是以/member/comment.php文件中的变量$cidDB为例。
这里的cidDB变量没有进行初始化操作,并且参与了sql语句,因此只需要通过$_FILE的形式提交该cidDB变量,从而对其进行覆盖,完成注入,过程如下:
首先构造上传表单页面,源码如下:
<form action="http://127.0.0.1/qibo/member/... method="POST" enctype="multipart/form-data">
<input type="file" name="cidDB" value="test" style="350px;"/><br/>
<input type="submit" value="确定"/> </form>
提交后抓包,并修改filename为payload,成功注入。