我需要一个Mysql和php的查询

我需要一个Mysql和php的查询,php,mysql,sql,Php,Mysql,Sql,我需要有关Sql注入测试查询的帮助(请): 我的代码: <?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"; $

我需要有关Sql注入测试查询的帮助(请):

我的代码:

 <?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注入代码,但是,我需要访问函数“next_lvl()”

我尝试以下操作:并打印下一个错误: 注意:第24行的E:\Programs\wamp\www\Sqli\sql.php中的未定义索引:rol


谢谢。

您的
4或1=1
是一个有效的查询,但是它不能确保
rol
管理员。PHP需要它来执行所需的函数。如果您使用:

id && rol = 'admininstrator'
(但URL编码)您可以确定
rol
管理员

要阻止这种情况发生,您应该升级到
mysqli
pdo
,并使用参数化查询。如果您必须维护
mysql\uu
驱动程序,您可以将ID转换为
int

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

您的表是否有一个名为rol的列?错误是没有
$row['rol']
var_dump($row)
将帮助您确定结果是否符合预期。我不必修改代码,就像我必须进行测试一样。另一方面,如果有一个名为role的字段。使用sql注入,访问该函数是一种“级别”样式。我工作得很好,现在,如果我在users表中没有该列,我将如何进行注入@克里斯85