事情起因#
來自某內測靶場,未開放註冊,跟隨在字節脈搏的lation老哥複現一遍,學習姿勢,靶場地址
探尋注入方式#
打開靶場長這樣:

看起來一個 “簡單” 的登錄框,burp攔截發送reapter開始探測

看起來很正常,只有username和passwd兩個字段,先嘗試萬能密碼帳號

登錄失敗,這裡有個小技巧,建議burp改參數時選中自己添加的部分ctrl+U過一次URL編碼
admin加單引號也沒啥反應,後面加and 1=1和and 1=2也沒啥反應
嘗試passwd字段加單引號

也沒啥反應,嘗試報錯注入:

也沒啥反應,嘗試寬字節注入:

報錯了,嘗試閉合報錯語句:

經測試,除了--+還有#和-- -均能閉合
注入數據#
老規矩,先查詢列數:

報錯了,可以看到報錯處提示near 'der by 3,說明我們的or被吃了,嘗試雙寫繞過:


order by 3沒問題,order by 4報錯了,union select查看回顯字段:

直接回顯登錄成功,flag在flag1表中,列名為key1(我這裡顯示有點重疊),直接查值

發現沒變化
在報錯注入的時候需有對
information_schema庫有讀取權限
無
information_schema庫讀取權限,需同時猜解列名和表名(較難)
那我們就使用之前的報錯注入來查詢數據:

注意,此處在%df%27後面還有一個%
參考文章:
本文完。