WP
我只能说,代码审计真的是硬伤。做了这么多题,做不出来的原因一直是代码审计的时候太想当然。我还没有实现从理解代码逻辑到找出代码漏洞的转变。
这个直接访问robots.txt,TIP中有sql.php,下方应该是sql.php的源代码。进行代码审计。
<?php
if($_GET[id]) {
mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
mysql_select_db(SAE_MYSQL_DB);
$id = intval($_GET[id]);
$query = @mysql_fetch_array(mysql_query("select content from ctf2 where id='$id'"));
if ($_GET[id]==1024) {
echo "<p>no! try again</p>";
}
else{
echo($query[content]);
}
}
?>
代码主要的问题是在
$id = intval($_GET[id]);
if ($_GET[id]==1024) {
可以发现(我没发现),进行弱类型比较的并不是经过了intval函数取整的id,我们可以输入1024.1这样数,这样就可以成功获得flag。
WP
每一次的代码审计中,关键的函数总是被自己给省略掉,这点自己必须改掉。