前端JS过滤绕过
前端JS过滤绕过的原理是:应用程序是在前端通过JS代码进行验证,而不是在程序后端进行验证,这样攻击者就可以通过修改前端JS代码绕过上传过滤,上传木马。
一、iwebsec的安装
由于文件上传漏洞无法使用在线网址,没有安装靶场的话,可以根据这个链接进行安装
二、源码分析
docker ps
注意被红色方框框住的那些东西
然后通过下面的语句进入管理员权限
注:bc23是前面的四位后面需要加上一个空格
docker exec -it bc23 /bin/bash
我们要到这个源码文件的目录下才可以查看
cd /var/www/html/
cd upload
ls
这道题目用到的是01.php,只需查看一下01.php文件的内容
cat 01.php
通过源码,不难看出允许上传的文件类型只有.jpg|.jepg|.png|.gif|.bmp|
而且只是前端过滤。
就可以使用抓包的方法来对其进行绕过
三、页面分析
首先我们创建一个php文件
只需创建一个记事本,里面的内容可以随便编写,然后把后缀改为.php就可以了
然后将该php文件进行上传,会出现错误
解决方法
这里以使用burpsuit为例进行抓包
首先我们将刚刚创建的php文件的后缀改为可上传文件类型,这里以后缀为.jpg为例
通过burpsuit进行截断,把off改成on然后再次上传文件刚刚改名的jpg文件
这样我们就成功的截获到了
然后找到里面的filename进行修改
把001.jpg文件改为001.php
浏览器上的页面就会发生变化,显示上传成功保存路径为uploads/001.php
查看该路径(记得关闭burpsuit的截获)出现下面的界面就是成功了
http://192.168.159.130/upload/uploads/001.php
我们也可以通过iwebsec的虚拟机来查看
docker exec -it bc23 /bin/bash
cd /var/www/html/upload/uploads
ls
在这里我们也可以看见上传成功了001.php(001.jpg本来是不会上传的,本来应该是只有001.php,只是我自己失误没开截获直接上传了一次)