我需要在Mysql和php中查询

时间:2017-03-26 23:51:12

标签: php mysql sql

我需要帮助查询Sql Injection测试(请):

我的代码:

 <?php
$conexion = @mysql_connect("localhost", "root","");
mysql_select_db("sqli");

if ( isset($_GET['id']) ) {

    $user_id    = $_GET['id'];
    $query      = "SELECT * FROM users WHERE id = $user_id LIMIT 1";
    $result     = mysql_query($query) or die('No!');
    //$result     = mysql_query($query) or die(mysql_error()); 
    $row        = mysql_fetch_array($result);

    if ( $row['rol'] == 'admininstrator' ) {
        next_lvl();
    }

}

if ( isset($_GET['name']) ) {
    $name= strip_tags($_GET['name']);
    echo "<h1>Hello $name</h1>";
}

            ?>
    <body>
</body>
</html>

这是我的sql注入代码,但是,我需要访问函数&#34; next_lvl()&#34;。

我试试这个:http://localhost/sqli/sql.php?uid=4+or+1=1并打印下一个错误: 注意:未定义的索引:第24行的E:\ Programs \ wamp \ www \ Sqli \ sql.php中的rol

感谢。

1 个答案:

答案 0 :(得分:1)

您的4 or 1 = 1是有效查询,但它并不确保roladmininstrator。你需要PHP来执行你想要的功能。如果您使用:

id && rol = 'admininstrator'

(但网址已编码)您可以确定roladmininstrator

要阻止此操作,您应升级到mysqlipdo并使用参数化查询。如果您必须维护mysql_驱动程序,则可以将ID转换为int

$user_id = (int)$_GET['id'];