SQL注入产生的原因是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以提交一段精心构造的数据库查询代码,根据返回的结果,获得某些他想得知的数据,这就是所谓的SQL注入。 假设这么一个情景,一个网页的后台入口处需要验证用户名和密码,验证程序的SQL语句是这样写:
Select* from admin where user=‘TxtBox1.txt’ and pass=‘TxtBox2.txt’
如果用户填写的用户名和密码都是: ‘abc’ or ‘1’=‘1’,那么将导致SQL语句是: Select* from admin where user=‘abc’ or ‘1’=‘1’ and pass= ‘abc’ or ‘1’=‘1’ 这条语句是永真式,那么攻击者就成功登陆了后台。这就是最简单的SQL注入方式。
在实际操作过程中,SQL注入的过程可以分为以下几个步骤。 (1).寻找可能存在SQL注入漏洞的链接 (2).测试该网站是否有SQL注入漏洞 (3).猜管理员帐号表 (4).猜测管理员表中的字段 (5).猜测用户名和密码的长度 (6).猜测用户名 (7).猜测密码 后续可以针对以上几个步骤进行详细的分析。 |