本地:win 10
靶場:sqli-labs(共65關,每日一關)
簡介:一天一關!
簡單的注入:
首先嘗試',會出現報錯:
然後嘗試使用:and 1=1 --+ ,會發現顯示正常,這是因為該查詢語句不再看前面的id=2'的報錯引數,轉而發現and 1=1 是一條正常的語句:
and 1=2後就會出現異常,且不會顯示任何資料:
然後以列單位進行排序操作:當order by 到第三列,都是正常的,order by第四列就會報錯,因為**的列僅為三列:
然後即可使用聯合查詢語句進行查詢,之後的操作將慢慢通關敘述:
第二關其實與第一關雷同,主要是數字型與字元型的區別:
$sql="select * from users where id=$這裡的查詢語句中,$id並未進行處理,因此可以直接執行其查詢操作,使用 and 1=2時,會出現錯誤,故該條查詢語句無法執行。id
limit 0,1";
而and 1=1為真,故返回正常查詢結果
同樣是3列,與第一關差不多,僅僅是id為數字型的區別。
猜測此處的閉合語句應是如下的:
select login_name, select password from table where id= ('our input here')
$sql="select * from users where id=('$id')limit 0,1";
') and 1=1--+ #顯示正常
') and 1=2--+ #顯示不正常所以可以判斷此處使用的閉合語句無誤! 接下來的查詢語法與上兩關一致。
嘗試',無任何回顯,嘗試",發現出現報錯:
發現報錯內容為:
the right syntax to use near'"1"")limit 0,1因**當中對id引數進行了 "" 和 () 的包裝,故嘗試使用閉合語句判斷查詢型別:' at line 1
and 1=1--+ 回顯正常:
and 1=2--+回顯不正常,判定可能存在注入:
sql查詢語句,31行:
$sql="select * from users where id=("$id")limit 0,1";
所以可以判斷此處使用的閉合語句無誤! 接下來的查詢語法與上兩關一致。 docker部署sqli labs靶場
目錄 一 部署vmware 二 安裝docker 三 docker部署sqli labs 四 訪問測試 部署位址 環境 centos7.4 主機ip位址 192.168.80.80 1 移除之前安裝過的docker sudo yum y remove docker docker client doc...
Sqli LABS通關筆錄 2
在這個關卡學習到了 1.程式的錯誤不是學校收費亂來的,單引號的錯誤和減號的錯誤要明白 單引號報錯。用第一關的payload嘗試了下。來看看原始碼 那麼我們構造的sql也就變成了 sql select from users where id 1 or 1 1 limit 0,1 如此一來id 1 就不...
Sqli LABS通關筆錄 4
這一關卡讓我學習到了 1.管他如何,想方設法先讓sql報錯再說。從報錯中構造sql注入語句。2.單引號不行就來雙引號。括號等等的。這次單引號沒反應了。以後我們先來黑盒測試,實在沒轍再看 1有反應但是沒資料 想辦法把他弄報錯。正在掙扎之際。成功了。不下心看了一下原始碼的。否則還真不好搞。測試了很多方法...