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