安裝最新版本的phpstudy.將sqli-lab 放入www檔案中即可。
需要注意:
選擇php版本7以下
修改php.ini 中 magic_quotes_gpc = off。否則第一關就不太好過
--[空格] 常使用用來注釋後面的語句,+ 號在url編碼中為空格
經常使用 --+, -- -這種方式來注釋
get方式能用加號和空格,post不一定管用,用空格管用
php 中的查詢語句為 $sql="select * from users where id='$id' limit 0,1";
到mysql就變成 select * from users where id='$id' limit 0,1
等於說是最外面的雙引號不用管,只需要閉合內的單引號即可
類似於 select * from users where id='1'-- -' limit 0,1
sql 注入感覺最重要的是讓sql查詢報錯
通過報錯能指引怎麼寫
對於$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="select username, password from users where username=$uname and password=$passwd limit 0,1";
上面uname和passwd 都加上了雙引號,需要雙引號才能報錯
程式語言編碼和資料庫編碼不一致可能會有寬位元組注入。一般程式語言是utf8,注意的資料庫編碼只有乙個gbk了
寬位元組注入為為了合併【\】,測試發現要使用大於等於十進位制129,16進製制81的url編碼
?id=0%81'union select 1,database(),3 -- -
get 方式直接用
post方式會將%轉義為%25,用burp直接改可以
發現msyql乙個點:
查詢語句 select * from users where id="1ssdfdfn"
等同於 select * from users where id="1"
等同於 select * from users where id=1
html中get和post對 【加號】和【空格】 的轉義
get方式轉義
【輸入:】?id=1' --+ -- -
【html轉義後:】?id=1%27%20--+%20--%20-
看到加號沒動,空格為%20
【輸入:】uname=admin' --+-- -
【html轉義後:】uname=admin%27+--%2b--+-
看到空格為+,加號為%2b
php中有urlencode 和rawurlencode 這兩個方法來解析,因此有時候加號不一定能用
我做的這幾種題大概 get方式能用加號和空格,post不一定管用,用空格管用
sqli lab環境搭建
sqli labs是乙個非常好的學習sql注入的乙個遊戲教程,是乙個印度程式猿的搬磚建造的,對於了解sqlmap的原理很有幫助。靶機環境搭建 php版本一定要設定成 7 以下,7之後的mysql 都改成了mysqli 了,用7以上版本的話會報錯 提取碼 632k 3.修改mysql檔案的賬號密碼 可...
sqli lab詳解 做題筆記11 20
這部分的題目都是通過post方法注入 less 11 基於報錯 單引號字串 在user或者password欄中輸入 1 or 1 1 獲取資訊 1 or 1 1 limit 2,1 2可換成需要的數字 還可以用盲注的方法獲得資訊 後面補充 less 12 基於報錯 雙引號字串變式 在user或者pa...
post 基於錯誤的注入 sqli lab
get注入可以直接在url上進行傳輸引數。post注入是基於輸入框進行注入,所以得使用輔助工具進行注入。post注入的兩個前提 1.輸入框可以互動 2.輸入的語句會進入到資料庫進行資訊查詢 下面我們用sqli lab less11來舉乙個例子 我們注入乙個萬能密碼,or 1 1 可以看到已經進入資料...