BUUCTF Web [強網杯 2019]隨便注
[強網杯 2019]隨便注
一、題目簡介
二、思路分析
1)判斷注入點
2)選擇注入方式
3)查看表中內容
三、解題步驟
1)獲取表
2)獲取字段
3)獲取表中數據
四、總結
一、題目簡介
進入題目鏈接后,是一個
「查詢」
功能,在輸入框中提交id,即可返回
「響應」
的內容。
在輸入框中輸入一個2,即可查詢2對應的內容
二、思路分析
這一關是一個
「SQL注入漏洞」
,推薦使用堆疊注入,show + handler命令獲取表中數據
右鍵查看頁面源代碼,
「注釋」
里面說sqlmap是沒有靈魂的,眾所周知,sqlmap是SQL注入神器,這也變相說明這關考察的是SQL注入漏洞
1)判斷注入點
使用數值型、字符型等各種類型的
「萬能賬號」
進行測試(參考《萬能賬號密碼使用詳解》),正確響應的payload如下:
0' or true -- a
1
頁面中返回了多條數據,因為萬能賬號使SQL恒成立,后端查詢出了表中的
「所有數據」
。
由此可知,注入點為
「單引號字符型」
注入。
2)選擇注入方式
源碼中
「過濾」
了select、update、delete、drop、insert、where等關鍵字,參數中包含以上關鍵字即可觸發過濾提示,比如:1'select
根據過濾情況,排除掉聯合注入和報錯注入,嘗試使用
「堆疊注入」
,payload如下:
0';show databases; -- a
1
使用MySQL的
「show 命令」
可以查看數據庫、表、字段等信息
3)查看表中內容
由于select被過濾了,show命令又不能查看表中的數據,因此需要使用
「handler 命令」
來查看表中的數據,payload如下
0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a
1
這里需要注意,表名如果是數字,需要用
「反引號」
(鍵盤左上角第二行那個鍵)包裹起來。
三、解題步驟
1)獲取表
CTF有個不成文的
「規矩」
,SQL注入漏洞的flag大部分都在當前使用的
「表」
中,這里我們使用堆疊注入直接查看當前使用的數據庫中有哪些表,payload如下
0';show tables; -- a
1
當前數據庫下有兩個表:1919810931114514,words
2)獲取字段
使用show 命令查看表中的
「字段」
,注意表名要用反引號包裹,payload如下:
0';show columns from `1919810931114514`; -- a
1
表中只有一個字段,很明顯flag就在這里
3)獲取表中數據
使用handler 命令查看表中的
「數據」
,需要注意的是,表名如果是數字,則需要使用反引號包裹起來,payload如下:
0';handler `1919810931114514` open;handler `1919810931114514` read first; -- a
1
表中只有一條數據,提交flag即可過關
四、總結
喜歡一個東西首先要先學會
「尊重」
,雖然網絡安全的圈子不乏各種灰產,以及高調宣傳自己是黑客的腳本小子,但不可否認,這個圈子仍有不少人保持著
「舉世皆濁我獨清,眾人皆醉我獨醒」
的心態,努力磨礪技術,提升自身修養,讓互聯網變得更加安全
SQL web前端
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。