目錄
1 前端和js校驗
抓包改包
2 .
2.1 .htaccess(偽靜態)
2.2 %00截斷 (php5.2)
2.3 user_init_
2.4?
3 圖片碼防御
4 競爭型漏洞
思路:
容易出現的問題:
1 前端和js校驗
關閉JS的代碼,上傳PHP
抓包改包
思路:上傳文件的時候將正常的PHP后綴改成白名單允許的后綴,然后通過抓包的方式修改文件的后綴為php,注意content—type這個,因為一般會判斷上傳的類型,需要改一下
2 .
那我們想有沒有一種就是在程序中有被認為是空格,但是進入系統后,系統就把他認定為是沒有后面那個空格?(有這種但是只有在windows系統才會有)
這關寫了黑名單,trim去空格等過濾限制
if (file_exists(UPLOAD_PATH)) {$deny_ext = array('.asp','.aspx','.php','.jsp');$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//刪除文件名末尾的點$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //轉換為小寫$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //收尾去空
2.1 .htaccess(偽靜態)
這個方法就是將.htaccess這個文件后綴,不管你上傳的是jpg,還是txt,都會最終把他解析為php
2.2 %00截斷 (php5.2)
2.3 user_init_
也是有可能實現的,但是必須要當前的系統下面有一個php的文件,才能發揮作用
2.4?
這個是因為運維或者開發人員修改了nginx或者apache的配置項,讓php2,php3也能解析為php
3 圖片碼防御
如何防御圖片碼?
1,將文件上傳的文件夾的可執行權限取消掉
2,php中有一個函數可以將上傳的圖片碼打亂,讓圖片碼消失
4 競爭型漏洞
代碼問題:把上傳文件寫在了檢測文件之前,這之間就會有幾十ms的空隙,我們就可以在shell里面(圖片碼)用寫文件的方式將文件的木馬寫在他的上一級目錄,雖然最后會刪除我上傳的文件,也有幾十ms的時間,但是我的木馬由于是寫在上一級目錄的,所以我的有害文件已經上傳成功了
因為是先上傳再檢測,那我不裝了,直接上傳php文件
打開bp,抓包,然后用爆破模塊,直接發送,看看能不能生成fy.php
思路:
大概流程就是:先在php文件中寫一個一句話木馬(一定要是創建一個新的目錄上一個目錄最好,寫入數據)如上,然后打開抓包,上傳此php文件抓包,送至inturder模塊上傳,開始競爭一直刷新我的訪問upload的文件,一定會成功
容易出現的問題:
最容易出現在商場和訂單,就是多線程處理的時候,當我買完最后一個商品還沒有下單的時候,下個線程又來了就會出現買一次買很多的這種情況