asp or 漏洞
漏洞描述:
在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="select * from admin where username="&user&" and password="&pwd&"" 这句来对用户名和密码加以验证。
以常理来考虑的话,这是个很完整的程序了。而在实际的使用过程中,整套程序也的确可能正常使用。
但是如果Userid的值和password的值被赋于:safer’ or’1’=’1’ 这时,sql="select * from admin where username="&user&" and password="&pwd&"" 就成了:
sql="select * from reg where user=safer’ or’1’=’1’ and pass=safer’ or’1’=’1’
怎么样?!我不说大家也明白了吧!
既然有这样的问题,接下来我们就来看看如何解决它。从上面的程序中各位也可以看出,只要对用户输入的数据进行严格过滤就可以了。具体可以参下面的程序:
Quote
〈%
user=request.from("UserID")
pass=request.from("password")
for i=1 to len(UserID)
cl=mid(UserID,i,1)
if cl="" or us="%" or us="〈" or us="〉" then
response.redirect "54safer ..haha"
response.end
end if
next
%〉
同样是先取得用户输入数据,然后分析用户输入的每一个字符,如发现异常,则转到错误页面。
if cl="" or us="%" or us="〈" or us="〉" then 这一句中可以加入任意的过滤字符,跟据具体情况而定。
********************************************************************
漏洞修补:
username=replace(trim(request("username")),"’","")
password=replace(trim(Request("password")),"’","")
把“’”给过滤了
如果你想用“’”当做密码 就用下面的方法
1、select * from user where user=’ " & User & "’ "
2、如果返回不为假,则取密码
pass=rs("passwd")
3、判断:if pass=password
4、得出结论。
例子:
Qu
相关文档:
探索软件工作室长期专业承接中小型商业软件或网站,最优惠的价格和高质量的服务期待您的惠顾!
本工作室承接 JSP ASP VB PB LotusNotes 等语言要求的应用系统开发业务
java jsp实战源程序代码:
......
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
if request("action")=1 then
Response.ContentType="application/ms-excel"
Response.AddHeader "content-disposition","attachment;filename=www.xls"
end if
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E ......
VISTA+IIS+ASP架站
1. VISTA裝IIS
1-1. 控制面板中“程序和功能”的位 ......
<!--#include file="config.asp" -->
<!--#include file="Fun.asp" -->
<%
'数据库管理类
class Datas
'备份
public sub Bk()
Set fso=server.createobject("scripting.filesystemobject")
fso.CopyFile Server.MapPath(SiteDataPath),Server.MapPath(SiteDataBakPath)
......
ASP函数与VBSCRIPT类似,以下举一些常用的函数
Array()
函数返回一个数组
表达式 Array(list)
允许数据类型: 字符,数字均可
实例: <%
Dim myArray()
For i = 1 to 7
Redim Preserve myArray(i)
myArray(i) = WeekdayName(i)
Next
......