服務(wù)端白名單繞過
MIME類型檢測繞過
Upload-labs(Pass-02)第二關(guān)通過服務(wù)端對數(shù)據(jù)包的MIME進行檢查 通過burp修改Content-Type類型
將content-type修改為image/png

上傳成功

%00截斷繞過
%00截斷是操作系統(tǒng)層的漏洞,由于操作系統(tǒng)是C語言或匯編語言編寫的,這兩種語言在定義字符串 時,都是以\0(即0x00)作為字符串的結(jié)尾。操作系統(tǒng)在識別字符串時,當讀取到\0字符時,就認為讀 取到了一個字符串的結(jié)束符號。因此,我們可以通過修改數(shù)據(jù)包,插入\0(%00或者00)字符的方式, 達到字符串截斷的目的。 在url中%00表示ASCll碼中的0,而0作為特殊字符保留,表示字符結(jié)束。當url中出現(xiàn)%00時就認為讀取 已結(jié)束,而忽略后面上傳的文件或者圖片,只上傳截斷前的文件。
舉例:http://www.XXX.com/upload/aaa.php%00bbb.jpg 由于%00有截斷功能,服務(wù)器在接收的時候,就直接對url編碼(即%00)進行解碼,然后再去接收文 件,這時候后面的bbb.jpg被截斷掉,文件名就變成了aaa.php,所以最后服務(wù)器接收到的文件名是 aaa.php。
截斷原理: 就是利用0x00是字符串的結(jié)束標識符,攻擊者可以利用手動添加字符串標識符的方式來將后面的內(nèi)容進 行截斷,而后面的內(nèi)容又可以幫助我們繞過檢測。 00截斷通常用來繞過web的白名單限制。Upload-labs(Pass-12)看代碼可以得知是一個白名單,只允 許上傳'jpg','png','gif'格式的文件。但是上傳路徑是可以控制的,可以使用%00進行截斷。 截斷條件: 1、php版本小于5.3.4 2、php.ini的magic_quotes_gpc為OFF狀態(tài)
因為我的docker環(huán)境不滿足實驗條件,所以我在windows系統(tǒng)中搭建環(huán)境,選擇php版本為5.2,打開php.ini 文件,設(shè)置 magic_quotes_gpc = OFF


在新環(huán)境中的Upload-labs(Pass-11)進行操作

進行文件上傳: 修改PHP文件后綴為png save_path 后增加文件名 1.php%00

訪問1.php成功文章來源地址http://www.zghlxwxcb.cn/news/detail-502572.html

上述%00繞過方式為get型的
下面我們來演示以下post型
新環(huán)境中的Upload-labs(Pass-12)

抓包修改

但是這個地方有個點需要注意,就是post型不會對%00自動編碼,所以需要我們手動編碼文章來源:http://www.zghlxwxcb.cn/news/detail-502572.html

訪問1.php成功

到了這里,關(guān)于上傳驗證繞過——服務(wù)端白名單繞過的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!