目录
打开第一关靶场iwebsec 靶场漏洞库iwebsechttp://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 如下所示渗透成功。
如上所示,渗透成功