BlackHat之路第六期:一次网站逆破经历。

最近博客高产,实属不容易。偶尔静静思考,写点东西,总比打游戏来得好。
读书不可有太多实在的意义,写文章也是。

一个网络上的朋友,从黑鹰安全网出来的,黑了一个aspx的网站,拿到了页面和bin。在看雪上发了个帖子,征人破解。说是一些页面打开直接空白,怀疑加入了域名校验的功能。我正好想练练手,所以接了下来。

2个小熬夜,搞定。结果是,改动的地方不多,分析的过程比较曲折。

网站破解其实需要的知识蛮多,sql server,web知识,逆向等等。这次逆破其实也验证了我的能力。比如我一天就有了眉目,两天就搞定,同时其他4个一起竞标的人却还在“研究”。

废话不多说。基本的步骤如下:
1·搭建服务器,.net 2.1 + sql 2005
2·发现一些页面确实打开空白,先简单搜索,翻了两三页,发现有一两个解决方案:(1)某个服务没开;(2),在老外的页面上发现,要取消SQL强制修改密码的选项。
3·ok,页面打开了,心想,不至于这么简单吧,于是试着点几个链接,一些页面直接跳转到程序定义的错误页面
4·找到页面对应的bin文件,reflect反编译,找到按钮对应的函数入口,发现数据库操作,怀疑是这里的问题。
5·在页面加入js的Alert(),一步一步回朔,发现关键“文件操作函数”,用Alert把文件地址显示出来,ok,发现问题:路径不存在。
6·查找路径的来源,跟踪后发现是存在DB里的;吸取教训,于是把DB每个表打开看一遍,并做相应修改。
7·继续做5,发现程序程序捕获异常的方式是通过Global的一个函数,并把异常信息记录在DB里,然后返回自定义的Error页面。这下好了,如果页面出问题,就直接查询DB就可以。
8·现在程序功能已经全部实现,但是发现一些页面会自动跳转到www.xxxxx.com,看来确实有一部分的绑定域名的代码。ok,dll逆了之后,搜索域名关键字,发现时简单的if else判断,ok,注释掉。
9·重新编译,生成dll,ok,全部逻辑顺畅。
10·发现部分文件里仍然有www.xxxxx.com的信息,比如某个flash里就加入了域名的文字,被要求去掉。用Swf Decompiler反编译,失败,看来做了保护措施;用WinHex打开,做二进制的搜索字符串,没有找到,我不清楚swf的编译逻辑,于是放弃修改swf的想法。后来发现文字之出现在swf的顶端,ok,直接

解决掉。

综观以上过程,发现改动的东西确实不多,而是花了不少时间理解程序的流程,找到出错的地方,然后改正过来。

经验总结如下:
1·想问题的思路很重要;不可以盲目做,一定要边做边想,下一步怎样做合理;而且如果发现一个方法不行,要学会适时放手,去寻找另一个方法。
2·搜索能力很重要;选择什么关键字,翻到第几页合适;这里建议使用Google,因为一些信息只有老外有。
3·Aspx的网站的dll,最好加个猛壳;如果网站被黑,基本上网站的源代码就全部暴露了。如果源码里有重要信息,八成就玩完了。

《BlackHat之路第六期:一次网站逆破经历。》上有2条评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注