网络安全零基础入门(第八章-2)文件上传漏洞——解析、验证、伪造(二)

  • 每日一句:利用服务器的保存机制进行%00截断
         服务器端攻击方法:%00截断、条件竞争
  • 本篇内容:%00截断和00截断
         实战注意
         条件竞争

一、%00截断和00截断

1.白名单比黑名单机制安全了太多,但是也不是绝对安全
  
2.%00是干嘛的
    在说这的作用之前,先说一下服务器保存机制(其中的一种)
    
    用户上传图片 -> 上传到临时目录 -> php移动重命名
    %00就是再移动重命名的时候,动手脚
    
    比如,我们上传木马命名为:1.php%00.jpg,当程序读取到
    %00 他就认为到这结束了,于是保存为1.php
    
    注意:这也是由php版本限制的,高版本貌似修复了此bug
    %00是url编码后的,实际上是构造ASCII码值的0

二、实战注意

1.上传文件漏洞,不能仅仅靠眼睛去判断,最好是用burp
  
2.burp修改可以在Hex那修改,改为00
  
3.图片马尽量做成gif图片马,而不是jpg
    ~基本不会被渲染影响,渲染影响只会造成gif的部分影响,看情况插马
    
    ~如何防御:二次渲染即可(思想:分区图片马有效)
    ~上传成功图片马必须配合文件包含使用

三、条件竞争

1.服务器验证上传文件的两种形式:
    ~先上传后验证
    ~先验证后上传
    
2.这个知识点就是讲到,利用并发进程,在未删除之前,抢先一步访问这个文件
    简单的说:
      服务器删除文件需要时间—> 假设0.01s
      100个线程不间断得上传的文件 —>
      100个线程不间断得访问的文件 —>
      有的访问到文件 <–> 执行 <-> 占用(执行速度也很快)
      当比删除速度快,就访问成功了(有概率,还得等几分钟)
      
    代码:
    <?php $a = '<?php @eval($_REQUEST[\'a\'])?>';
    file_put_contents('1.php',$a)?>
    
    适用条件:先上传后验证
    解决方法:发现较大线程访问,直接ban掉IP
    
3.具体操作步骤:
    ~上传正常图片
    ~看看图片保存位置
    ~多线程上传图片马,(burp爆破模块)
    ~上传图片马的同时,多线程访问,(burp爆破模块)
    ~等待。。。
    
    原理容易理解,步骤较为繁琐,还有点看脸的感觉。

四、总结

1.php.jpg
  名字 后缀
  
2.上传图片—>上传到临时文件—>php移动重命名(读取到0x00他认为就结束啦)
  
  12345.jpg改为12345%00.jpg
    路径修改
    
3.gif 动图()  只会渲染部分gif,无大碍
  
4.是否被渲染
    假如:第一部分:不会被渲染影响
   
       第二部分:会被影响
   
5.先验证还是先执行
   
  先上传去然后校验,不符合删除
 
  先校验不符合不允许上传
 
  截断 + 条件竞争 + 图片马

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值