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

CTF知识点总结(二)

异或注入:两个条件相同(同真或同假)即为假。

 

http://120.24.86.145:9004/1ndex.php?id=1'^(length('union')!=0)--+

如上,如果union被过滤,则 length('union')!=0 为假,那么返回页面正常。

2|0updatexml() 函数报错注入

UPDATEXML (XML_document, XPath_string, new_value);
第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串) ,如果不了解Xpath语法,可以在网上查找教程。
第三个参数:new_value,String格式,替换查找到的符合条件的数据
作用:改变文档中符合条件的节点的值

注入语句示例:

 

select name from user where id=1 and updatexml(1,concat('~',(select database()),'~'),3);

注入原理:这个函数的第二个参数需要Xpath格式的字符串,则传入错误的格式会爆出错误,在内的语句会以爆出执行后的结果

3|0源文件泄露利用

.DS_Store文件泄露:利用工具----ds_store_exp,github地址

.git文件泄露:利用工具----GitHack,github地址

4|0extract变量覆盖

extract()函数:从数组中将变量导入当前符号表。

定义:

  • 从数组中将变量导入到当前的符号表
  • 该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量

语法:extract(array,extract_rules,prefix)

  • array,必需,要使用的数组
 

<?php $a="hello"; $b= array('a' =>"world" ,"b"=>"gogogo"); extract($b); echo $a; //world ?>

如上所示,会存在一个覆盖漏洞。

5|0strcmp()漏洞

 

<?php echo strcmp("Hello world!","Hello world!"); // 两字符串相等 //0 echo strcmp("Hello world!","Hello"); // string1 大于 string2 //7 echo strcmp("Hello world!","Hello world! Hello!"); // string1 小于 string2 //-7 ?>

​ 如上所示,strcmp()用于比较字符串大小,但是strcmp()在比较字符串和数组的时候直接返回0,可用于绕过。

6|0md5()漏洞

 

$_GET['name'] != $_GET['password'] MD5($_GET['name']) == MD5($_GET['password']) MD5($_GET['name']) === MD5($_GET['password'])

​ PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。

以下值在md5加密后以0E开头:

  • QNKCDZO
  • 240610708
  • s878926199a
  • s155964671a
  • s214587387a
  • s214587387a

另外,MD5()无法处理数组,当比较数组时,会返回0,也能用于绕过,name[]=a&password[]=b

7|0ereg()截断漏洞

ereg()与strpos()两个函数同样不能用数组作为参数,否则返回NULL。

另外,ereg()存在截断漏洞,使用%00可以截断正则匹配。

另外,当长度与数值矛盾时,可以采用科学计数法表示,1e8=100000000。

8|0弱类型整数大小比较绕过

 

$temp = $_GET['password']; is_numeric($temp)?die("no numeric"):NULL; if($temp>1336){ echo $flag;

is_numeric()同样可以用数组绕过、%00截断、添加其他字符

 

http://123.206.87.240:9009/22.php?password[]=1 http://123.206.87.240:9009/22.php?password=9999a http://123.206.87.240:9009/22.php?password=9999%00

http://www.lryc.cn/news/517856.html

相关文章:

  • 解决Edge打开PDF总是没有焦点
  • 69.基于SpringBoot + Vue实现的前后端分离-家乡特色推荐系统(项目 + 论文PPT)
  • 计算机视觉目标检测-DETR网络
  • 《自动驾驶与机器人中的SLAM技术》ch1:自动驾驶
  • 【UE5 C++课程系列笔记】23——多线程基础——AsyncTask
  • 基于Python的音乐播放器 毕业设计-附源码73733
  • cursor vip
  • Docker部署项目,Mysql数据库总是宕机并且上传数据全部被删除了
  • C++ 复习总结记录六
  • spring boot 集成 knife4j
  • WordPress静态缓存插件WP Super Cache与 WP Fastest Cache
  • Pytest钩子函数,测试框架动态切换测试环境
  • VUE3封装一个Hook
  • 【Spring Boot】Spring AOP 快速上手指南:开启面向切面编程新旅程
  • HTML基础入门——简单网页页面
  • INT301 Bio Computation 题型整理
  • 机器学习免费使用的数据集及网站链接
  • 低空经济——飞行汽车运营建模求解问题思路
  • 英伟达Project Digits赋能医疗大模型:创新应用与未来展望
  • 【Python3】异步操作 redis
  • 【W800】UART 的使用与问题
  • UART串口数据分析
  • NFS 组件容器化部署实战指南
  • 嵌入式软件C语言面试常见问题及答案解析(三)
  • nvm安装教程
  • 单片机-定时器中断
  • Hadoop 实战笔记(一) -- Windows 安装 Hadoop 3.x
  • AI中的神经元与权重矩阵之间的关系;神经元连接角度看行和列的意义
  • mysql、postgresql、druid链接池踩坑记录
  • NRF24L01模块STM32通信-通信初始化