第一關 js 繞過
源碼如下:
lasIndexOf是返回函數最后一次出現的地方(從右到左)
substring是用來截取函數的
indexOf是返回
表示從.出現的地方開始截取並判斷是否在允許的字符串內
繞過方法:
直接burp捉包修改參數
把小馬php文件后綴修改成jpg,在從burp修改php
訪問路徑
第二關
判斷文件類型是否為圖片
繞過方法
通過burp捉包修改Content-Type:
上傳php文件
第三關
采用黑名單限制
上傳后文件保存為路徑加時間加隨機數加后綴
繞過方法
使用別名php3,php5,phtml進行繞過
首先打開phpstudy工具中的httpd.conf文件進行修改使他解析別名
上傳php文件並修改后綴
第四關
增加了對別名的過濾
文件保存為路徑加上傳文件名
繞過方法
上傳.htaccess文件(注: .htaccess文件生效前提條件為1.mod_rewrite模塊開啟。2.AllowOverride All)

第二種方法:Apache解析漏洞
在Apache 2.x中存在一個解析漏洞,如果我們將 lyshark.php 修改為 lyshark.php.shtml這樣的格式,正常情況下會彈出文件下載提示框,但是由於Apache 2.x存在解析漏洞所以,會默認將其當作PHP腳本文件進行展開並執行。 Apache在解析文件時有一個原則,當碰到不認識的擴展名時,會從后向前解析,直到碰到認識的擴展名為止,如果不認識則會爆露其源代碼,此時我們如果上傳 lyshark.php.shtml的話,很明顯.rar 他不認識,則會先前遞增,會看到.php 默認就會使用.php 解析啦

第五關

繞過方法
后綴使用大小寫繞過

第六關
這一關少了首位去空的代碼
繞過方法
在window下1.jpg[空格] 和1.jpg.是不允許存在的,會強制刪除空格和.
第七關
少了刪除文件名末尾的點
繞過方法
和第六關差不多不過這次換成了點
第八關
少了去除::$data的代碼
繞過方法

第九關
這里的代碼邏輯是先刪除末尾點,在截取點后面的字符串,將字符串轉換成小寫並首尾去空
繞過方法
這里我們可以使用點空格點的形式,同樣利用了window下的特性,如果我們是在window下的環境那么3-9都可以利用點空格點
burp修改后綴為1.php為1.php. . 過濾后為1.php.

瀏覽器訪問1.php.實際訪問的是1.php可以直接訪問1.php
第十關
代碼中只是對敏感后綴進行了一次替換
繞過方法
對后綴進行雙寫如 pphphp