首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    代码审计Day1 - in_array函数缺陷

    因为PHP在使用 in_array() 函数判断时,会将 7shell.php 强制转换成数字7,而数字7在 range(1,24) 数组中,最终绕过 in_array() 函数判断,导致任意文件上传漏洞...(这里之所以会发生强制类型转换,是因为目标数组中的元素为数字类型)我们来看看PHP手册对 in_array() 函数的定义。...该版本由于SQL语句直接拼接 $rate 变量,而 $rate 变量也仅是用 in_array() 函数简单处理,并未使用第三个参数进行严格匹配,最终导致sql注入漏洞发生。...例如将 in_array() 函数的第三个参数设置为 true ,或者使用 intval() 函数将变量强转成数字,又或者使用正则匹配来处理变量。...这里我将 in_array() 函数的第三个参数设置为 true ,代码及防护效果如下: 结语 看完了上述分析,不知道大家是否对 in_array() 函数有了更加深入的理解,文中用到的CMS可以从

    99610

    PHP代码审计01之in_array()函数缺陷

    > 这一关考察的是任意文件上传漏洞,导致这个漏洞发生的是上方代码中,对in_array()函数使用不规范导致的。这里详细说一下in_array()函数的用法。...现在看上方代码第12行,这里使用了in_array()函数来检查文件名,但是没有设置第三个参数!,只会进行弱类型比较,不会检查数据类型。...in_array(id, whitelist,true)),再执行就会输出:“你想搞事”。 现在是不是对in_array()函数有了一个大概的了解呢?那让我们做一道同类型CTF题目来加深巩固一下。...CTF练习 这道题目也是in_array()函数没有设置第三个参数,导致白名单被绕过,然后被SQL注入。下面我们具体看一下相关代码。 index.php <?...小结 通过这篇文章的讲解,是不是对in_array()理解更深了一些呢?下一篇文章会对filter_var函数缺陷导致的漏洞进行学习和分析,一起努力吧!

    1.8K30

    PHP代码审计Day1 - in_array函数缺陷

    因为PHP在使用 in_array() 函数判断时,会将 7shell.php 强制转换成数字7,而数字7在 range(1,24) 数组中,最终绕过 in_array() 函数判断,导致任意文件上传漏洞...(这里之所以会发生强制类型转换,是因为目标数组中的元素为数字类型)我们来看看PHP手册对 in_array() 函数的定义。...由于这里(上图第6行)并没有将 in_array() 函数的第三个参数设置为 true ,所以会进行弱比较,可以绕过。...例如将 in_array() 函数的第三个参数设置为 true ,或者使用 intval() 函数将变量强转成数字,又或者使用正则匹配来处理变量。...这里我将 in_array() 函数的第三个参数设置为 true ,代码及防护效果如下: ? ?

    2.3K21
    领券