taibeihacker
Moderator
0x01 前言
目標是一大學,在一次挖洞過程中遇到個sql注入,嘗試進一步利用擴大危害,漏洞已報送平台進行了修復0x02 sql注入getshell失败
在id處連續加兩個單引號都報錯,經過探測發現是數字型的注入且過濾了空格,這裡可以用/**/代替

於是直接上sqlmap
python sqlmap.py -u url --batch --tamper=space2comment.py –dbs

發現是dba權限:
python sqlmap.py -u url --batch --tamper=space2comment.py --is-dba

試了很多方法找web路徑
最後注意到操作系統是FreeBSD
無意中看到這個

char(47)就是’/’,立馬想到可以通過這個遍歷目錄、找路徑

通過從根目錄開始逐層遍歷,最終找到網站根目錄:

寫入shell失敗,轉換成16進制規避單引號還是不行
但是這個注入可以讀取服務器上的任意敏感文件(包括非web目錄),危害巨大
0x03 从其它点继续尝试
讀取sql注入處代碼,發現並沒有代碼層面的過濾,explode() 函數把字符串打散為數組,這里以空格為分隔,取數組的第一個,變相地過濾了空格,把空格換成內聯註釋就能注入
根據洩露的數據庫賬號、密碼嘗試連接3306端口失敗,估計綁定了本地ip
繼續遍歷目錄,發現了mysql的登陸界面

登錄之後卻是空白界面,讀取處理登錄邏輯的代碼發現登陸成功直接設置session但不跳轉,登陸後直接訪問首頁就行
查一下secure_file_priv,發現是空值,並沒有限制

嘗試利用日誌寫入webshell,發現沒有權限設置日誌路徑


找到了網站後台

數據庫裡面查到的賬號和密碼hash值
在線網站解密hash值得到明文
登錄失敗,讀取一下源碼


發現是加了鹽的,於是加鹽再解密得到正確密碼
成功登陸後在人員資料管理新增處發現一個上傳照片的地方

但是只能上傳圖片文件

上傳成功之後,突然想到了sql寫shell失敗是不是因為目錄權限問題,網站限制了除上傳目錄外其它目錄都不可寫?
於是嘗試寫入shell

成功,果然是目錄寫權限問題

發現蟻劍連不上,估計waf攔截了流量。看了一下蟻劍的流量加密,蟻劍流量有一個重要特徵就是User-Agent為antSword/版本,另外使用了編碼器的話還要將解碼函數發過去,所以解碼函數這裡也是一個特徵,需要自定義編碼器和解碼器。
修改antSword-master/modules/request.js和antSword-master/modules/update.js兩個文件的User-Agent後成功連接,waf僅僅攔截了UA這一明顯特徵

反彈shell失敗,nc是基於tcp/udp協議的,所以可能的原因有:反彈的命令不存在、禁止出站IP、禁止tcp協議出站端口
確認sh存在:

出站端口為訪問外網,查詢網絡連接發現54454端口可以出站

於是監聽54454端口後成功反彈shell

提權失敗。服務器內核版本過高,無法利用內核漏洞提權,嘗試計劃任務、環境變量、和suid提權發現沒有可以利用的地方,sudo提權也不行,第三方服務中udf提權發現插件目錄不可寫,幾個文件權限也配置正常,也沒有發現其它敏感信息洩露
0x04 总结
1.目標系統中加單引號報錯,但是過濾空格,可以用/**/代替繞過2.使用sqlmap中的space2comment.py腳本進行注入python sqlmap.py -u http://ip/newform.php?id=123 --batch --tamper=space2comment.py –dbs //讀取數據庫名python sqlmap.py -u http://ip/newform.php?id=123 --batch --tamper=space2comment.py --is-dba //查看是否為dba,該系統是dba權限3.通過NAMP掃描,目標系統是freedb(sunos也可以),可以同構load_file()函數直接遍歷目錄3.通過load_file()函數逐漸讀取目標系統目錄http://ip/newform.php?id=123/**/union/**/select/**/1 ,LOAD_FILE('/'),3,4,5,6,7,83.讀取到網站根目錄http://ip/newform.php?id=123/**/uni...登錄pmbp數據庫管理員頁面,但是顯示空白不能跳轉到後台管理頁面,直接訪問數據庫管理頁面。 6.查詢SQL語句查詢權限,顯示空置,並沒有對寫入進行限制show VARIABLES LIKE 'secure_file_priv'7.但是通過mysql的log寫入shell,是不成功的,可能對寫入的目錄權限有限制。 8.通過目錄掃描,找到目錄系統的後台管理,這裡的後台用戶名和密碼,可通過sqlmap直接讀取出用戶名和密碼hash,密碼hahs直接通過md5進行成功解密,不能成功登陸到系統,可能密碼不對。 9.通過load_file()函數讀取後台管理頁面,發現密碼是加鹽的,這裡加鹽再解密得到正確密碼,並成功登陸到目標後台10.在後台的資料管理的照片處,可直接上傳圖片,並顯示圖片的絕對路徑地址。 11.參數通過mysql將蟻劍一句話寫入到圖片的絕對路徑地址下。可成功寫入12.通過螞劍連接一句話,但是顯示連接不成功,可能被WAF攔截了,這裡需要修改螞劍的User-Agent,以及使用編碼器baa64的編碼繞過WAF攔截,並成功鏈接。修改antSword-master/modules/request.js和antSword-master/modules/update.js兩個文件的User-Agent後成功,並使用碼編碼bas6413.通過nc進行反彈,發現反彈失敗,發現目標系統禁止出站IP、禁止tcp協議出站端口,並發現出站端口為訪問外網,查詢網絡連接發現54454端口可以出站。 nc -lvvp 544454原文鏈接:https://xz.aliyun.com/t/10527