php strcmp函数漏洞

strcmp函数漏洞

适用5.3版本以前的php

 

函数作用:字符串比较

php strcmp函数漏洞_第1张图片

 

 要求传入字符串。如果传入非字符串呢?

结果函数报错!但是函数返回“0”  。 虽然报错了但函数的判断却是“相等”

如何传入非字符串?答案是传入数组

将变量的结尾加上“[ ]”  将其构造为数组。

例子:

php
$flag = "flag{xxxxx}";
if (isset($_GET['a'])) {
if (strcmp($_GET['a'], $flag) == 0) 
die('Flag: '.$flag);
else
print 'No';
}
?>

payload:  ?a[]=任意字符  这里输入?a[]=admin   即可获得flag!

总结整理自:https://blog.csdn.net/cherrie007/article/details/77473817

你可能感兴趣的:(php strcmp函数漏洞)