我看到一些黑客工具可以自动发现带有SQL注入漏洞的网页。
它怎麽工作?
发布于 2011-02-08 15:18:00
通常,人们可以对SQL代码结构做出有根据的猜测,以允许注入。
例如,对于易受攻击的用户名/密码验证码,它在大多数情况下将类似于:
select count(*) from users where username=@username and password=@password;所以黑客会尝试注入一些东西,比如:
@username=" 'blabla' or 1=1 "
@password=" 'blabla' or 1=1 "因此,结果是count(*)将大于0,因此接受登录。
发布于 2011-02-08 15:25:14
一种简单的测试方法是在输入字段中放入一个单引号,看看是否会返回mysql错误消息。
如果你得到类似于“你的SQL语法中有一个错误;检查与你的MySQL服务器版本相对应的手册,找到正确的语法使用在‘在第一行。”
或者,如果你得到一个php/mysql错误(这可能可以通过它的格式或常见的错误消息以编程方式识别),那么你也知道你有一个注入漏洞。
如果你只是得到一个通用的“没有这样的用户名”或者一个有效的空结果集,那么你很可能没有注入漏洞。
发布于 2011-02-08 15:29:42
许多这样的工具都有一些参数列表,这些参数可以用来破坏网页。它们在多个requestsm中触发这些参数,并将参数插入:
他们的工具通常会爬行网站,以确保他们尽可能多地访问网站。
其中一个棘手的问题是确定你何时找到了一个可利用的网页。在某些情况下,web服务器可能需要更长的时间才能返回页面,或者页面的某些部分可能略有不同。需要检查的事项:
SQL
所用的时间
话虽如此,如果您确实可以访问站点的源代码,则可以使用静态分析技术来查找漏洞。
https://stackoverflow.com/questions/4930474
复制相似问题