ASP漏洞!

webhot 2004-12-21 07:39:26
输入用户名:'or'='or'
密码:'or'='or'
结果进入了!
如何解决这个漏洞BUG!

在线等候!
...全文
97 点赞 收藏 8
写回复
8 条回复
天啊啊啊啊 2004年12月21日
function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
str = Replace(str, Chr(0), "")
checkStr=replace(str,"'","''")
end function

到网上查SQL注入,你会了解更多内容
你可以到NB联盟去看看,那有专门的板块~
回复 点赞
colin310 2004年12月21日
来晚了,基本已经解决了!
回复 点赞
hackate 2004年12月21日
哈哈,把单引号过滤就行了
replace(trim(request.form("username")),"'","")

这样就好了呢!
回复 点赞
若白师妹 2004年12月21日
超老的漏洞了,replace最简单,安全
或者sql="select * from table where id='"&id&"'"
if not rs.eof then
if rs("pwd")=request("password") then 这样也可以
回复 点赞
AppleBBS 2004年12月21日
把Sql关键字单引号'过滤掉即可
Replace(Str,"'","")
回复 点赞
xiaoyuehen 2004年12月21日
http://community.csdn.net/Expert/TopicView.asp?id=3589480

Rem ## 长整数转换
Function toNum(s, default)
If IsNumeric(s) and s <> "" then
toNum = CLng(s)
Else
toNum = default
End If
End Function

Rem ## SQL 语句转换
Function toSql(str)
If IsNull(str) Then str = ""
toSql = replace(str, "'", "''")
End Function

示例:
Dim sql
Dim strWhere, strName, intAge
strName = toSql(request("user"))
intAge = toNum(request("age"), 20)
sql = "SELECT * FROM [USER]" & _
"WHERE [AGE] > " & strName & _
" AND [USERNAME] = '" & intAge & "'"

一般情况下, 通过上面两个函数的过虑, 可以杜绝网上的SQL注入攻击!如果你觉得有需要, 可以加上对chr(0)的替换, 将toSql函数改为如下:
Function toSql(str)
If IsNull(str) Then str = ""
str = replace(str, chr(0), "")
toSql = replace(str, "'", "''")
End Function

另注:

***********************************************************************
检测外部提交的函数
Function CheckUrlRefer()
Dim strLocalUrl, intUrlLen, strUrlRefer
strLocalUrl = "http://127.0.0.1"
intUrlLen = Len(strLocalUrl)
strUrlRefer = LCase(request.ServerVariables("HTTP_REFERER") & "")
'检测前一个页面是否来自 strLocalUrl
If Left(strUrlRefer, intUrlLen) = strLocalUrl Then
CheckUrlRefer = True
Else
CheckUrlRefer = False
End If
End Function
***********************************************************************
回复 点赞
hhjjhjhj 2004年12月21日
把“'”replace掉就行了。
回复 点赞
lienzhu 2004年12月21日
function checkStr(str)
if isnull(str) then
checkStr = ""
exit function
end if
str = Replace(str, Chr(0), "")
checkStr=replace(str,"'","''")
end function

用上面函数转意一下
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告