**
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="width:350px;"/><br/>
<input type="submit" value="確定"/> </form>
提交后抓包,並修改filename為payload,成功注入。