Bugku—strcmp比较字符串

0x00 前言

这个是代码审计的题目。

题目

Bugku—strcmp比较字符串

0x01 Start

首先我们来看一下源码:

<?php
$flag = "flag{xxxxx}";
if (isset($_GET['a'])) {
if (strcmp($_GET['a'], $flag) == 0) //如果 str1 小于 str2 返回 < 0; 如果 str1大于 str2返回 > 0;如果两者相等,返回 0。
//比较两个字符串(区分大小写)
die('Flag: '.$flag);
else
print 'No';
}
?>

就是get 用a和flag比较。
这里strcmp有一个bug就是如果比较的是数组的话,还是会返回一个0。
所以使用payload:

?a[]=1

Bugku—strcmp比较字符串