如何构造一个出错的压缩包

怎么制造一个只能解压一半的压缩包(即解压到一半出错的)?

这个问题其实需要看具体情况,看解压的那个程序的容忍程度。

这里就以两个解压的程序作为例子:

1. Windows下的7zip
2. PHP自带的ZipArchive库

先说7zip。

7zip的容忍度很低,只要压缩包中某一个文件的CRC校验码出错,就会报错退出。

如何修改压缩包里文件的CRC校验码呢?可以使用010editor。

先准备两个文件,一个PHP文件1.php,一个文本文件2.txt,其中1.php是webshell。

然后将这两个文件压缩成shell.zip。

然后我们用010editor打开shell.zip,可以看到右下角有这个文件的格式信息,它被分成5部分

打开第4部分,其中有个deCrc,我们随便把值改成其他的值,然后保存。

此时用7zip解压就会出错,解压出的1.php是完好的,2.txt是一个空文件。

我们再用PHP自带的ZipArchive库(代码如图4)测试这个zip,发现解压并没有出错,这也说明ZipArchive的容忍度比较高。

那么我们又如何让ZipArchive出错呢?最简单的方法,我们可以在文件名上下功夫。

比如,Windows下不允许文件名中包含冒号(:),

我们就可以在010editor中将2.txt的deFileName属性的值改成“2.tx:”。

此时解压就会出错,但1.php被保留了下来。

在Linux下也有类似的方法,我们可以将文件名改成5个斜杠(/)。

此时Linux下解压也会出错,但1.php被保留了下来

如何构造一个出错的压缩包相关推荐

  1. 使用TextInputLayout分分钟构造一个酷炫登录框架

    Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,Android ...

  2. python构造一个二叉树_如何用python构造一个n层的完全二叉树

    展开全部 用python构造一个5261n层的完全二叉树4102的代码如下: typedef struct { int weight; int parent, lchild, rchild; } HT ...

  3. 构造一个日期类java_Java8 新日期时间类(1)

    Java.time 包的优势 使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点. 非线程安全 - java.util.Date不是线程安全的,因此开发者必须在使用日期处理并发性问 ...

  4. 决策树的构造——一个手工例子

    决策树的构造--一个手工例子 这个数据集来自Mitchell的机器学习,叫做是否去打网球play-tennis,以下数据仍然是从带逗号分割的文本文件,复制到纪事本,把后缀直接改为.csv就可以拿Exc ...

  5. Boost:构造一个流对象,任何发送到此流将标准输出

    Boost:构造一个流对象,任何发送到此流将标准输出 实现功能 C++实现代码 实现功能 构造一个流对象,任何发送到此流将标准输出 C++实现代码 #include "zfstream.h& ...

  6. 【python开发】构造一个可以查看,填加和返回的字典

    当我们在面对一个字典的时候,基本功能有查找,填加,和返回上一级,我们利用上一篇的字典,写了一个可以实现字典基本功能的小程序: #!/usr/bin/env python # -*- coding:ut ...

  7. oracle logfile sync,oracle等待事件3构造一个DirectPathwrite等待事件和构造一个LogFileSync等待事件...

    第一篇<oracle等待事件1分别用表和索引上数据的访问来产生dbfilescatteredread等待事件>http://leonarding.blog.51cto.com/604552 ...

  8. sql多语句表值函数_构造一个特殊的多语句表函数来检查SQL Server的运行状况

    sql多语句表值函数 问题 ( The Problem ) Checking the many SQL Servers health conditions is one of the DBA basi ...

  9. 效果良好!构造一个输入速度的神经网络,以DQN方式实现小游戏的自动控制

    在之前的文章中,我们做了如下工作: 如何设计一个类flappy-bird小游戏:[python实战]使用pygame写一个flappy-bird类小游戏 | 设计思路+项目结构+代码详解|新手向 DF ...

最新文章

  1. 仿斗鱼聊天:基于CoreText的面向对象图文排版工具AWRichText
  2. 问题集锦(48-51)
  3. SpringMVC源码分析(4)剖析DispatcherServlet重要组件
  4. jquery实现图片懒加载
  5. 如何获取当前C#程序所有线程的调用栈信息 ?
  6. Java这些多线程基础知识你会吗?
  7. Spring Cloud各组件总结归纳
  8. java8 ie_Java8语法糖之Lambda表达式_Hudie.的博客-CSDN博客
  9. B - ACM小组的古怪象棋 【地图型BFS+特殊方向】
  10. 思科警告: Nexus 交换机受严重缺陷影响
  11. 阿里云cenos 6.5 模板上安装 docker
  12. 在Ubuntu Server14.04上编译Android6.0源码
  13. 优云软件闪耀中国双态运维大会·乌镇峰会
  14. Android官方模拟器安装
  15. Android面试知识点复习,那些不为人知的秘密
  16. close事件 vue_vue中v-on支持的事件总结
  17. php在文本框显示图片,多张图片上传后在页面上可以显示图片,在文本框显示地址怎么解决啊...
  18. 石油大学华东matlab王海燕,中石大获2019全国三维数字化创新设计大赛年度总决赛二等奖...
  19. 【记录读论文时遇到的一些算法2】—— Occupancy Grid Map
  20. 预测身高c需语言,预测身高问题。不知哪出问题了,算出乱码。求解!

热门文章

  1. CLAN Studio Toolkits - Icon Creator
  2. 7-33 地下迷宫探索 (30 分)-简单dfs
  3. 关于android开发中使用VideoView切换视频源时同时改变大小会出现下一个视频第一帧为上一个视频最后显示帧问题解决
  4. Java架构师的岗位职责模板(合集)
  5. 机器人创业大赛 | RoboStartup开营初体验
  6. 深入剖析Redis高可用系列:持久化 AOF和RDB
  7. 三坐标测量仪测针选择和校准时,需注意的问题!!!
  8. 使用 Eclipse 的 Restore from local history 功能恢复误删除的文件
  9. 30 个极大提高开发效率超级实用的 VSCode 插件
  10. 【教程汇总】谷歌站内SEO部分