CG-CTF-Web-/x00
/x00
1.查看題目
2.進(jìn)入題目,查看地址,如下圖所示:
3.進(jìn)行代碼分析:
4.因?yàn)閑reg()函數(shù)存在NULL截?cái)嗦┒?#xff0c;導(dǎo)致正則過(guò)濾被繞過(guò),因此我們可以使用00截?cái)?/font>
構(gòu)造nctf的payload,nctf=123%00#biubiubiu,嘗試一次,發(fā)現(xiàn)失敗,如下圖
5.這時(shí)url中的#后面的字符都會(huì)被瀏覽器解讀為位置標(biāo)識(shí)符。因此,這些字符都不會(huì)被發(fā)送到服務(wù)器端,于是,我們需要對(duì)#進(jìn)行url編碼,之后就OK了
有關(guān)url欄中#的解讀:
一、#的涵義
#代表網(wǎng)頁(yè)中的一個(gè)位置。其右面的字符,就是該位置的標(biāo)識(shí)符。比如,
就代表網(wǎng)頁(yè)index.html的print位置。瀏覽器讀取這個(gè)URL后,會(huì)自動(dòng)將print位置滾動(dòng)至可視區(qū)域。
為網(wǎng)頁(yè)位置指定標(biāo)識(shí)符,有兩個(gè)方法。一是使用錨點(diǎn),比如
二、HTTP請(qǐng)求不包括#
#是用來(lái)指導(dǎo)瀏覽器動(dòng)作的,對(duì)服務(wù)器端完全無(wú)用。所以,HTTP請(qǐng)求中不包括#。
比如,訪問(wèn)下面的網(wǎng)址:
瀏覽器實(shí)際發(fā)出的請(qǐng)求是這樣的:
GET /index.html HTTP/1.1 Host: www.example.com可以看到,只是請(qǐng)求index.html,根本沒(méi)有”#print”的部分。
三、#后的字符
在第一個(gè)#后面出現(xiàn)的任何字符,都會(huì)被瀏覽器解讀為位置標(biāo)識(shí)符。這意味著,這些字符都不會(huì)被發(fā)送到服務(wù)器端。
比如,下面URL的原意是指定一個(gè)顏色值:
但是,瀏覽器實(shí)際發(fā)出的請(qǐng)求是:
GET /?color= HTTP/1.1 Host: www.example.com可以看到,”#fff”被省略了。只有將#轉(zhuǎn)碼為%23,瀏覽器才會(huì)將其作為實(shí)義字符處理。也就是說(shuō),上面的網(wǎng)址應(yīng)該被寫(xiě)成:
http://example.com/?color=%23fff注:#知識(shí)點(diǎn)參考
https://blog.csdn.net/wwbmyos/article/details/23924509
總結(jié)
以上是生活随笔為你收集整理的CG-CTF-Web-/x00的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: App Store 新功能:支持取消接收
- 下一篇: CG-CTF-Web-bypass ag