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

CTF知识集-PHP特性


title: CTF知识集-PHP特性

写在开头可能会用到的提示

  • call_user_func 调用的函数可以不区分大小写
  • preg_match过滤存在长度溢出,长度超过100w检测失效。str_repeat(‘show’,250000); 生成100w个字符
  • preg_match是无法处理数组的,例如:preg_match( n u m ) , num), num),num[1]=1,这样子无法处理
  • intval()是可以检测十进制 | 八进制 | 十六进制的。如果字符串包括了 “0x” (或 “0X”) 的前缀,使用 16 进制 (hex);如果字符串以 “0” 开始,使用 8 进制(octal);否则,使用十进制
  • intval()。可以搭配的特殊字符是+和空格,当然也可以URL编码后提交。
  • highlight_file 包含的文件可以是全路径,可以接php://filter/resource=xxx
  • php的md5传入的是数组,那么md5一样,例如:a[]=1和b[]=2的md5值一样 补充:sha1可以
  • %00 可以截断
  • echo new DirectoryIterator(getcwd()); 遍历目录类 echo new filesystemIterator(getcwd()); 遍历文件类
  • var_dump($GLOBALS); 可以查看当前的全部变量
  • is_file() 检测文件函数,可以用伪协议来绕过
  • php会自动将不符合规范的变量(空格等特殊符号)转换为_,且只会转换一次,例如fl[ag.com,转换为fl_ag.com,后面的 . 不会被转换
  • 小知识点: ()是一个函数,()==gettext() 是gettext()的拓展函数
  • php里默认命名空间是\,所有原生函数和类都在这个命名空间中。 普通调用一个函数,如果直接写函数名function_name()调用,调用的时候其实相当于写了一个相对路 径; 而如果写\function_name()这样调用函数,则其实是写了一个绝对路径。 如果你在其他namespace里调用系统类,就必须写绝对路径这种写 法
  • file_get_contents可以使用伪协议,例如:file_get_contents( f i l e ) = = = " 123 " , file)==="123", file)==="123"file=data://text/plain,123;或者是php://input
  • curl 不仅支持http(s),而且支持file协议,例如: curl file:///home/sibei/test
  • P O S T [ c m d ] 可以写为 _POST[cmd]可以写为 POST[cmd]可以写为_POST{cmd}
  • php无论有没有上传文件的参数,如果强制上传文件,那么PHP会先保存到临时目录,待脚本执行结束后删除。linux的临时目录文件是/tmp/php???,问号代表任意字符。如果存在命令执行,那么就可以通过执行强制的临时文件来达到命令执行。linux通配符匹配 /???/???[@-[],这样可以匹配最后一位是大写字母的文件,贴个脚本
    image-20241212204856197

CVE收集

PHP5.5.9整数溢出漏洞

CVE收集

PHP5.5.9整数溢出漏洞

  • 当数组下标为4294967296时,等同于下标0,例如:maodoo[4294967296]等同于maodoo[0]

http://www.kler.cn/a/443678.html

相关文章:

  • 【数据库原理】数据增删改查,DML、单表查询、多表连接查询
  • 突发!GitLab将停止对中国区用户提供GitLab.com账号服务
  • 云原生后端开发(一)
  • 网络安全攻防演练中的常见计策
  • Unity3D仿星露谷物语开发5之角色单例模式
  • 掌握 Ansys ACP 中的参考方向:简化复杂的复合材料设计
  • NFTScan | 12.09~12.15 NFT 市场热点汇总
  • [NSSCTF 2022 Spring Recruit]factor
  • 对于给定PI参数的锁相环带宽简单计算方法
  • REST模式是什么,以及其他架构风格
  • 大模型中RAG模型的检索过程是如何实现的?(附最佳实践资料)
  • 唯品会C++面试题及参考答案
  • 设计模式-行为型模式
  • 企业如何通过TDSQL实现高效数据库迁移与性能优化
  • windows使用python写的YOLO来实现目标识别
  • CRC校验例题详解
  • 页面无滚动条,里面div各自有滚动条
  • Redis 7.x哨兵模式如何实现?基于Spring Boot 3.x版
  • 【uniapp蓝牙】基于native.js链接ble和非ble蓝牙
  • 前端如何做缓存处理?
  • http的MIME类型
  • 踩准智能汽车+机器人两大风口,速腾聚创AI+机器人应用双线爆发
  • 家校通小程序实战教程10部门管理前后端连接
  • AI工具如何深刻改变我们的工作与生活
  • Java 学习之路:开启编程世界的大门
  • 2.学习TypeScript 编译选项配置