sqli lab 學習記錄

2021-10-04 01:56:35 字數 1520 閱讀 4909

安裝最新版本的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 可以看到已經進入資料...