某CS架构管理平台渗透测试
前两天测了一个CS架构的管理平台,我觉得比较有意思,而且测试的过程相对来说很有意思,绕了一大圈以后,发现其实要找的内容就在眼皮底下,于是记录一下过程,对于CS架构的渗透测试,我通常测的比较简单,主要还是看业务方面的问题,软件本身的漏洞几乎不涉及。
测试过程
- 该软件是可以通过互联网下载的,所以我拿到测试信息后就直接从互联网上下载了该软件,在虚拟机里安装后开始运行
- 通常我在渗透的时候,会开一个Wireshark放到后台用来记录流量,这一次出现了很有趣的事,当我运行这个软件的时候,在Wireshark中出现了一个MySQL连接,我在浏览器中访问了一下这个IP,发现就是下载客户端的域名所属的IP,那就有意思了,看起来这个IP对应的服务器上在公网上开放了3306端口
- 我看到这个3306端口的第一反应是是用Goby扫一下,只扫出来一个Windows远程桌面的3389端口,我估计这个3389比较难爆破,所以就没把时间浪费到这个上面。
- 根据我的编程经验,这种要和数据库直接通信的软件都会把MySQL数据库的密码写死,或者写成配置文件,于是我先找了一下配置文件,发现配置文件是加密过的,不知道解密方法,所以通过配置文件找MySQL密码的方法失败了
- 所以看能不能在软件里找到写死的密码,因为我之前几乎没怎么接触过逆向分析,只有在大学实习的时候操作过几次,到现在也忘得差不多了,于是我就没有尝试逆向,先用测试账号登录了这个管理平台,看看有没有其他问题,这个系统相对来说很简单,就是一个本科课程设计的水平,几乎只有数据库的增删改查功能
- 点开最上面的第二个系统,是这个管理平台的主要功能,增删改查其中的数据,这个系统中存放了接近7700人的数据,我先在姓名那里写了一个
1' or 1=1#
的SQL语句,没想到直接查出来8000多人的数据,这不就是妥妥的SQL注入嘛,而且我明明用的是管理员账号登录的,怎么可能不能管理全部人呢?这就很奇怪 - 然后我又去Wireshark中看了一下,确实有我写的SQL语句
- 我重新用普通用户登录了一下,这个普通用户可以12条数据,我同样在姓名那里写了
1' or 1=1#
语句,发现还是能看8000多条数据,这。。。。 - 我就想如果姓名这能注入,那是不是登录口也能注入,我用万能密码试了一下,还真可以,软件提示当前用户为
admin' or 1=1#
,牛逼,这不就意味着是个人都能拿到这8000人的数据了,离谱 - 因为之前没有接触过CS架构的SQL注入,所以想能不能继续在MySQL密码这里下功夫,于是打开了IDA,看有没有什么发现,应该是这个软件使用Unicode字符的原因,导致了里面的中文会显示乱码,刚开始没发现是Unicode的问题时,我一直以为是加壳的原因(我是真的不懂加壳与脱壳),于是我用PEinfo查看了一下,上面写着可以用de4dot脱壳(其实根本就没壳),我使用de4dot脱壳后就可以在IDA中正常显示中文了,其实中文问题根本就不是壳和反编译软件的问题,目前我还不知道是什么问题
- 我在IDA的源码中没有发现什么有用的东西,而且都是汇编语言,看不大懂,也可能是我不太会使用IDA,于是我又找了另一个C#反汇编软件:dotpeek,dotpeek这个软件比IDA看起来方便多了,然后我在dotpeek中搜索了一下mysql,发现了一个
AdminWindows
类,然后在这个类里找到了一行汉字:服务器端口
,看到这我突然意识到,可能这个软件里有一个配置服务器的地方 - 于是我返回去又在程序中找服务器配置的页面,果真被我找到了,只能说之前想通过其他手段找MySQL密码,没想到却能在程序中配置
- 因为密码是被
*
了,所以我尝试了一下用*号查看器
,直接读到了密码,这下我应该可以直接登录这个MySQL服务器了 用Navicat登录MySQL服务器成功
源码分析(未完待续)
本来我都不打算分析源码了,但是还是好奇这个软件对配置文件的加密方法,于是就看了一下,发现了一些有意思的东西,而且我对C#相对来说比较了解(毕设就是用C#写的),再加上这个软件的结构非常清晰简单,很适合新手练习,我就打算好好的读一下这个源码,分析一下软件产生漏洞的原因以及他的加密方法。
《某CS架构管理平台渗透测试》链接:https://xdym11235.com/archives/53.html
具体版权规定详见侧栏版权说明页面