二郎显圣真君 發表於 2012-9-28 09:58:15

网站被sql注入的修复方法

近日,网站频频被黑。在网站里莫名其妙的多出一篇文 章,还有多出一组贴图。正在纳闷是谁可以登陆我的后台发表文章和图片的时候,我的qq弹出消息,一个陌生人给我发消息,说我的网站有漏洞,还说是他弄了我 的网站。不过还好,他给我详细说了黑我网站的方法,还提醒我好好修补修补,不然会被别人黑的。从他那得知,他用的是&ldquo;啊D注入工具&rdquo;,先找我的网站是否存 在可注入点,如果有,进行注入,能够破解得到后台密码。<br />当晚我把那个&ldquo;啊D注入工具&rdquo;下载下来研究,知道了他注入的原理,对网页进行了一些修改,但是用工具一查,还是存在注入点。小虾无能,只好上网搜索,找到了如下的方法,按如下修改后,再用&ldquo;啊D注入工具&rdquo;检测,果然不存在注入点了。<br /><strong>下面是修补方法:<br /></strong>用工具检测到网站存在SQL注入点,那么如何进行修补呢?<br />1.新建一个asp文件,写入以下代码,保存文件名为checkSQL.asp。 <br />&lt;%<br />Dim Fy_Url,Fy_a,Fy_x,Fy_Cs(),Fy_Cl,Fy_Ts,Fy_Zx<br />''''---定义部份 头------<br />Fy_Cl = 3 ''''处理方式:1=提示信息,2=转向页面,3=先提示再转向<br />Fy_Zx = &quot;输入你的网页地址&quot; ''''出错时转向的页面<br />''''---定义部份 尾------<br />On Error Resume Next<br />Fy_Url=Request.ServerVariables(&quot;QUERY_STRING&quot;)<br />Fy_a=split(Fy_Url,&quot;&amp;&quot;)<br />redim Fy_Cs(ubound(Fy_a))<br />On Error Resume Next<br />for Fy_x=0 to ubound(Fy_a)<br />Fy_Cs(Fy_x) = left(Fy_a(Fy_x),instr(Fy_a(Fy_x),&quot;=&quot;)-1)<br />Next<br />For Fy_x=0 to ubound(Fy_Cs)<br />If Fy_Cs(Fy_x)&lt;&gt;&quot;&quot; Then<br />If Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;''''&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;and&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;select&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;update&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;chr&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;delete%20from&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;;&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;insert&quot;)&lt;&gt;0 or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;mid&quot;)&lt;&gt;0 Or Instr(LCase(Request(Fy_Cs(Fy_x))),&quot;master.&quot;)&lt;&gt;0 Then<br />Select Case Fy_Cl<br />Case &quot;1&quot;<br />Response.Write &quot;&quot;<br />Case &quot;2&quot;<br />Response.Write &quot;&quot;<br />Case &quot;3&quot;<br />Response.Write &quot;&quot;<br />End Select<br />Response.End<br />End If<br />End If<br />Next<br />%&gt;<br />然后把此文件放到网站目录上去,然后在被发现有注入点的文件里,找到以下代码,<br /><strong>注意</strong>,&ldquo;***.***&rdquo;为连接的文件,找到相关类似的代码即可,然后在后面添加一句<br />要注意checkSQL.asp所放在的路径,对应修改。完成后再用工具后在扫一次,确定不在被发现SQL注入点后,问题解决。<br /><strong>知识补充</strong>:所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击
頁: [1]
查看完整版本: 网站被sql注入的修复方法