sql注入練習3(二次注入)

這個注入還挺有意思~~
原理:比如在註冊的地方。。。對用戶輸入進行了轉義,用戶註冊了一個admin' -- -
(無法注入了) 但是把它直接插入了sql中,取出來的時候仍能用admin登錄
舉個栗子:
更新密碼語句:

update users set password='test' where username='admin' -- -'

似乎要改變的是admin’ – - 賬戶的密碼,實際上改了admin賬戶的密碼
如果我知道username是admin的話,我就可以嘗試一下二次注入拿下密碼了

sqli-labs less24 SecondOderInjections

1.在登錄處各種嘗試,沒有注入成功-----要試一下二次注入
2.註冊新用戶
在這裏插入圖片描述

這裏插入一張有意思的tip
在這裏插入圖片描述
如果忘記管理員密碼的話,go hack it!
emmm 也就是可以通過二次注入登錄管理員界面的
3.使用admin’ – -登錄
會出來修改密碼的界面(我的不行。。。logged-in.php文件沒配置好????)
修改後用admin登錄即可

本關爲二次排序注入的示範例。二次排序注入也成爲存儲型的注入,就是將可能導致sql注入的字符先存入到數據庫中,當再次調用這個惡意構造的字符時,就可以出發sql注入。二次排序注入思路:

  1. 黑客通過構造數據的形式,在瀏覽器或者其他軟件中提交HTTP數據報文請求到服務端進行處理,提交的數據報文請求中可能包含了黑客構造的SQL語句或者命令。

  2. 服務端應用程序會將黑客提交的數據信息進行存儲,通常是保存在數據庫中,保存的數據信息的主要作用是爲應用程序執行其他功能提供原始輸入數據並對客戶端請求做出響應。

  3. 黑客向服務端發送第二個與第一次不相同的請求數據信息。

  4. 服務端接收到黑客提交的第二個請求信息後,爲了處理該請求,服務端會查詢數據庫中已經存儲的數據信息並處理,從而導致黑客在第一次請求中構造的SQL語句或者命令在服務端環境中執行。

  5. 服務端返回執行的處理結果數據信息,黑客可以通過返回的結果數據信息判斷二次注入漏洞利用是否成功。

此例子中我們的步驟是註冊一個admin’#的賬號,接下來登錄該帳號後進行修改密碼。此時修改的就是admin的密碼。

Sql語句變爲UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’ # ’
AND password=’ ,也就是執行了UPDATE users SET passwd=“New_Pass” WHERE
username =’ admin’

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章