首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入时的SQL注入

问插入时的SQL注入
EN

Stack Overflow用户
提问于 2011-07-22 09:54:04
回答 2查看 6.2K关注 0票数 3

这里描述的INSERT上的SQL注入似乎不适用于MySQL。SQL injection on INSERT

当我使用以下语句时:

INSERT INTO COMMENTS VALUES('122','$_GET[value1]');

将其作为'value1‘变量值:

'); DELETE FROM users; --

返回此错误:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE FROM users; --')' at line 1

怎么了?

PS:有人建议我用这个变量值做一个SQL注入:

',(SELECT group_concat(table_name) FROM information_schema.tables INTO OUTFILE '/var/www/tables.txt'))-- -

但它也不起作用,并返回一个语法错误。

EN

回答 2

Stack Overflow用户

发布于 2011-07-22 11:26:07

您的注入将单个SQL语句(INSERT ...)转换为多个SQL语句(INSERT ...; DELETE ...)。

但是,PHP mysql API在单个查询中使用does not support multiple statements。(底层的MySQL C应用程序接口必须是explicitly instructed to support this functionality,而您的绑定不是这样做的。)

票数 3
EN

Stack Overflow用户

发布于 2011-07-22 21:29:10

正如@pilcrow指出的那样,mysql_query将只接受一条语句。您的示例实际上是两个语句:

代码语言:javascript
复制
INSERT INTO COMMENTS VALUES('122','value');

和:

代码语言:javascript
复制
DELETE FROM users;

PHP会立即拒绝它,所以您不能用它来测试mysql注入。

该语句的另一个问题是注释字符的使用。MySQL Comment Syntax声明:

从“--”序列到行尾的

。在MySQL中,“--”(双破折号)注释样式要求第二个破折号后跟至少一个空格或控制字符(如空格、制表符、换行符等)。此语法与1.8.5.5小节“‘--’作为注释开头”中讨论的标准SQL注释语法略有不同。

所以你必须在--后面有空格。如果您使用#,则不需要后面的空格。

开始SQL注入测试的一种更简单、更安全的方法是尝试一个简单的SELECT:

代码语言:javascript
复制
$value = "1' OR 1; -- ";
$sql = "SELECT * FROM mytable WHERE id = '$value'";

print "$sql\n";
// SELECT * FROM mytable WHERE id = '1' OR 1; #'

$result = mysql_query($sql,$con);

// Should return multiple rows (if your table has multiple rows):
while ($row = mysql_fetch_assoc($result)) {
    print "{$row['id']}\n";
}

由于PHP拒绝多个语句,因此一些更常用的mysql注入示例将不起作用,这是一件好事。但是,正如您从上面的简单示例中所看到的,它不会阻止SQL注入上的其他表单。

想一想像这样的语句会受到怎样的影响:

代码语言:javascript
复制
DELETE FROM mytable WHERE id = '1'

还要记住,删除数据可能对任何人都没有多大用处,除了恶意黑客,他们只是想造成破坏。另一方面,获取您不应该访问的机密数据可能非常有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6784902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档