zoukankan      html  css  js  c++  java
  • sql注入测试代码

    先上测试代码:

    <?php
    error_reporting(0);
    $show_name=$_GET['name'];
    var_dump($show_name);
    if(!get_magic_quotes_gpc()){
        $show_name = addslashes($show_name);
    }
    if(!empty($show_name)){
        $db = mysql_connect("127.0.0.1:3306","root","password");
        if(!$db){
            die('Could not connect: ' . mysql_error());
        }
        mysql_select_db("pdlc");
        mysql_query("set names utf8;");
        $sql = "select * from user where show_name='$show_name'";
        // echo $sql."<br />";
        $r = mysql_query($sql);
        $r = mysql_num_rows($r);
        var_dump($r);   
    }else{
    ?> 
    <html>
    <head></head>
    <body>
    <form method="get">
        <input type="text" name="name" />
        <input type="submit" value="submit" />
    </form>
    </body>
    </html>
    <?php
    }
    ?>

    如果系统魔法引号处于关闭状态,服务端接收到的参数不用addslashes转意的话会很容易产生sql注入,比如输入:

    苏俊杰' or 1='1

    则服务端sql会是:

    select * from user where show_name='苏俊杰' and 1='1';

    输出结果会为:

    string(18) "苏俊杰' or 1='1" int(926) 

    可以看到这里查出了系统所有用户(总共926个用户)。

    另外PDO和mysqli使用变量绑定的时候会自动对变量进行转意,同样会防止此类sql注入的问题发生。

  • 相关阅读:
    实验二
    实验一
    网络对抗技术 实验四 恶意代码技术
    网络对抗技术 实验三 密码破解技术
    网络对抗技术 实验二 网络嗅探与欺骗
    网络对抗技术 实验一 网络侦查与网络扫描
    实验6
    实验5
    caogao
    实验四
  • 原文地址:https://www.cnblogs.com/sooj/p/3134426.html
Copyright © 2011-2022 走看看