Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有可能在易受攻击的Web应用程序上执行SQL注入(高级)吗?_Php_Mysql - Fatal编程技术网

Php 有可能在易受攻击的Web应用程序上执行SQL注入(高级)吗?

Php 有可能在易受攻击的Web应用程序上执行SQL注入(高级)吗?,php,mysql,Php,Mysql,我搜索了整个谷歌,想知道如何绕过以下内容(来自DVWA的高安全级别): 我想使用PDO,因为它可能更安全。请告诉我你对此的想法 事先非常感谢。添加的是数值的不会使这很可能成为全面的sql攻击,但是数值的只是不太准确: $getid = "SELECT first_name, last_name FROM users WHERE user_id = $id" 使用过滤器可能更好: $getid = "SELECT first_name, last_name FROM users WHERE us

我搜索了整个谷歌,想知道如何绕过以下内容(来自DVWA的高安全级别):

我想使用PDO,因为它可能更安全。请告诉我你对此的想法


事先非常感谢。

添加的
是数值的
不会使这很可能成为全面的sql攻击,但
是数值的
只是不太准确:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = $id"
使用过滤器可能更好:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"

我和你有同样的问题。我也不知道如何破解它

但我想我有一个中等水平的答案,我认为这是程序员的错误

请注意,在低级别和高级别中,您的报价都是$id,而不是中级别…我认为这就是重点。 如果你有这个:

我很确定在中等级别绕过mysql\u real\u转义字符串并不是那么容易的


换句话说,我很确定,如果没有高级别的引号,也可以进行注入。

在中等级别,只需使用:
1和1=1 orderby X


作者的所有查询都是低级的,但是您可以用十六进制代码替换表名
0x…
,例如
其中table\u name=0x12345
。如果我们使用字符串字符,我们将有一个错误,因为不允许使用

嗨,我的问题是关于该死的易受攻击的Web应用程序,但如果需要,我只是添加了整个代码。谢谢你在说什么水平?它是DVWA特有的吗?是的,它是DVWA特有的。在SQL注入上有不同的安全级别(低、中、高)。低级别没有任何针对SQL注入的保护。中级只有mysql\u real\u escape\u string
,高级在我的帖子中。我也会把媒体的代码放进去,我更喜欢像
$id=(int)$\u GET['id']那样进行转换
@RomanNewaza imo最好避免进行很可能不会产生任何结果的查询。
is_numeric('0xdeadbeef') // true
is_numeric('10e3') // true
if (false !== ($id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT))) {
}
$getid = "SELECT first_name, last_name FROM users WHERE user_id = $id"
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"