一、前言
去年在做云安全运维时,忙的都没有空挖漏洞。为了弥补去年一年cnvd证书的空缺,某一天晚上我打开了FOFA搜索关键字"系统",找到了某个系统网站进行测试。
二、思路历程
找到该系统时,首先用插件看了下网站接口是否存在未授权访问。
看了圈都是下载相关的页面,接着就用dirsearch进行目录扫描。
其中在检查扫描到的目录/login.php时,访问该网页时跳出
然后一堆代码一闪而过后,跳转到如下页面
看到上面的情形我猜测网站环境可能是不支持php的,php源码会直接打印出来
接着抓包访问/login.php,果不其然登录页面源码出现了:
在登录的源码中,最有利用价值的莫过于是数据库的账号密码、数据库名称,但是3306端口不一定就是开在公网上的
于是我把FOFA上所有的该系统都扒下来,放进goby中只检测开放了3306端口的系统
在企查查发现该系统的开发商注册资产超过5000万,漏洞目标又有10+,满足申请cnvd证书的条件
已知数据库为KDM3ADB,账号为root,密码为kdc
直接使用sqlmap对数据库进行注入:
python3 sqlmap.py -d "mysql://root:kdc@X.X.X.X:3306/KDM3ADB" --tables
这样一张证书就到手了。
验证是dba的权限,以为能一把梭得到源码再审计一波
不过这个注入的地方虽然是dba的权限,但是却没有文件上传的权限,所以无法getshell
拿到数据库了,可以再测试一波弱口令
翻了下密码是这样的,很抽象应该是自己写了加密
回到之前login.php源码泄露里面,其中在登录时有对密码进行解密的源码,看着很头疼,想起了学密码学时候那些交换变换的算法
// 密码加密函数
function EncryptStr($strSo