美文网首页
SQL注入2

SQL注入2

作者: seeiy | 来源:发表于2019-01-07 19:52 被阅读10次

首先点击source,我们来看一下源码:

<html>
<head>
Secure Web Login II
</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 = $_POST[user];
  $pass = md5($_POST[pass]);
  $query = @mysql_fetch_array(mysql_query("select pw from ctf where user='$user'"));
  if (($query[pw]) && (!strcasecmp($pass, $query[pw]))) {
      echo "<p>Logged in! Key: ntcf{**************} </p>";
  }
  else {
    echo("<p>Log in failure!</p>");
  }
}
?>


<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>

挑出来关键的代码块:

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 = $_POST[user];
  $pass = md5($_POST[pass]);
  $query = @mysql_fetch_array(mysql_query("select pw from ctf where user='$user'"));
  if (($query[pw]) && (!strcasecmp($pass, $query[pw]))) {
      echo "<p>Logged in! Key: ntcf{**************} </p>";
  }
  else {
    echo("<p>Log in failure!</p>");
  }

进行分析:


image.png

如果我们能使程序执行这段代码就能得到flag

if (($query[pw]) && (!strcasecmp($pass, $query[pw]))) {
      echo "<p>Logged in! Key: ntcf{**************} </p>";
  }

查询strcasecmp这个函数的意思:

(PHP 4, PHP 5, PHP 7)
strcasecmp ----- 二进制安全比较字符串(不区分大小写)
如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

意思很明显了:

我们需要使输入的pass经过md5加密以后的值和执行sql语句查询后的pass值相等

这道题目前面就提醒我们主要考察union查询!!

所以构造payload:


image.png

解析:
1.执行union查询后面语句的条件是前面一部分语句是false,所以这里前面的username写成xxxx,肯定不存在的,返回false
2.'union select md5(233),返回一个经过md5加密后的233
3.#是为了注释sql语句中的那个单引号
4.这里的pass要写跟前面的一样的值233

相关文章

  • 小迪16期-20170226

    第二天:Sql注入集锦篇 1.Sql注入之access注入 2.Sql注入之mysql注入 3.Sql注入之mss...

  • sql注入那些事儿——如何优雅地进行SQL注入(3)

    传送门: sql注入那些事儿——如何优雅地进行SQL注入(1)sql注入那些事儿——如何优雅地进行SQL注入(2)...

  • sql注入那些事儿——如何优雅地进行SQL注入(4)

    传送门: sql注入那些事儿——如何优雅地进行SQL注入(1)sql注入那些事儿——如何优雅地进行SQL注入(2)...

  • sql注入之盲注

    传送门: sql注入那些事儿——如何优雅地进行SQL注入(1) sql注入那些事儿——如何优雅地进行SQL注入(2...

  • sql注入之outfile

    传送门: sql注入那些事儿——如何优雅地进行SQL注入(1) sql注入那些事儿——如何优雅地进行SQL注入(2...

  • 2020-07-29

    安全渗透测试-sql注入 总目标: 1、sql注入介绍 2、web安全渗透测试分类 3、sql注入原理 4、sql...

  • web安全编程(php)

    一.sql注入 漏洞原理:1.使用用户的参数拼接sql语句2.参数改变了原有sql语句的结构注入方式: 回显注入 ...

  • web常见漏洞的成因和修复

    1.SQL注入 漏洞描述:SQL 注入攻击( SQL Injection ),简称注入攻击、SQL 注入,主要用于...

  • 第2课:什么是SQL注入

    第2课:什么是SQL注入 SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是...

  • 笔记:web漏洞

    SQL注入 SQL注入攻击(SQL Injection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,...

网友评论

      本文标题:SQL注入2

      本文链接:https://www.haomeiwen.com/subject/cjjprqtx.html