快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱乐博娱188下载:SQL注入攻击的原理及其防范措施



ASP编程门槛很低,新手很轻易上路。在一段不长的光阴里,新手每每就已经能够编出看来对照完美的动态网站,在功能上,熟手在行能做到的,新手也能够做到。那么新手与熟手在行就没差别了吗?这里面差别可就大年夜了,只不过外行人很难一眼就看出来罢了。在界面的友好性、运行机能以及网站的安然性方面是新手与熟手在行之间区其余三个集中点。而在安然性方面,新手最轻易轻忽的问题便是SQL注入破绽的问题。用NBSI 2.和记娱乐博娱188下载0对网上的一些ASP网站稍加扫描,就能发明许多ASP网站存在SQL注入破绽,教导网里高校内部机构的一些网站这种破绽就更普遍了,可能这是由于这些网站大年夜都是一些门生做的缘故吧,虽然个个都很智慧,可是终究没有履历,而且处于进修中,难免破绽多多了。本文主要讲讲SQL注入的警备步伐,而要明白这些警备步伐的用场,须先具体解说使用SQL注入破绽入侵的历程。新手们看明白啦。

相昔时夜一部分法度榜样员在编写代码的时刻,没有对用户输入数据的合法性进行判断,使利用法度榜样存在安然隐患。如这是一个正常的网址http://localhost/lawjia/show.asp?ID=444,将这个网址提交到办事器后,办事器将进行类似Select * from 表名 where 字段="&ID的查询(ID即客户端提交的参数,本例是即444),再将查询结果返回给客户端,假如这里客户端有意提交这么一个网址:

http://localhost/lawjia/sh和记娱乐博娱188下载ow.asp?ID=444 and user>0,这时,办事器运行Select * from 表名 where 字段=444 and user>0这样的查询,当然,这个语句是运行不下去的,肯定掉足,差错信息如下:

差错类型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][ODBC SQL Server Driver][SQL Server]将 nvarchar 值 'sonybb' 转换为数据类型为 int 的列时发生语法差错。

/lawjia/show.asp, 第 47 行

然则醉翁之意的人从这个掉足信息中,可以得到以下信息:该站应用MS_SQL数据库,用ODBC连接,连接帐号名为:sonybb。所谓SQL注入(SQL Injection),便是使用法度榜样员对用户输入数据的合法性检测不严或不检测的特征,有意从客户端提交特殊的代码,从而网络法度榜样及办事器的信息,从而获取想获得的资料。平日醉翁之意者的目标是获取网站治理员的帐号和密码。比如当某小我知道网站治理员帐号存在表login中,治理员帐号名为admin,他想知道治理员密码,这里他从客户端接着提交这样一个网址:

http://localhost/lawjia/show.asp?ID=444 and (Select password from login where user_name='admin')>0,返回的掉足信息如下:

差错类型:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)

[Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '!@#*&admin' 转换为数据类型为 int 的列时发生语法差错。

/lawjia/show.asp, 第 47 行

你知道吗?上面标红的部分便是治理员帐号admin的密码!虽然很繁杂,让人看几遍也记不住的,但它就这样显示在你眼前了,这时您就可以用这个帐号和密码接收人家的网站了!这时你可能还会说,假如他不是事先知道治理员帐号存在表login中,而且知道治理员帐号为admin,那他就弗成能得到治理员密码。你错了,只要人家乐意多花光阴考试测验,他将可以得到数据库连接帐号权限内所能得到的所有信息!详细历程请参看网上的这篇文章:SQL注入破绽全打仗。

当然这个历程是很啰嗦的而且要花费很多的光阴,假如只能以这种手动要领进行SQL注入入侵的话,那么许多存在SQL注入破绽的ASP网站会安然很多了,不是破绽不存在了,而是使用这个破绽入侵的资源太高了。然则假如使用专门的黑客对象来入侵的话,那环境就大年夜大年夜不合了。手动要领进行SQL注入入侵至少必要半天或一天甚至很多天的光阴,而使用专门的对象来入侵就只必要几分钟光阴了(视网速快慢抉择),再使用得到的治理帐号和密码,上传一个从网高低载的ASP后门法度榜样,就随意马虎得到全部网站的治理权限了,以致全部办事器的治理权限。最着名的一种SQL注入入侵对象是NBSI 2.0,现在已经出到2.0版本了,不过,人家正式名称不叫SQL注入入侵对象,而叫做网站安然破绽检测对象。有了这个所谓的检测对象,使得入侵存在SQL注入破绽的ASP网站成了小儿科的游戏,那些既不懂ASP又不懂SQL、年纪小小的男性青年经常得以在一天之内入侵十多个ASP网站,他们以此得到心坎的极大年夜满意。他们彷佛也异常考究职业道德,每每并不破坏网站数据和系统,常见的破坏要领大年夜都仅仅是改换掉落网站的主页,留下"善意的警告",如:你的网站存在SQL注入破绽,请治理员做好警备步伐!并声明"我没有破坏数据和系统",有的还要借机宣布一下他的倡导:"海内网站大年夜家不要入侵,有本事入侵小日本的!",着末,签上他的鼎鼎大年夜名是必弗成少的法度榜样。

如斯大年夜的成绩多半环境下仅需动动鼠标就做到了。打开最新版的NBSI 2.0,如图1所示:输入地址到A区,留意网址必须是带通报参数的那种,点击右边的检测按钮,即出来B区信息,显示当前用户为sonybb的权限为PUBLIC,当前库为lawjia。有点可惜啊,假如是SA权限的话,就可以跨库注入了。不过,这个权限也足够获取该网站治理员帐号和密码了。点C区下的自动猜解按钮,即出来当前库lawjia中的各类表,哇,login表中必然是存治理员帐号和密码的吧?选中它吧,接着点击D区下的自动猜解按钮,急速出来login表里的列名称,公然是寄放用户名和密码的啊,太棒了!从速打上勾,迫不急待的点击E区下的自动猜解按钮。冲感民心的时候就要到来啦,只见唰唰地几下,帐号与密码整个出来了。剩下的事便是辨别哪一个帐号是治理员了。

图1(图中的示例网站在作者本地电脑上运行)

不知那些没留意过SQL注入破绽的ASP法度榜样员们看了上图的例子,要作何感想呢?是不是感觉这个所谓的网站安然破绽检测对象SBSI 2.0的确便是MS_SQL的企业治理器呢?只不过人家不必要帐号和密码就可以查看您数据库里的所有信息了。假如您的网站就这样被人不费吹灰之力入侵了,您是不是要吐几升血了呢?大概您已经为系统安然费尽心思了,装补丁、安防火墙、装杀毒软件、奇妙设置设置设备摆设摆设IIS及数据库用户权限,但您便是没有留意到SQL注入破绽,于是"千里之堤,溃于蚁穴"。防火墙与杀毒软件对SQL注入是没法子警备的,由于SQL注入入侵跟通俗的WEB页面造访没什么差别,以是每每是防不甚防。而且一个办事器上放置的网站每每是有很多个的,办事器治理员弗成能挨个网站挨个页面的检察其是否存在SQL注入破绽。那么应该若何警备SQL注入入侵呢?作为办事器治理员或网站法度榜样员应该分手怎么做呢?办事器治理员要做的同族儿如果设置设置设备摆设摆设IIS和数据库用户权限,而网站法度榜样员主如果要在法度榜样代码编写上警备SQL注入入侵。下面具体论述:

对了办事器治理员,既然你弗成能挨个反省每个网站是否存在SQL注入破绽,那么就来个一个绝招。这个绝招能有效防止SQL注入入侵而且"省心又省力,效果然好!"SQL注入入侵是根据IIS给出的ASP差错提示信息来入侵的,假如你把IIS设置成不管出什么样的ASP差错,只给出一种差错提示信息,即http 500差错,那么人家就没法子入侵了。详细设置请参看图2。主要把500:100这个差错的默认提示页面 C:\WINDOWS\Help\iisHelp\common\500-100.asp改成

C:\WINDOWS\Help\iisHelp\common\500.htm即可,这时,无论ASP运行中出什么错,办事器都只提示HTTP 500差错。

图2、IIS掉足信息设置

然则这样设置一个不好的地方是法度榜样员编写的代码掉足时,办事器不给出具体的差错提示信息,会给法度榜样员带来很大年夜的不便。不过,办事器终究不是测试代码的地方,应坚持平安稳定第一,这样设置也是无可厚非的,事实上许多办事器的掉足信息都是如斯设置。

办事器治理员还应在IIS中为每个网站设置好履行权限,可切切别给人家静态网站以"脚本和可履行"权限。一样平常环境下给个"纯脚本"权限就够了,对付那些经由过程网站后台治理中间上传的文件寄放的目录,就更吝啬一点吧,履行权限设为"无"好了,这样做是为了防止人家上传ASP木马,履行权限设为"无",人家上传ASP木马也运行不了。一样平常环境下,SQL注入破绽仅是涉及一个网站安然的事,假如人家经由过程这个破绽上传了ASP木马并运行起来,那全部办事器都掉陷了。以是有远见的、有责任心的办事器和记娱乐博娱188下载治理员应该十分吝啬的设置设置设备摆设摆设IIS的履行权限。

同样的吝啬立场应适用于数据库用户的权限设置设置设备摆设摆设上,当然这里数据库是指MS_SQL啦,ACCESS都没有用户权限设置设置设备摆设摆设这一步骤。假如PUBLIC权限足够应用的毫不给再高的权限,可切切别把SA级其余权限随随便便地给人家啊。那个所谓的网站安然破绽检测对象NBSI 2.0可有跨库进行SQL注入的功能啊,假如你把SA权限给了存在SQL注入破绽的库,那其它库就不保啦!城门火灾,殃及池鱼呀。而人家还可以经由过程调用xp_cmdshell敕令获得系统的最高权限。详细步骤照样请参看上面提到的那篇《SQL注入破绽全打仗》这篇文章吧。

接下来要讲讲法度榜样员的警备步伐了。法度榜样主要要做两件事,最紧张的一件事,当然是对客户端提交的变量参数进行仔细地检测啦。对客户端提交的变量进行反省以防止SQL注入,有各类措施,到http://community.和记娱乐博娱188下载csdn.net/上搜索一下,你能得到许多有益信息。这里先容一种现成的措施,别人已经写好了检测代码,拿来用一下,不用自己费力啦。那便是"枫叶SQL通用防注入V1.0 ASP版",这是一段对用户经由过程网址提交过来的变量参数进行反省的代码,发明客户端提交的参数中有"exec、insert、select、delete、from、update、count、user、xp_cmdshell、add、net、Asc"等用于SQL注入的常用字符时,急速竣事履行ASP并给出警告信息或转向掉足页面。大年夜家可以到网上搜索一下,下载这段代码,存为一个ASP页面,如checkSQL.asp,把这个页面include到每个必要带参数查询SQL数据库ASP页面中,记着,只要加一行这样的代码就行了。

法度榜样员要做的第二件事是给用户密码加密啦。比如用MD5加密。MD5是没有反向算法,不能解密的。人家纵然知道经加密后存在数据库里的像乱码一样的密码,他也没法子知道原始密码了。不过,人家可以用UPDATE措施用他的密码代替你的密码,但这个操作照样有点麻烦,人家可能会怕麻烦而放弃。而那个所谓的网站安然破绽检测对象NBSI 2.0是没有供给UPDATE操作功能的,以是用MD5加密后,人家仅用NBSI 2.0而不辅以手动操作的话,就弗成能得到网站治理员帐号的密码,这将盖住许多菜鸟级的进击者,至少那些和记娱乐博娱188下载既不懂ASP又不懂SQL、年纪小小的男性青年是没有法子啦!

文章写到这,已经够长了,原先还想对那些所谓的网站安然破绽检测对象如NBSI之流的黑客对象进行一番理性的探究的,看来照样放弃好了。为了增强网站安然,懂得进击手段是必须的,然则,使用漏敞开拓专门的黑客对象,使那些着实并不具备需要的收集技巧和收集安然常识的人(便是文中提到的"既不懂ASP又不懂SQL、年纪小小的男性青年")易如反掌地侵入一家网站,这除了为许多收集治理员制造麻烦外,是否还具有加强收集安然意识前进收集安然水平的功效呢?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: