asp 动网论坛漏洞分析
这个漏洞不算太严重,用过动网论坛的人都知道,发帖时直接写 javascript 会被过滤拆分, http 会自动加上链接,漏洞就在此,在这两个地方变通一下, 写 把两个单词的某个字母换成编码形式,然后
系统再对应地解码回字母,就达到了 避 免 被 过 滤 的 目 的 。 例 子 说 明 一 下 , 在 发 帖 时 写 入 [ img ] javas&;# x 63ript:window.open( htt&;#x70://fwcn','') /img] 很清楚地看到, ‘ [ #x63 解码的字母是"c",#x70 解码的字母是"p",&;起到连接作用,最后加上[img] , 使 JS 被触发,如果论坛支持 flash 插入,用[swf]也可。利用这个漏洞可以搞 些恶作剧,写上诱人的主题,点进去结果是他的主页(骗点击率,作广告) ,甚 至更绝,连到一个有病毒、木马的网页上,让你直想骂娘。这个漏洞存在于动网 的各个版本,包括较新的 0519 版,覆盖面积之广让人瞠目,各人认为应该对某 些非法字符进行检测剔除, 而非简简单单地拆分了事,真希望动网开发者能尽早 补上这漏洞。
比起前者, 第二个漏洞
问题就大啦,利用该漏洞可以破解掉论坛上所有
注册 会员的密码(恐怖~~~) ,由于论坛管理员通常直接把论坛程序载下来梢加以美工 就拿来使用了,图方便直接导致了漏洞的出现,我们也载一个回来,只要看一下 动网的数据库,就知道了密码的字段为 userpassword,接着例如要破一个名叫 abc 的 用 户 密 码 , 首 先 察 看 abc 的 用 户 资 料 , 给 出 的 连 接 是 xxxxx/dispuser.asp?name=abc , 在 dispuser.asp 中 , 读 取 参 数 的 语 句 是:username=trim(request("name")),数据库的查询的语句是: sql="select * from [user] where username='"&;username&;"'",看得出来, abc 就是直接被作为了 dispuer 的一个参数 username,另外,如果该用户不存在,
程序就会给出提示, 既然如此,我们就再写入个
查询密码的条件,在 where username=abc 后面加上 and userpassword="******",理论上这样就可以实现对密码的破解了,但这么破 要破到何年何月,现在就要轮到 VBS 函数大显身手了,可以先用 len 函数试出用 户 的 密 码 位 数 , 地 址 就 这 么 写
xxxxx/dispuser.asp?name=abc'%20and%20len(userpassword)=5%20and%20'1'
='1, 这么看可能不好理解, 放到 sql 语句里其实就是这副样子:
sql="select * from [User] where username='abc' and len(UserPass
word)=5 and '1'='1'",现在明白点了 吧,%20 是空格,abc 后面的单引号和'1'='1 里的单引号都是为了和 sql 语句相匹 配。奇怪,该用户不存在,喔?那就说明符合这个条件的用户没有,继续,把 5 换成 6,7,8,依此类推,只要能显示出用户资料了,就说明密码位数猜对了。 接下来
要做的就是试每位的密码是多少了,继续要用到
VBS,可以用 left 或 right 或 mid 函 数 ,
xxxxx/dispuser.asp?name=abc'%20and%20left(userpassword,1)='a,如果猜对 了就给出用户资料,猜对了就给出该用户不存在的提示,这样子还是嫌太慢,那 就 在 外 面 再 套 个 asc 函 数 ,
xxxxx/dispuser.asp?name=abc'%20and%20asc(mid(userpassword,1,1))>'50 试出用户密码的 ASCII 码是否大于 50,不断地缩小范围,相信很快就能将范围缩 小至个位数,看到这里你是否惊出了一身冷汗,起码我是如此,@@几个函数的 灵活运用,保守地说,不出半小时就能破解出密码。真是不幸中的大幸,动网开 发者在后来的 05**版后使用了 MD5 的加密,这下子总算放心了,但介于国内还 有许多地方在使用老版本的动网论坛(包括一个小有名气的 flash 站点)
网 SQL 语 句 漏 洞 , 此 漏 洞 针 对 动 网 SQL 版 本 。 测 试 方 法 : 在 ip/
bbs/admin_index.asp 输入用户名是'or''=' 密码也是这个 。这样可以跳 过认证 原理:利用 SQL 语法。输入的密码和 ID 就成为一个合法的 SQL 语句,直接 跳过认证。 此漏洞并不针对动网。很多 SQL 的 ASP 都会有这个漏洞