本文分享的一些PHP代码的缺陷对比函数和CTF的一些考点 知识点: 过滤函数缺陷绕过 CTF考点与代码审计 例如:在php 语言中==与===(区别在于==不会对比类型===类型也会对比) 缺陷:两个等号的缺陷就是不唯一 下图是一个简易的代
本文分享的一些PHP代码的缺陷对比函数和CTF的一些考点
过滤函数缺陷绕过
CTF考点与代码审计
例如:在php 语言中==与===(区别在于==不会对比类型===类型也会对比)
缺陷:两个等号的缺陷就是不唯一
下图是一个简易的代码,flag的输出条件就是如果我们GET传参的值==$a 那么就输出flag
经过测试可以看到我们传递的参数是x=1admin可以看到代码中$a=1但是还是输出flag了,这就是==的缺陷。
Md5案例:==时MD5判断方法是0e开头相同的加密值他们就相等。当出现===时采用数组进行绕过(MD5加密不了数组),因为md5不能判断数组返回null值,两边都返回null就会相等。所以我们要是想要输出flag那么就传递数组就可以。
PHP常用函数:intval:用来获取函数的整数值,改用其他进制进行传参
strpos:查找php在字符串中第一次出现的位置
用法:
绕过:
in_array:在数组中寻找特定值
在调用该函数时,第三个参数不设置true值时就等同于==,不判断类型
preg_match:执行正则表达式函数
代码意思即不让输入0-9,判断还必须是数字(直接数组绕过)
参数:i是不区分大小写,m是检测换行,第一个检测换行,第二个不检测。%0a换行的意思
str_replace:过滤替换函数
ctf:前边加./不会改变文件名,还可以不影响路径
案例:代码审计-文件读取
源码看到只过滤一次,所以我们可以输入…..///进行绕过,过滤后变成../那么我们绕过了过滤就可以访问任意文件了,比如数据库配置文件,查看用户名密码
来源地址:https://blog.csdn.net/weixin_68243135/article/details/127866393
--结束END--
本文标题: Web攻防--PHP特性&CTF考点
本文链接: https://www.lsjlt.com/news/423829.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0