搜索
查看: 1899|回复: 0

文件系统00截断—绕过

[复制链接]

666

主题

966

帖子

2462

积分

管理员

本论坛第一帅

Rank: 9Rank: 9Rank: 9

积分
2462

热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2017-12-31 09:23:17 来自手机 | 显示全部楼层 |阅读模式
文件系统00截断—绕过



在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞


通过抓包截断将【evil.php.jpg】后面的一个【.】换成【0x00】。在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束,从而将【evil.php.jpg】的内容写入到【evil.php】中,从而达到攻击








卡住php后缀,逼迫你上传文件后缀为jpg等类型,典型的上传绕过问题上传绕过解题思路可参考我转载的【文件上传检测的基本思路】,一般按照思路逐步尝试即可,简单的大小写,加后缀不可过,此题无js,猜测为0x00截断上传,此处仔细分析何为0x00截断上传及其原理.



    <%   
    path="upfiles/picture/"   
    file="20121212.jpg"   
    upfilename=path & file '最后的上传地址   
    %>   


upfilename即为最终名字,意思为如果地址为picture/1.php+,文件名为1.jpg则最终上传上去的文件路径为picture/1.php+1.jpg,0x00截断的思路即为将+之后的内容忽略掉使上传文件1.jpg最终上传到1.php中,此处利用到的就是0x00的截断漏洞,下面用题目做具体说明:

首先bp上传图片,将数据包发到repeater,并对/uploads/后面加上1.php+,此处相当于上述例子中的path:

然后打开hex(16进制),找到+对应的编码:

0x00的意思为16进制00,所以讲+对应的进制改成00(至于怎么找到对应代码,看右边对应代码,找到第几行,从左到右,每个字母对应一个代码),改完直接go


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表