CG-CTF-Web-MYSQL

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

每一次的代码审计中,关键的函数总是被自己给省略掉,这点自己必须改掉。

猜你喜欢

转载自blog.csdn.net/rfrder/article/details/108427738