php 缺陷
2024.1.29 00:32
前言
在课程安排上先讲语言缺陷,再讲漏洞
函数缺陷与绕过
CTF
详细点:
\==
\===
intval
strpos
in_array
preg_match
str_replace
开始
1a +1 1admin 都能绕\==
但是上述三种在\===中不能成
数组绕过
MD5 处理数组会返回 null
\==可以用两个串绕过
\===可以用数组绕过
QNKCDZO
240610708
intval()
第二个参数是 0 则进行自定义进制对比
串如果以 0x 开始,则进行 16 进制对比
strpos()
%0a 是换行符,考虑进行绕过
in_array()
第三个参数是 true 则未 strict 模式,相当于\==
1=1e
1=1,select
preg_match()
正则,可用数组绕过
参数 i 表示不区分大小写
参数 m 表示匹配换行,换行可用%0a
str_replace()
过滤,无法迭代,尝试主动被重复过滤,结果只过滤一次
num[]=1
ctf
空格在地址中也能看成换行,就是%20
highlight_file 使用路径./绕过
cms 审计
$dir = str_replace(array('../','./'),'', \$_GET['dir']);
.....///
评价
这一节比较细,ctf 是 cms 代码审计的基础,两者有互通之处
材料
MetInfo 任意文件读取绕过