注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

利用%5c绕过验证  

2011-07-01 18:55:08|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
利用%5c绕过验证
---------------------------------------
 lake2(http://mrhupo.126.com
target=_blank>http://mrhupo.126.com">http://mrhupo.126.com

 2004-11-27
---------------------------------------
 说到%5c,你是不是想起了当前流行的那个%5c暴库漏洞,呵呵,本文就是对%5c利用的探索(呵呵,当然有我提出的新东东,或许对你有帮助哦^_^)。
 好,我们先追根溯源,找到那个漏洞的老底。看看绿盟2001年的漏洞公告:
http://www.nsfocus.net/index.php?act=sec_bugdo=viewbug_id=1429
target=_blank>http://www.nsfocus.net/index.php?act=sec_bugdo=viewbug_id=1429">http://www.nsfocus.net/index.php?act=sec_bugdo=viewbug_id=1429

 N年以前利用这个漏洞可以实现目录遍历,虽然微软出了补丁,不过好像补丁是用来限制iis只能访问虚拟目录的,所以漏洞还是存在,只不过利用方式变了。对iis来说,提交一个含有%5c的url能够找到文件,但是该文件里以相对路径引用的其他文件却找不到了(%5c是\的url编码,iis跳转到上一级目录去找,当然找不到;头晕了吧,哈哈,我也头晕啊)。
 后来这个漏洞就被牛人挖掘出来了,也就是传说中的%5c暴库:由于连接数据库的文件引用的相对路径,提交%5c找不到文件,所以导致出错,iis就会老老实实的说出数据库的路径(不明白?找google)。
 一个偶然的机会我发现还可以利用%5c绕过asp的验证;当我们暴库失败的时候不妨试试。
 废话少说,看下面的代码:
!--#INCLUDE file="conn.asp" --
%
guest_user=trim(request("guest_user"))
guest_password=trim(request("guest_password"))
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * from admin where id=1"
rs.open sql,conn,3,2
readuser=rs("guest_user")
readpassword=rs("guest_password")
if readuserguest_user or readpasswordguest_password then
 response.write "请输入正确地管理员密码!"
 response.end
else
 session("admin")=1 '登陆后写入seesion中保存
 response.write("登陆成功,请返回信息页")
end i
%
 看到没有,要想通过验证必须让数据库里的用户名密码与提交的一致;想到什么?让我们再看看数据库连接文件代码:
%
 on error resume next
 set conn=server.createobject("adodb.connection")
 DBPath = Server.MapPath("guestbook.asp")
 conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="  DBPat
%
 啊,有容错语句不能暴库!等等,如果提交%5c数据库找不到,由于容错,所以程序会继续执行,那么说来从数据库得到的用户名密码皆为空(想想有时暴库失败是不是看到空空的框架,因为数据都是空嘛),哈哈,这样我们就绕过验证了!
 知道怎么做了吧,把登陆页面保存到本地,修改提交的url,把最后一个/改成%5c,用户名密码用空格(有的程序会检查用户名密码是否为空,空格会被程序过滤),提交,就ok了。
 诶,各位不要以为我自己没事写段代码来捣鼓,实际上这个是我们学校一个高手做的留言板程序,就挂在学校的主页,呵呵。
 既然弄懂了原理,当然要找实际漏洞啦,自然是拿大名鼎鼎的洞网论坛开刀。不过失败了,因为它的数据库连接文件里有这么一段:
If Err Then
 err.Clear
 Set Conn = Nothing
 Response.Write "数据库连接出错,请检查连接字串。"
 Response.End
End I
 数据库找不到程序就结束了,呵呵,空欢喜一场。
 接着又去down了bbsxp论坛,打开数据库连接文件,晕,根本没有容错语句;呵呵,不过可以暴库哦。
 我又不是BT,所以不去找事了,写篇文章,算是给各位高手提供资料吧。
 总结一下这个攻击方法成功的条件:1、数据库连接用的相对路径且仅有简单的容错语句;2、服务器iis版本为4或5;3、程序里不检查空字符或者检查时不过滤空格而比较时过滤空格;4、程序不能位于一级目录
 至于防范,呵呵,既然攻击条件知道了,防范措施自然也出来了^_^
  评论这张
 
阅读(252)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017