type
status
date
slug
summary
tags
category
icon
password
0x00 CTF-PHP常见考点
1.php弱类型的比较 2.php断言问题 3.php读取文件 4.preg_match绕过 5.sha1()函数与md5() 6.异或注入绕过 7.updatexml()函数考点 8.命令执行绕过:https://www.cnblogs.com/iloveacm/p/13687654.html 9.源文件泄露 10.extract变量覆盖 11.strcmp漏洞 ........
参考网上师傅的总结,感觉不错值得学习:https://www.cnblogs.com/iloveacm/p/13256577.html
下面取几个考点类型案例分析帮助理解,实际多在靶场修炼才更深刻。
0x01 案例1:弱类型绕过案例
php存在=,==,===三种比较符号
第一个=相当于直接赋值的道理
第二个= = 会直接将对象转换为相同类在进行比较
第三个= = = 会判断两种类型对象是否相等,再作比较
一段简短的代码审计题目理解php弱类型
payload:num=1abc 构成比较为1=1 为真输出flag
0x02 preg_match函数绕过
首先了解preg_match函数作用:用于执行一个正则表达式匹配。赛题中用来过滤函数
常见preg_match的绕过的三种方式:
(1)数组绕过,当传递参数为数组,会返回true
payload:传参:?a=[]=flag.php
(2)最大PCRE(正则查找匹配次数)突破,中文的回溯次数在100万次就会崩溃,构造exp突破次数即可返回true
pauload:
(3)"."换行符绕过,"."不会匹配换行符
payload:
参考了网上师傅总结,值得学习记录一下
0x03 案例2:RCE绕过案例
学习地址:[https://buuoj.cn/challenges#[GXYCTF2019]Ping%20Ping%20Ping](https://buuoj.cn/challenges#%5BGXYCTF2019%5DPing%20Ping%20Ping)
题目页面:
发现flag地址:
空格被过滤:
绕过rce执行空格:php-rce绕过参考:
符号被过滤
尝试绕过被过滤字符串flag:
总结:题目难度偏小 ,$IFS$2绕过空格加上拼接flag字符串,以;字符分割执行rce,获取flag
RCE命令执行绕过总结:https://zhuanlan.zhihu.com/p/391439312
- 作者:告白
- 链接:https://www.gbsec.top/article/CTF-PHP%E5%B8%B8%E8%A7%81%E8%80%83%E7%82%B9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。