0x00 前言php
很久沒有更新了,已經長草無疑。html
以前團隊要搞個測驗的系統,用來安全培訓考覈,團隊內又沒啥人搞開發的,本身又想學一下vue,就用vue+ci 擼了一個。vue
搞了一個星期基本搞完(開發能力真的菜),後面又測試修了幾天bug,這纔有點時間研究一下其餘的,原本今天還有一篇文章的,可是有一些其餘緣由暫時就不發了。mysql
有一個計劃是想把先知通用列表的軟件都研究一下,慢慢搞起來。linux
0x01 wdcp安裝和簡介web
爲何選擇wdcp呢?主要是由於以前在先知看到了一個寶塔面板的漏洞,隨想找一些主機面板的軟件研究一下,而先知通用列表裏面就有一些。sql
那麼先從wdcp開始,分析一下wdcp的源碼。shell
從官網介紹開始(https://www.wdlinux.cn/wdcp/install.html),咱們知道wdcp的安裝有兩種方式,一種是源碼安裝的方式,另外一種RPM包安裝,這裏爲了研究咱們選擇用源碼安裝。數據庫
下載lanmp_laster.tar.gz,解壓發現都是一些shell文件。一是安裝的shell,二是配置的conf文件。ubuntu
爲了方便就開了一個騰訊雲的ubuntu實驗室,來測試。(主要是沒錢)
安裝
wget http://dl.wdlinux.cn/lanmp_laster.tar.gz tar zxvf lanmp_laster.tar.gz sh lanmp.sh
等了將近三十分鐘安裝好了。
目錄放不了了,騰訊雲到時間了,沒截圖。
大概憑藉着記憶列一下關鍵的信息
1,wdcp的存放目錄都在/www/wdlinux/下
2,/www/wdlinux/web/default 目錄下放着的是80端口的頁面 包含了安裝完成的主頁面、探針、phpinfo等,與及一個phpmyadmin,這個phpmyadmin的目錄名是有pma_xxx組成.
3,/www/wdlinux/wdcp/目錄下放着8080端口,也就是後臺頁面的一些東西,好比/www/wdlinux/wdcp/data/ 目錄下放着一個名爲wdlinuxdb.db的sqlite3數據庫,有幾張表,用於記錄登陸日誌,後臺用戶,ftp,網站,任務等信息。
4,其中/www/wdlinux/wdcp/bin/ 目錄下放着一個wdcp的執行文件,全部的後端邏輯都在裏面。
目錄大概就這樣,登進後臺看了一下:
1,web和mysql默認帳號密碼爲 admin/wdlinux.cn 和root /wdlinux.cn,基礎信息。可是密碼不是在第一次登陸進去以後就強制讓用戶修改的,只是提醒而已。
2,cookie是httponly的
3,用超級管理員admin修改時,原密碼能夠不用輸入,那麼若是咱們有後臺xss的話就能夠修改密碼了。
4,其餘的一些建站,ftp等沒有看。
0x02 攻擊思路
根據現有的東西進行擴展聯想:
1,首先是是否存在有繞事後臺驗證的方法?
思路是:sqlite3會記錄登陸日誌,登陸日誌會在web頁面中展現,而後admin修改密碼是不用輸入原密碼的。
咱們是否能夠在登陸的時候放一個xss?
web頁面展現的字段有:登陸的用戶名,登陸密碼前兩位,登陸的ip。
1,用戶名和密碼的xss payload測試,發現<>\'等都沒法在用戶名字段中插入,程序有過濾。
2,密碼字段雖然能夠插入髒字符存儲在數據庫中,但只有兩位可控,且後臺展現頁面已經作了過濾。
3,登陸ip嘗試用X-Forwarded-For ,Client-IP等請求頭來繞過皆無果。
因爲不知道後端是怎麼請求的,嘗試用fuzz一下用戶名的可容納長度,嘗試截斷或者溢出,但測了將近10w多個字符依舊沒有問題,暫時放棄了。
2,前臺可訪問的東西
轉眼去看其餘的東西,發如今wdcp v3的時候新增了一個phpmyadmin在80端口中
可是有8位字符是隨機的。
基於此有這麼一個攻擊思路:pma目錄名8位字符,若是可以爆破(存在問題),基於人性弱點考慮,或許不少用戶只是把後臺管理的用戶名和密碼改了,
而mysql的默認密碼沒改,或者說由於mysql在內部,使用弱密碼的可能性也是很大的,那麼咱們利用phpmyadmin來getshell也是徹底有可能的。
首先尋找phpmyadmin目錄名的生成方法,在源碼壓縮包裏面,搜索pma,找到了生成方式:
其中$RANDOM 變量爲0--32767 ,隨機以後進行md5sum,以後截取前8位;
注意這裏的命令:
echo $RANDOM | md5sum
是會在隨機以後加入一個換行符的,因此實際上生成的應該是這樣:
隨機生成的數字爲:1234,那麼在後面加一個換行符"\n",以後再進行md5。
在用php生成字典的時候踩出來的坑。
因此其實爆破最多也就32768個而已,用不了多久。放一個爆破成功的截圖:
0x03 小結
就暫時研究到這裏,以後會進行深刻研究,好比後臺其餘的一些功能,以繞事後臺驗證爲優先,也會嘗試對wdcp的執行文件反編譯,看能不能提取出源碼。(binwalk了一下,沒有深刻)