咨询电话:13667221916 24小时服务热线:13667221916
NEWS CENTER ·
公司动态
关注我们 关注前沿
当前位置:首页 >>常见问题

Cookies SQL注入漏洞检查及修复方案

发表日期:2018-12-19 16:01:00    文章编辑:admin    

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击,当然现在的网站已经很少有sql注入(get,post,cookie)了,但是有些网站还是存在这样的问题,比如说经常用别人模板的人,有些模板下面的文件目录下包含了当前网站的一些信息,你不及时发现就会给攻击者可乘之机,PHP网站的建设者一定要注意模板使用方面的问题。

判断是否存在Cookies SQL注入漏洞,使用IE内核浏览器,地址栏输入

javascript:alert(document.cookie="id="+escape("222"));

这句代码要手写输入,直接粘贴的话浏览器会去掉前面的JavaScript。

执行以后会弹出对话框,id=222,此时便创建了一个cookies,名称id,值为222,访问带id的网址,例如之前为news.asp?id=222,现在只需要访问news.asp,假如依然可以看到之前的内容,表示存在该漏洞。

而修复方案,也很简单,直接过滤判断即可,下面直接奉上代码,解决get、post还有cookies三个的解决方案。

<% 

Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name

'------定义部份  头----------------------------------------------------------------------

Err_Message = 1        '处理方式:1=提示信息,2=转向页面,3=先提示再转向

Err_Web = "Err.Asp"    '出错时转向的页面

Query_Badword="'∥and∥select∥update∥chr∥delete∥%20from∥;∥insert∥mid∥master.∥set∥chr(37)∥="     

'在这部份定义get非法参数,使用"∥"号间隔     

Form_Badword="'∥%∥&∥*∥#∥(∥)∥="     '在这部份定义post非法参数,使用"∥"号间隔

'------定义部份  尾-----------------------------------------------------------------------
'
On Error Resume Next

'----- 对 get query 值 的过滤.

if request.QueryString<>"" then
Chk_badword=split(Query_Badword,"∥")
FOR EACH Query_Name IN Request.QueryString
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i))<>0 Then
Select Case Err_Message
  Case "1"
Response.Write "alert('传参错误!参数 "&name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();"
  Case "2"
Response.Write "location.href='"&Err_Web&"'"
  Case "3"
Response.Write "alert('传参错误!参数 "&name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';"
End Select
Response.End
End If
NEXT
NEXT
End if

'----- 对 cookies 值 的过滤.

if request.Cookies<>"" then
Chk_badword=split(Query_Badword,"∥")
FOR EACH Query_Name IN Request.Cookies
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.Cookies(Query_Name)),Chk_badword(i))<>0 Then
Select Case Err_Message
  Case "1"
Response.Write "alert('传参错误!Cookies "&name&" 的值中包含非法字符串!\n\n请不要在Cookies中出现:and update delete ; insert mid master 等非法字符!');window.close();"
  Case "2"
Response.Write "location.href='"&Err_Web&"'"
  Case "3"
Response.Write "alert('传参错误!Cookies "&name&"的值中包含非法字符串!\n\n请不要在Cookies中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';"
End Select
Response.End
End If
NEXT
NEXT
End if

'-----对 post 表 单值的过滤.

if request.form<>"" then
Chk_badword=split(Form_Badword,"∥")
FOR EACH name IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(name)),Chk_badword(i))<>0 Then
Select Case Err_Message
  Case "1"
Response.Write "alert('出错了!表单 "&name&" 的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( ) 等非法字符!');window.close();"
  Case "2"
Response.Write "location.href='"&Err_Web&"'"
  Case "3"
Response.Write "alert('出错了!参数 "&name&"的值中包含非法字符串!\n\n请不要在表单中出现: % & * # ( )  等非法字符!');location.href='"&Err_Web&"';"
End Select
Response.End
End If
NEXT
NEXT
end if
%>



contact us

13667221916

  • 电话:13667221916
  • 邮箱:1613310013@qq.com
  • 网址:http://www.chixiao123.com
  • 地址:湖北省武汉市江夏区阳光大道东方雨林8栋403

友情链接: 众考教育 | 赤霄网络 |

武汉赤霄网络科技有限公司  备案号:鄂ICP备14013644号-1鄂公网安备 42011102001670号 电子亮照: