当前位置: 首页 > news >正文

4.25学习——文件上传之00截断

继昨天学习的基础文件上传内容,进一步学习文件上传的绕过方式

00截断绕过

原理:00截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号,以此来达到绕过的目的
但是存在一定的局限性:
php版本小于5.3.29
magic_quotes_gpc = Off
例题:
upload-labs的Pass-12
这一关是白名单型的绕过,白名单里只允许图片类文件上传,如jpg,png文件上传
因为白名单的缘故,只能先上传php.png后缀的文件,在上传处进行修改,而这里就需要用到00%截断的方法(之前没注意到这个问题,图片有点问题)在这里插入图片描述需要修改第一行跟文件名,把upload/后面加上1.php%00,下面的1.php改为1.png在这里插入图片描述就可以了

但是这里还存在另一种情况:使用POST请求的情况,POST不会对里面的数据自动解码,需要在Hex中修改。
在这里插入图片描述
先进行抓包,然后在hex值处修改
在这里插入图片描述这里要注意区分,hex中有两个空格,一个是20,一个是00,看上去都是空格,但是00代表的空格没有实际含义,只会起到截断的作用
这样就上传成功了
实战刷点题试试
ctfhub
拿到题目看一下有没有黑名单在这里插入图片描述发现是白名单类型,只允许图片类型的文件进行上传
此时就可以利用00截断来操作了
在这里插入图片描述这里通过00截断来把后面的png后缀丢弃,将其作为php来执行,达到绕过的目的

在这里插入图片描述

相关文章:

  • 人工智能与机器学习,谁是谁的子集 —— 再谈智能的边界与演进路径
  • 自学新标日第二十二课(复习)
  • 并发设计模式实战系列(7):Thread Local Storage (TLS)
  • 命令行指引的尝试
  • 初一试后担忧
  • 在虚拟机中安装Linux详细教程
  • PyQt6基础_QTableWidget
  • 题目 3320: 蓝桥杯2025年第十六届省赛真题-产值调整
  • SpringCloud基于Eureka和Feign实现一个微服务系统
  • 【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)
  • 豆瓣图书数据采集与可视化分析(三)- 豆瓣图书数据统计分析
  • 基于ssm的小区物业管理系统(源码+数据库)
  • vue2实现Blod文件流下载
  • AI生成创作图片操作流程一分钟学会!
  • 多层pcb工厂哪家好?
  • Python数据分析案例72——基于股吧评论数据的情感分析和主题建模(LDA)
  • Linux:进程间通信---匿名管道
  • 影视配乐神器:专业级音乐库TOP榜
  • 头歌实训之索引
  • 【金仓数据库征文】-数据库界新兴前列者,本篇带你速懂金仓数据库!
  • 俄方证实俄总统普京正在会见美特使威特科夫
  • 钱学森数据服务中心在沪上线,十万个数字资源向公众开放
  • 远程控制、窃密、挖矿!我国境内捕获“银狐”木马病毒变种
  • 王毅同伊朗外长阿拉格齐会谈
  • 我国将组织实施梦舟飞船零高度逃逸、揽月着陆器综合着陆起飞验证等试验
  • 专访|前伊核谈判顾问:伊朗不信任美国,任何核协议都会有中俄参与