怎么修改后台 or = or 的注入漏洞
先来了解下万能密码的产生 分析一个login。asp (1)pwd = request。form("pwd") "获取客户端输入的密码,再把值赋给pwd" (2)name = request。 form("name") "获取客户端输入的用户名再把值赋给name" 都没有进行任何过滤 (3)Set rs = Server。CreateObject("ADODB。Connection") "利用Server对象的CreateObject方法创建ADO组件的Connection对象" (4)sql = "select * from Manage_User where UserName='...全部
先来了解下万能密码的产生 分析一个login。asp (1)pwd = request。form("pwd") "获取客户端输入的密码,再把值赋给pwd" (2)name = request。
form("name") "获取客户端输入的用户名再把值赋给name" 都没有进行任何过滤 (3)Set rs = Server。CreateObject("ADODB。Connection") "利用Server对象的CreateObject方法创建ADO组件的Connection对象" (4)sql = "select * from Manage_User where UserName='" & name & "' And PassWord='"&encrypt(pwd)&"'" "将用户名和密码放入查询语句中查询数据库" (5)Set rs = conn。
Execute(sql) "执行SQL语句" (6)If Not rs。EOF = True Then "当前的记录位于Connection对象的最后一个记录之前" (7)Session("Name") = rs("UserName") "将UserName的属性赋给Name的Session自定义变量" (8)Session("pwd") = rs("PassWord") "将PassWord的属性赋给pwd的Session自定义变量" (9)Response。
Redirect("Manage。asp")了 "利用Response对象的Redirect方法重定向"Manage。asp" (10)Else (11)Response。Redirect "Loginsb。
asp?msg=您输入了错误的帐号或口令,请再次输入!" (12)End If (13)end if %> 知道原理之后 我们就可以修补了 把(1)(2)的内容修改成 pwd = replace(request。
form("pwd"),"'","") //意思就是把'替换为空 name = replace(request。form("name"),"'","") //同上 为了保险后台最好设置登陆用户 登陆密码 还有验证码。
收起