“手动”SQL注入 - 它是如何工作的?

时间:2013-08-16 20:36:04

标签: sql sql-injection

我已经看到只需在浏览器的地址栏中键入某些sql行就可以进入网站的sql数据库。这怎么可能?不应该地址栏只重定向我们到网站?该地址栏如何接受sql语法?我完全是浏览器的外行,但令我着迷的是,地址栏提供了漏洞。

3 个答案:

答案 0 :(得分:4)

  

这怎么可能?

应用程序正在执行从URL读取的任意SQL。想想http://example.com/search.php?query=SELECT%20...

  

不应该地址栏只会将我们重定向到网站吗?

这正是它正在做的事情。该漏洞存在于网站对该URL的处理中。

  

该地址栏如何接受sql语法?

SQL查询只是URL的一部分。地址栏不知道(或关心)您的URL包含SQL。

答案 1 :(得分:1)

你是否会将这个问题的答案用于善或恶?

在任何情况下,假设您有一个

形式的网址

http://mysite.com/dosomething?email= $ EMAIL

你有一些代码可以执行如下所示的查询:

SELECT fieldlist
FROM table
WHERE field = '$EMAIL';

然后this page解释了某人如何操纵EMAIL的内容来执行基本上任意的查询:

答案 2 :(得分:1)

SQL注入是一种代码注入技术,用于攻击数据驱动的应用程序,其中将恶意SQL语句插入到输入字段中以便执行(例如,将数据库内容转储给攻击者)。

例如,假设您有一个textField接收一个值然后将该值赋给变量username,那么您有一个statement接收该值,并将该值连接到一个表示您的查询的字符串,如下所示:

statement = "SELECT * FROM users WHERE name = '" + userName + "';"

让我们说你传递它的值是这样的' or '1'='1这个例子可以用来强制选择有效的用户名,因为'1'='1'的评估总是正确的。这只是一个例子!检查this网站以了解详情