小迪安全笔记-20
小迪安全笔记-20
Kn1ght第20天:WEB攻防-PHP特性_缺陷对比函数_CTF考点_CMS审计实例
知识点:
1、过滤函数缺陷绕过
2、CTF考点与代码审计
详细点:最常见函数使用
==与===
md5
intval
strpos
in_array
preg_match
str_replace
缺陷绕过
1 |
|
MD5
1 | if($_GET['name'] != $_GET['password']){ |
md5这种绕过也是比较常见的
intval缺陷绕过
Intval 使用:https://www.runoob.com/php/php-intval-function.html
1 | //3、intval缺陷绕过 |
strpos绕过
strpos()函数:
https://www.runoob.com/php/func-string-strpos.html
这个php函数作用是查找指定字符串第一次出现的位置
1 | //4、对于strpos()函数,我们可以利用换行进行绕过(%0a) |
in_array
in_array() 函数搜索数组中是否存在指定的值。
如果第三个参数没有设置为true的话,就不会检测数据类型
1 | //5、in_array第三个参数安全 |
preg_match
https://www.runoob.com/php/php-preg_match.html
1 | //6、preg_match只能处理字符串,如果不按规定传一个字符串,通常是传一个数组进去,这样就会报错 |
str_replace
1 | //7、str_replace无法迭代过滤 |
缺点:只能过滤一次,可以双写绕过,比如:sselectelect
案例
Metinfo
这里可以双写绕过,因为要过滤一个./和一个../ ,直接写成…..///
payload:……/include/thumb.php?dir=…..///http/…..//\config\config_db.php