1. 程式人生 > >【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (二次註入)

【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (二次註入)

創建 獲取 users 密碼修改 alt 簡單 限制 injection sql語句

技術分享圖片

簡單登陸瀏覽一遍後,發現是一個登陸註冊修改密碼的應用

審查一下代碼

登陸頁面的username,password使用了轉義

技術分享圖片

註冊頁面的參數也進行了轉義處理

技術分享圖片

但是在修改password的頁面,直接從session中獲取了username

這樣就有了一個問題,username是在註冊時被創建的,雖然進行了轉義,但是沒有做輸入字符的限制

技術分享圖片

看一下修改密碼的sql語句

$sql = "UPDATE users SET PASSWORD=‘$pass‘ where username=‘$username‘ and password=‘$curr_pass‘ ";

如果username=admin‘#就會構成,#號後面的變成了註釋,那麽我們就修改了admin的密碼

UPDATE users SET PASSWORD=$pass where username=admin‘# and password=$curr_pass

來測試一下

技術分享圖片

成功註冊,數據庫中也添加了對應的數據

技術分享圖片

技術分享圖片

也可以正常的登陸

技術分享圖片

然後我們來修改密碼

技術分享圖片

為了方便觀察,將sql語句輸出一下

技術分享圖片

技術分享圖片

提示密碼修改成功

技術分享圖片

這樣我們就將admin的密碼修改為123456

可以在數據庫中確認一下

技術分享圖片

【sqli-labs】 less24 POST- Second Order Injections *Real treat* -Stored Injections (二次註入)