前一篇分享破解密碼」的經驗提到,開發人員將密碼編碼後記錄到Cookie裡,這一篇則是將資料庫的SQL語句記錄到Cookie裡,只要竄改Cookie裡的SQL語句,就能命令資料庫執行其他動作。
國內某地圖查詢服務網,當使用者輸入查詢資料後,會將完整的SQL語句記錄在Cookie的QuerySQL欄位中,使用者跳到下一資料頁或其他資料頁時,QuerySQL內容會傳回伺服器,而且伺服器直接以此SQL語句再次執行查詢,這讓駭客有了注入SQL命令的機會。
筆者曾試者利用SQLMAP去測試此進入點,但一直無法得到有效的回應,如果有同好知道如何利用SQLMAP直接攻擊SQL語句,尚請不吝指教!
基於職業道德,不便提供此服務網站的網址及細部資訊。
首先,直接點擊查詢頁上的「顯示全部」鈕(圖1),可以得到各單位的清單,檢視清單頁的回應標頭之Cookie,可看到查詢的SQL語句(圖2)。
為了重複測試,從換頁清單找出瀏覽網址(圖3),每次變更QuerySQL內容後,就瀏覽前述網址,讓資料庫伺服器執行QuerySQL所指定的SQL語句。
為測試修改後的QuerySQL是否會交由後端執行,將SQL的條件移除(Where及之後的文字,如圖4),再重新瀏覽,此時系統真的回傳1839 頁(如圖5,原本只有1頁),至此確認Cookie的QuerySQL存在SQL injection漏洞。
沒有留言:
張貼留言