ITPub博客

首页 > 应用开发 > IT综合 > 了解ASP入侵[收集总结](转)

了解ASP入侵[收集总结](转)

原创 IT综合 作者:BSDLite 时间:2007-08-11 20:24:22 0 删除 编辑
了解ASP入侵[收集总结](转)[@more@]ASP可运行的服务器端平台包括:WinNT、Win2k、WinXP和Win2003,在Win98系统里装上PWS4.0也可运行。

现在很流行的注入攻击,就是利用提交特殊地址将ASP中引用的正常SQL语句和入侵者所需要的SQL语句一并执行,使入侵者达到入侵的目的。随着有一些脚本注入工具发布,使菜鸟也可以轻松完成对ASP的注入攻击。那么我们来了解一下这些工具是怎样注入的。
首先,入侵者会对一个网站确定可不可以进行注入,假设一篇新闻(文章)的地址为:http://www.xxxx.com/news.asp?id=1 一般会以提交两个地址来测试,如:
http://www.xxxx.com/news.asp?id=1 and 1=1
http://www.xxxx.com/news.asp?id=1 and 1=2
第一个地址后面加了and 1=1,构成的SQL语句也就变为了:Select * from 表单名 where id=1 and 1=1这句话要成立必须and前后语句都成立。那么前面的文章地址是可以访问的,后面的1=1也是客观成立的,那么第一个地址就可以正常显示;相反1=2是显然不成立的,关键就看这步了,如果提交and 1=2页面还是正常显示说明他并没有将and 1=2写入SQL语句,此站也就不存在注入漏洞;但如果提交and 1=2之后返回了错误页面则说明此站点将后面的语句带入了SQL语句并执行了,也就说明他可以进行SQL注入。(注:如果地址后面跟的是news.asp?id='1'就得变为news.asp?id=1' and '1'='1来补全引号了)
现在知道了可以注入后,入侵者可以做什么呢?如果提交这样的地址:
http://www.xxxx.com/news.asp?id=1 and exists (select * from 表名 where 列名=数据)根据返回的正确或错误页面来判断猜的表名和列名是否正确,具体实现时是先猜表名再猜列名。当猜出表名和列名之后还可以用ASC和MID函数来猜出各列的数据。MID函数的格式为:mid(变量名,第几个字符开始读取,读取几个字符),比如:mid(pwd,1,2)就可以从变量pwd中的第一位开始读取两位的字符。ASC函数的格式为:ASC("字符串"),如:asc("a")就可以读出字母a的ASCII码了。那么实际应用的时候就可以写为:asc(mid(pwd,1,1))这样读取的就是pwd列的第一个字符的ASCII码,提交: asc(mid(pwd,1,1))>97以返回的页面是否为正确页面来判断pwd列的第一个字符的ASCII码是否大于97(a的ASCII码),如果正确就再试是否小于122(z的ASCII码)……这样慢慢缩小字符的ASCII码的范围,直到猜到真实的ASCII码。这样一位一位的猜就可以得到数据库中的用户名和密码。还有一种ASP验证缺陷——就是用户名和密码都输'or '1'='1,构造SQL语句Select * form 表单名 where username='' or '1'='1' and pwd='' or '1'='1'就可以达到绕过密码验证的目的。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10617542/viewspace-947634/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    1872
  • 访问量
    4072771