好久不写日志了,最近也没玩多少站,大站不好写出来,小站不好意思写,于是这边只有留空白...可是今天碰到这个小站,还又不得不说...
下午在sunwear那群里,有人扔出个链接:www.dtd1.cn,说是山寨版绿盟,我一点进去,猛地发现这个山寨版绿盟居然来自东台,怪不得域名前两个字母是dt呢...于是有一种感觉叫无语...
一、拿shell拿系统权限:
初看这个站,asp小站,拿下肯定很容易的,于是都没找注入,直接尝试后台,一试/admin存在,于是尝试登陆,用or试了下,不行,换成admin,admin,进去了,再次无语,这管理员是白养了...
大体看了下后台,操作FSO的地方还蛮多,除了编辑器的上传,还有自带的上传,另外还有备份恢复操作数据库,还有生成首页...我们一个个看能否成功:
1.编辑器ewebeditor,没有admin_login.asp,没戏了,下一个;
2.自带的上传,用jpg成功了,文件名改成时间了(也就是无法自定义了),么希望了,下一个;
3.备份数据库,想当年N多站都是靠这个拿下的,只能寄希望予它了,可是源库无法自定义,看源代码根本没有源库的踪影,不过可以备份.asp文件,那就容易了,直接改新闻,写入个,然后备份成asp,再打开,可是没有我们所习惯的“类型不匹配: 'execute'”,很无语,备份成rar(.net的限制,mdb无法下载)下回来试试,发现数据库变成文本的时候里面的内容都被打散了,何谓打散,就是每两个字符间都有个空格,于是代码无法解析,寒,可是数据库里我没发现有异常的脚本,不然我可以用操作数据库的功能删除数据库的某个表或者字段什么的啊,说这么多,数据库的思路貌似终止了,哎,下一个;
4.最后一个操作FSO的地方就是生成首页了,(网址公布一会会,就有“牛牛”把首页给update了,我以为他很牛,已经拿到shell了呢),自己也仔细看了更新首页的代码,没hidden的文件名文本框,也就是生成的首页名称不是自定义,可是生成的首页是index.htm,不能利用...
吃完晚饭,继续想办法,一般asp的站拿下来的概率都比较大的,只要你别放弃...
我拿出扫描器扫描目录,不经意间发现管理员居然给这个站目录浏览的权限,哇,目录可以遍历我就可以看到这个站所有的东西,如果能找到隐藏着的upload文件岂不是很容易就拿下...
不过问题也就来了,由于首页的存在,我浏览不了首页,因为IIS默认的页面优先的...这条路不错,可是无法去享受,真是可惜了...没办法,还是去后台摸索摸索...
这一摸索纠结好久,我居然在后台发现了可以删除任意文件的重大bug,那个备份数据库的页面有删除备份的功能,可是那个文件名居然可以自定义,那就可以结合前面那个遍历目录的漏洞了,我直接../../index.htm,删除了首页,然后浏览根目录下的文件,运气真好,遇到一个N年前别人留下的小马,于是shell到手...
寒,入侵是一门学问,学问里有技术,有经验,还有运气...
接来的路就简单了,每个盘都有权限,wscript.shell还在,于是给我提个权,3389本来就开着,于是进去了。
IIS里居然装着上万个web,其中98%是空路径的,这个管理员...哎,吃白饭啊...
二、不得不说的一些东西:
昨晚我在服务器内捣腾的时候,突然发现首页又被某XXX update了,装B的真的很多,你也先拿下shell再装么,我突然觉得很悲哀,有时候玩黑到最后就变成别人装B的理由...
山寨版绿盟固然可笑,但那种装B更可悲...
比较寒心,哎,还是东台的站,无语啊无语,帮服务设置了下权限,删除了wscript.shell,然后走人...
有空问问小马,怎么处理这山寨绿盟...
--------------------------------------------------------------------------------
昨天这个入侵纯属运气,晚上我自己纠结出一种入侵思路,然后小马上线又提供一个思路:
1.我的思路:数据库逆向(具体我尝试过,成功)
2.小马告诉我lake2研究过的数据库插马问题:
经过对多例实际情况的分析,我发现只要出现代码被空格隔开的数据库,相应的字段的Unicode压缩属性总是“否”。相反,如过Unicode压缩属性为“是”,则可以通过该字段进行插马。
经过搜索,发现微软官方对Unicode压缩的描述:“Microsoft Access 2000 或更高版本使用 Unicode 字符编码方案来表示文本、备注和超链接字段中的数据。Unicode 将每个字符表示为两个字节……需要的存储空间比在 Access 97 或更早版本中要多……可通过将“文本”、“备注”或“超链接”字段的“Unicode 压缩”属性的默认值设为“是”来弥补 Unicode 字符表达方式所造成的影响”
哦,原来开启了 Unicode 压缩的话,数据库会自动把拉丁字符(西欧语言如英语、西班牙语或德语)用1个字节来存储;如果没开启,数据库就会用2个字节(1个字节为0x00,作为文本将被自动转换为空格)存储拉丁字符,也就造成了插入的asp代码被空格隔开的情况。
OK~~~此问题完美解决~