知識點:
UPDATEXML (XML_document, XPath_string, new_value):
第一個參數:XML_document是String格式,為XML文檔對象的名稱,文中為Doc
第二個參數:XPath_string (Xpath格式的字符串) ,如果不了解Xpath語法,可以在網上查找教程。
第三個參數:new_value,String格式,替換查找到的符合條件的數據
作用:改變文檔中符合條件的節點的值。改變XML_document中符合XPath_string的值。
例如我們輸入的語句為:select updatexml(1,concat(0x7e,(select username from security.users limit 0,1),0x7e),1);
其中的concat函數是將其連成一個字符串,因此不會符合XPath_string的格式,從而出現格式錯誤,爆出錯誤
第十七關(Less-17):
1.根據提示輸入,返回結果是成功的更新密碼
2.進行抓包,得到post的內容uname=admin&passwd=admin&submit=Submit。顯示正常。
3.將密碼隨便更改。然后執行。顯示結果正常。
4.將用戶名隨意更改。執行。顯示失敗
5.在本關中,我們要知道用戶名,對密碼處的值進行操作,才能進行下面的操作。
6.爆出數據庫名稱,使用updatexml函數。執行成功,返回一個錯誤即為我們得到的第一個數據庫名稱。
7.爆破表,以security為例。爆破出security庫中的第一個表名稱emalis
第十八關(Less-18):
1.根據前幾關得出,Less-18也是Post。抓包得到Post的內容uname=admin&passwd=admin&submit=Submit,執行成功,顯示信息如圖所示
2.如果登陸錯誤,顯示信息如圖,顯示登陸失敗,但仍有ip,沒有瀏覽器信息
3.經檢驗,在username和password處無法進行注入,字符會被轉義
4.使用http頭協議,先進行抓包。分析得,可以通過對IP地址和user agent信息進行注入
5.對Less-18中的的文件內容進行修改,顯示出當前庫和uagent的查詢語句
6.更改后,重新執行。如圖,可以對圖中圈住的地方進行http頭部注入
7.使用bp抓包進行http頭注入,分析得出它可能不是select語句,可能是屬於insert 或者 update,並分析出其閉合方式為(‘’,‘’,‘’)
8.使用 'or updatexml(1,concat(0x7e,(database())),1)or '1'='1,得到當前的數據庫名稱
9.其余庫、表、列的操作均相同
第十九關(Less-19):
1.首先根據提示進行登錄,輸入admin,密碼:admin,登陸成功,顯示Referer信息
2.輸入錯誤密碼,登陸失敗,沒有回顯信息
3.進行代碼分析后得出,Less-19與Less-18類似,不同的是Less-19在Refere處進行注入,需要進行閉合操作,操作方法與Less-18的相同,參考Less-18
第二十關(Less-20):
1.進行登錄,輸入admin,密碼admin,登陸成功,顯示cookie信息,登陸失敗,則沒有cookie信息
2.經過分析可知,本關運用cookie注入。在登錄之后,后台會將username放入cookie中,再次登錄時,只要cookie沒有過期,就會在cookie里面取值,進行查詢
3.正確登錄並進行抓包,並檢測其閉合方式,發現是單引號閉合
4.使用union聯合查詢表名
第二十一關(Less-21):
1.進行登錄,登陸成功
2.進行抓包,發現此關的cookie值是加密的
3. 查看源碼之后,發現cookie采用的base64加密,並且閉合方式為('')
4.通過加密的方式,修改cookie,通過base64編碼格式,講') union select 1,2,3#進行加密為Jyl1bmlvbiBzZWxlY3QgMSwyLDMj。與Less-20不同的是此關進行了加密處理,其余均相同。
第二十二關(Less-22):
1.本關與Less-21不同的是閉合方式不同,cookie同樣采用加密處理
2.通過修改cookie,發現本關閉合方式為""
3.其余均與Less-21操作相同。