找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 899|回复: 2

从 'or'='or' 漏洞安全检测到修复手法

[复制链接]

0

主题

10

回帖

14

牛毛

初生牛犊

积分
14
发表于 2008-7-15 08:21:54 | 显示全部楼层 来自 山东省济南市
支持一下顺便学习一下

0

主题

46

回帖

60

牛毛

初生牛犊

积分
60
发表于 2008-11-10 09:04:54 | 显示全部楼层 来自 河北省沧州市任丘市
支持一下顺便学习一下

22

主题

83

回帖

196

牛毛

一级牛人

积分
196
 楼主| 发表于 2008-7-13 23:39:37 | 显示全部楼层 |阅读模式 来自 河南省驻马店市
从 'or'='or' 漏洞安全检测到修复手法
实施修复,方法有很多在这里介绍两种,咱们使用第2种
方法1: Replace过滤字符
解决方法:查找login.asp下的<from找到下边的类似


username=request.Form(\"name\")
pass=request.Form(\"pass\")


修改为:
username=Replace(request.Form(\"name\"), \"’\", \"’’\")
pass=Replace(request.Form(\"pass\"), \"’\", \"’’\")


语法是屏蔽’和’’字符来达到效果.

方法2:在conn.asp 内加入<!--#include file=\"safe.asp\"-->
注:(前提 登陆页面有<!--#include file=\"conn.asp\"-->)

把以下代码保存为safe.asp

下面是程序代码********************************************************
<%
Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name
Err_Message = 3
Err_Web = \"safe.htm\"
’出错时转向的页面

Query_Badword=\"’|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|=\"
’在这部份定义get非法参数,使用\"|\"号间隔

Form_Badword=\"’|(|)|;|=\"
’在这部份定义post非法参数,使用\"|\"号间隔

On Error Resume Next


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 \"<Script Language=JavaScript>alert(’传参错误!参数 \"&name&\" 的值中包含非法字符串!\\n\\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!’);window.close();</Script>\"
Case \"2\"
Response.Write \"<Script Language=JavaScript>location.href=’\"&Err_Web&\"’</Script>\"
Case \"3\"
Response.Write \"<Script Language=JavaScript>alert(’传参错误!参数 \"&name&\"的值中包含非法字符串!\\n\\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!’);location.href=’\"&Err_Web&\"’;</Script>\"
End Select
Response.End
End If
NEXT
NEXT
End if
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 \"<Script Language=JavaScript>alert(’出错了!表单 \"&name&\" 的值中包含非法字符串!\\n\\n你的非法操作已记录,请马上停止非法行为!’);window.close();</Script>\"
Case \"2\"
Response.Write \"<Script Language=JavaScript>location.href=’\"&Err_Web&\"’</Script>\"
Case \"3\"
Response.Write \"<Script Language=JavaScript>alert(’唐山味儿不浓 告诉您出错了!参数 \"&name&\"的值中包含非法字符串!\\n\\谢谢您光临!,请停止非法行为!’);location.href=’\"&Err_Web&\"’;</Script>\"
End Select
Response.End
End If
NEXT
NEXT
end if
%>
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-16 21:17 , Processed in 0.143125 second(s), 35 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表