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