文件上傳漏洞(一)——黑名單繞過


一句話木馬:<?php eval($_REQUEST[8])?>

1、前端驗證繞過

前端對文件的后綴進行了篩選,只允許.jpg .png .gif后綴的文件上傳,所以就直接上傳.jpg的圖片馬,然后抓包,將文件后綴改為.php

 

還有一種更完美的方式

1、先查看網頁源碼,然后復制到記事本中

2、在記事本中把所有的JS代碼刪除,保存

 

3、修改代碼中的action標簽:規定當提交表單時,向何處發送表單數據

 

但是當我們不知道這個地址可以抓包看,這兩個字段組合起來就行了

 

4、修改好之后保存,然后用瀏覽器打開剛才的記事本

沒有JS的代碼就是這個樣子,但是功能還是齊全的

 

5、上傳完之后可以看到完整的返回頁面

 

 

 

 

 

 

2、Content-Type繞過

和1類似,直接抓包修改后綴名即可

 

 

3、特殊名字繞過

對上傳的文件的后綴進行了過濾,.asp .php .aspx .jsp都無法上傳,但是默認狀態下.php3,.php4,.php5,.phtml 都是會被解析為php的 ,就相當於可以換個名字,人還是原來的人,所以直接將上傳的文件的后綴改為.phtml最好

 

 

 

4、.htaccess文件繞過

.htaccess是什么?全稱是Hypertext Access(超文本入口)  .htaccess文件也被成為分布式配置文件,提供了針對目錄改變配置的方法,在一個特定的文檔目錄中放置一個包含一個或多個指令的文件, 以作用於此目錄及其所有子目錄。

.htaccess功能: 文件夾密碼保護、用戶自定義重定向、自定義404頁面、擴展名偽靜態化、禁止特定IP地址的用戶、只允許特定IP地址的用戶、禁止目錄列表 很可惜,這么一個強大的功能默認是不開啟的

 

首先,新建一個.htaccess的文件,在文件中寫入AddType application/x-httpd-php .jpg  [這個指令的作用是將 .jpg的文件改為 .php]

(如果無法創建這種空文件名的文件可以用cmd改 ==>> ren test.txt .htaccess

然后我們就可以先上傳一個.jpg的圖片馬,然后再上傳.htaccess的文件,然后在有.htaccess的文件夾內.jpg就會被解析為.php的文件,然后上傳的圖片馬就可以發揮作用了

 

 

 

5、大小寫繞過

只有非常老的Web容器才會區分大小寫,現在一般的web容器都不會區分大小寫

比如說把.php換成.PHp

 

 

6、文件后綴(空格)繞過

若.php在黑名單中,可以抓包修改成.php ,上傳成功后會自動省略多的空格

 

 

7、文件后綴(點)繞過

和6類似,把空格換成 . ,windows的特性會自動省略最后的 .

 

 

8、windows文件流繞過 ::$DATA

(這里利用到了NTFS交換數據流(ADS),ADS是NTFS磁盤格式的一個特性,在NTFS文件系統下,每個文件都可以存在多個數據流。通俗的理解,就是其它文件可以“寄宿”在某個文件身上,而在資源管理器中卻只能看到宿主文件,找不到寄宿文件。)

TIPS:在cmd中輸入 echo 123456>>a.txt:b.txt這句話的作用是把 123456 寫入 a.txt:b.txt中,但是你只能在相應的文件夾中看到a.txt而且內容是空的

想要查看寫入內容的話就用notepad a.txt:b.txt

所以回到正題::$DATA就是默認不修改文件流的情況,a.txt::$DATA也就是a.txt本身了。最后得出結論a.txt::$DATA和a.txt是等價的,就可以用a.txt::$DATA繞過。

 

 

9、構造文件后綴繞過

比如網頁源代碼會依次檢查最后一位是不是.和空格,並且沒有循環,則可以構造. .(點空格點)來繞過

 

 

10、雙寫繞過

有些時候會檢查有沒有 php字符出現,若存在則直接替換為空,並且沒有循環,這個時候就可以用.pphphp的后綴繞過

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM