文件上传b

无验证

我们就可以直接上传一句话木马或者是webshell脚本。

前端验证   也叫客服端检测

前端验证主要是用JavaScript函数,我们先看看这个函数

含义:JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

作用:JavaScript的作用更多的时候是实现网页的交互功能,刚刚开始学前端的小伙伴都知道网页主要由HTML+CSS实现,但只能实现一个静态的内容效果,想要实现交互和更炫酷的效果那么就需要使用JS的帮助了,所以HTML+CSS+JS被称为前端三剑客。

因此在文件上传中js函数主要是要验证你上传的文件是不是它允许的文件类型。

在ctfhub中一道题就是关于前端验证的

文件上传我们一来都会先上传一句话木马看看,或者是先上传配置文件,

但是我们上传以后就会发现,上传不了。然后我们就会尝试去抓包看看,但是发现抓包也是不可以的,因为我们没有禁用检测文件后缀的JS代码。我们禁用之后就可以抓包了。上传正常格式文件,抓包修改文件的filename为脚本格式。

 

服务端检测(目录路径检测)

对目录路径的检测不够严谨而导致可以使用%00截断绕过进行攻击。

eg:

  • /111.php%00.gif/111.gif -> /111.php
黑白名单绕过

黑名单

1.大小写绕过,例如黑名单中为.php,那么可以上传.PHP或者.Php来绕过黑名单,这里在sql中也有体现。

2.“. ”“_”号和空格绕过,(只适用于Windows系统)Windows系统下,文件名后缀最后一个“.”“_”和空格会被自动去除,例如黑名单为.php,那么可以上传.php.,.php_或者.php 来绕过黑名单,Windows在解析时会删除最后一个.和_还有空格

3.::$DATA绕过,(只适用于Windows系统)在Windows的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名

4.双写绕过,有些函数会替换敏感文件名,但不递归删除的话就可以双写绕过,例如a.phphpp,php被替换为空后就成了a.php

5.00截断绕过,上传时上传a.php.jpg,抓包在php后添加一个字符修改其HEX值为00,这样解析之后就是a.php了,也绕过了黑名单; 常见于ASP程序,JSP也会出现 PHP限制条件: php<5.3.4 php.ini中的magic_quotes_gpc设置为OFF

6.上传可解析的扩展文件名,例如:

asp/aspx: asp,aspx,asa,asax,ascx,ashx,asmx,cer,aSp,aSpx,aSa,aSax,aScx,aShx,aSmx,cEr

php : php,php5,php4,php3,php2,pHp,pHp5,pHp4,pHp3,pHp2,html,htm,phtml,pht,Html,Htm,pHtml

jsp : jsp,jspa,jspx,jsw,jsv,jspf,jtml,jSp,jSpx,jSpa,jSw,jSv,jSpf,jHtml

可利用burp fuzz测试

白名单

通过某种类型的技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值