目录
打开第一关靶场iwebsec 靶场漏洞库iwebsec
http://iwebsec.com:81/upload/01.php

构造脚本info.php,内容为显示php的版本信息 如下所示

随手上传info.php,提示失败

右键查询源码,发现源码中过滤文件后缀的函数checkFile是通过前端的js代码实现的,如下所示

使用firefox的禁用js插件,如下图所示js标签红色时代表启动js,js标签为灰色时代表禁用js

禁用js后刷新页面使禁用生效

再次将构造的info.php进行上传 ,此时点击上传后显示成功

访问info.php,http://iwebsec.com:81/upload/uploads/info.php 如下所示渗透成功。

为了避免关掉js对之后造成影响,做完了禁用js的操作后,需要开启js并且刷新当前页面使其生效


在搜索框内输入check,找到源码分析中的函数调用处 return checkFile,如下所示

将双引号包含的return checkFile()选中后删除,如下所示

在删除函数调用后,不刷新当前页面,直接上传info.php脚本

如下所示提示上传成功

访问info.php,http://iwebsec.com:81/upload/uploads/info.php 如下所示渗透成功。

过滤函数的作用是判断文件的后缀,使用白名单的方法(只允许jpg,jpeg,png,gif,bmp这几种类型后缀),如下所示
-
根据源码,可以将info.php改名为info.jpg在客户端绕过过滤,然后使用burpsuite抓包并将报文再次由info.jpg改回info.php发送,这样即可实现上传绕过 。
将info.php改名为info.jpg,如下所示:

bp开启拦截模式
将info.jpg上传

在bp中抓包,并将此包发送给repeater

将filename中的info.jpg改为info.php

修改后如下所示,并点击发送

如上所示,等待报文相应后可知脚本上传已成功。
访问info.php,http://iwebsec.com:81/upload/uploads/info.php 如下所示渗透成功。

如上所示,渗透成功