' or '1'='1'等脚本注入漏洞问题

社区服务
高级搜索
猴岛论坛电脑百科' or '1'='1'等脚本注入漏洞问题
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
1个回复

' or '1'='1'等脚本注入漏洞问题

楼层直达
mmwwee

ZxID:1031914

等级: 大校
Frogoo

举报 只看楼主 使用道具 楼主   发表于: 2008-01-19 0
在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’ 
  怎么样?!我不说大家也明白了吧! 
  既然有这样的问题,接下来我们就来看看如何解决它。从上面的程序中各位也可以看出,只要对用户输入的数据进行严格过滤就可以了。具体可以参下面的程序: 
  <% 
  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 这一句中可以加入任意的过滤字符,跟据具体情况而定。
141927

ZxID:1335652

等级: 准尉
举报 只看该作者 沙发   发表于: 2008-01-19 0
看不懂~嘿嘿
« 返回列表
发帖 回复