0x02 函数说明
1.strcmp函数
如果 str1 小于 str2 返回 < 0;如果 str1大于 str2返回 > 0;如果两者相等,返回 0。
0x03 数组绕过strcmp函数 CTF题解析
1.当我们传入payload:a[],路由过程如下
代码第1行:判断是否有a参数传入DEBUG:$_GET:{a => },这里有参数,所以pass
代码第2-8行:strcmp函数判断a传入的参数是否和$flag相等DEBUG:$_GET:{a => },这里[]数组和$flag不相等,但是我们传入的数组为非字符串类型的数据,这个函数将发生错误,在5.3之前的php中,显示了报错的警告信息后,将return 0 ! 也就是虽然报了错,但却判定其相等了,所以这里输出了flag
if (isset($_GET['a'])) {
if (strcmp($_GET['a'], $flag) == 0) //如果 str1 小于 str2 返回 < 0;如果 str1大于 str2返回 > 0;如果两者相等,返回 0。
//比较两个字符串(区分大小写)
die('Flag: '.$flag);
else
print 'No';
}
原文始发于微信公众号(鲲哥的Bypass之旅):奇淫巧计 数组绕过strcmp函数
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论