小编Sim*_*Bot的帖子

如果页面上只显示一个结果,是否无法进行SQL注入?

我在大学里为我的安全模块做了一个SQL注入项目,我正在努力学习它是如何工作的.

我可以看到当脚本不过滤输入时它是如何工作的,然后循环遍历DB结果集,在屏幕上显示数据.但据我所知,以下代码容易受SQL注入,因为它只期望在屏幕上显示一组值:

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("testdb");

$result = mysql_query("SELECT id, name, description FROM test_table WHERE id = ".$_GET['id']);

list($id, $name, $description) = mysql_fetch_row($result);

echo "ID: $id \n";
echo "Name: $name \n";
echo "Description: $description \n";

?>
Run Code Online (Sandbox Code Playgroud)

如果我将id的值设置为:

1 OR 1 = 1 UNION SELECT id, username, password FROM users LIMIT 1, 1 -- 
Run Code Online (Sandbox Code Playgroud)

除非我运行两次mysql_fetch_row($ result)语句,否则不会显示查询的UNION部分中的值,如下所示:

<?php
$result = mysql_query("SELECT id, name, description FROM test_table WHERE id = ".$_GET['id']);

list($id, $name, $description) = mysql_fetch_row($result);

echo "ID: …
Run Code Online (Sandbox Code Playgroud)

php mysql security sql-injection

0
推荐指数
1
解决办法
1985
查看次数

标签 统计

mysql ×1

php ×1

security ×1

sql-injection ×1