iwebsec靶场 文件上传漏洞通关笔记1-第01关 前端js过滤绕过

目录

第01关 前端js过滤绕过

1.禁用js法

(1)禁用js

(2)刷新页面使生效

(3)上传脚本

(4)开启js并刷新页面

2.修改页面法1

(1)右键查询元素

(2)搜索关键字check

(3)删除函数调用

(4)上传脚本

 (5)访问脚本

3.bp改包法

(1)分析源码

(2)将脚本后缀改为jpg

(3)上传info.jpg并bp抓包

(4)bp中将info.jpg改名为info.php并发送

(5)访问脚本


第01关 前端js过滤绕过

打开第一关靶场iwebsec 靶场漏洞库iwebsecicon-default.png?t=M85Bhttp://iwebsec.com:81/upload/01.php

构造脚本info.php,内容为显示php的版本信息<?php phpinfo();?> 如下所示

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

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

1.禁用js法

(1)禁用js

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

(2)刷新页面使生效

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

 

(3)上传脚本

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

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

(4)开启js并刷新页面

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

2.修改页面法

(1)右键查询元素

(2)搜索关键字check

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

(3)删除函数调用

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

(4)上传脚本

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

如下所示提示上传成功

 (5)访问脚本

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

3.bp改包法

(1)分析源码

过滤函数的作用是判断文件的后缀,使用白名单的方法(只允许jpg,jpeg,png,gif,bmp这几种类型后缀),如下所示

    <script type="text/javascript">
        function checkFile() {
            var file = document.getElementsByName('upfile')[0].value;
            if (file == null || file == "") {
                alert("你还没有选择任何文件,不能上传!");
                return false;
            }
            //定义允许上传的文件类型
            var allow_ext = ".jpg|.jpeg|.png|.gif|.bmp|";
            //提取上传文件的类型
            var ext_name = file.substring(file.lastIndexOf("."));
            //alert(ext_name);
            //alert(ext_name + "|");
            //判断上传文件类型是否允许上传
            if (allow_ext.indexOf(ext_name + "|") == -1) {
                var errMsg = "该文件不允许上传,请上传" + allow_ext + "类型的文件,当前文件类型为:" + ext_name;
                alert(errMsg);
                return false;
            }
        }
    </script>

根据源码,可以将info.php改名为info.jpg在客户端绕过过滤,然后使用burpsuite抓包并将报文再次由info.jpg改回info.php发送,这样即可实现上传绕过 。

(2)将脚本后缀改为jpg

将info.php改名为info.jpg,如下所示:

(3)上传info.jpg并bp抓包

bp开启拦截模式

将info.jpg上传

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

(4)bp中将info.jpg改名为info.php并发送

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

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

 如上所示,等待报文相应后可知脚本上传已成功。

(5)访问脚本

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

如上所示,渗透成功

 

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooyuan天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值