在Insert语句中使用SubQuery Select进行SQL注入

时间:2013-10-27 17:17:18

标签: sql sql-injection sql-insert sql-subselect

我正在学习SQL注入,我遇到了一个如下所示的SQL查询。

SQL查询如下所示:

INSERT INTO documents (name, filename, mimetype, sessid) VALUES ("name", "filename", "mimetype", "sessid");

我想做类似的事情:

INSERT INTO documents (name, filename, mimetype, sessid) VALUES ((SELECT * FROM level8.documents), "filename", "mimetype", "sessid");

甚至

INSERT INTO documents (name, filename, mimetype, sessid) VALUES ((SELECT * FROM level8.documents), "filename", "mimetype", "sessid");

当我运行这个时,我运行时得到error code: 1241.。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的select语句返回的列数超过1列。

尝试

INSERT INTO documents (name, filename, mimetype, sessid) 
VALUES ((SELECT GROUP_CONCAT(names of all your columns) FROM 
level8.documents), "filename", "mimetype", "sessid");

在此处阅读有关子查询错误的更多信息。

http://dev.mysql.com/doc/refman/5.6/en/subquery-errors.html