推荐使用作者给的环境:下载地址
有些漏洞对环境要求比较高
Pass-01
上传PHP后缀的文件,发现没有经过BurpSuite就弹出警告,这种情况是前端JavaScript检测造成的。

修改文件名后缀,改为gif再上传,绕过JavaScript验证,在BurpSuite里修改数据包,将文件名改为php

上传成功

除了使用BurpSuite抓包修改后缀名绕过JavaScript前端验证,还可以直接修改JavaScript代码,在白名单中添加php或直接破坏JavaScript,使其无法进行验证。
添加白名单

破坏JavaScript

form表单
1 | <form enctype="multipart/form-data" method="post" onsubmit="return checkFile()"> |
JavaScript验证
1 | <script type="text/javascript"> |
from表单的onsubmit调用了checkFile()
在checkFile()里,规定了允许上传的文件类型
Pass-02
修改数据包中的Content-type

成功上传

1 | if (isset($_POST['submit'])) { |
查看代码,使用数据包中的文件类型来判断文件类型,所以可以在BP里修改Content-type来绕过判断
Pass-03
查看代码
1 | if (isset($_POST['submit'])) { |
查看代码,发现会提取上传文件后缀名,并拿去和黑名单比对,然后再随机生成文件名保存,有strtolower()函数,所以无法大小写绕过
由于是黑名单,所以使用php3后缀绕过检测,而且可以被解析,同样可以绕过的后缀名还有phtml
上传phpinfo.php3

查看上传路径

访问上传文件

Pass-04
1 | if (isset($_POST['submit'])) { |
查看源码,黑名单里有一堆后缀,不过没有.htaccess,而且没有重命名上传文件
所以可以先上传.htaccess,再上传图片马解析
1 | <FilesMatch "Pass-04.jpg"> |

上传图片马

上传地址

访问图片马

Pass-05
1 | if (isset($_POST['submit'])) { |
查看源码,发现增加了.htacess后缀,不过这次少了strtolower()函数,所以可以大小写绕过
