MENU

某CS架构管理平台渗透测试

2021 年 05 月 02 日 • 阅读: 78 • 靶机阅读设置

某CS架构管理平台渗透测试

前两天测了一个CS架构的管理平台,我觉得比较有意思,而且测试的过程相对来说很有意思,绕了一大圈以后,发现其实要找的内容就在眼皮底下,于是记录一下过程,对于CS架构的渗透测试,我通常测的比较简单,主要还是看业务方面的问题,软件本身的漏洞几乎不涉及。

测试过程

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

源码分析(未完待续)

本来我都不打算分析源码了,但是还是好奇这个软件对配置文件的加密方法,于是就看了一下,发现了一些有意思的东西,而且我对C#相对来说比较了解(毕设就是用C#写的),再加上这个软件的结构非常清晰简单,很适合新手练习,我就打算好好的读一下这个源码,分析一下软件产生漏洞的原因以及他的加密方法。

返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码