注:本博客仅供技术研究。如果其信息用于其他目的,用户将承担全部法律和连带责任。本博客不承担任何法律和连带责任。请遵守中华人民共和国安全法
黑客19引领实战潮流,回归技术本质,我们用行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!
起因
- 这次收到的项目是对客户端进行安全测试。除了偶尔测试 外,以前的工作内容还包括App除了 ,大多数测试目标仍然是 B/S 架构的 Web这是第一次对 C/S 架构的客户端进行了测试,所以眼睛也被抹黑了,只能先按照测试 Web 的常规思路来了。
常规思路
抓包
- 首先,检查目标客户端是否有代理配置功能(大多数没有)
- 可见只有一个简单的登录功能,没有代理配置功能
Proxifier BurpSuite
- 查看 BurpSuite 代理地址和端口
- 在 Proxifier 添加代理服务器(ip、port 为 BurpSuite代理地址置的代理地址和端口)
- 配置后,检查、测试和 BurpSuite 的连通性(BurpSuite 中间的流量是成功的连接。
- 在 Proxifier 添加代理规则
- BurpSuite 成功拦截客户端登录请求
数据包分析
- 数据包成功拦截后,计划分析。结果一看就绝望了。请求包和响应包都加密了
尝试 Web 访问
- 之前测 App 手机流量加密, PC 端未加密,然后复制请求链接尝试 Web 访问未获得有效信息
- 因为客户端相关功能的请求参数是 POST 方式传输,流量加密,暂时放弃,改变想法,计划从服务器开始
柳暗花明
WebSphere
- 扫描目标服务器的端口,发现有相当多的开放端口,9043和9060分别是 WebSphere 默认管理控制台安全端口和管理控制台端口
- 默认登录地址 //ibm/console,这里使用默认用户标识 admin 成功登录
一波三折
更换 jsp 文件内容
- 成功进入 是合理的WebSphere 管理控制台, shell 只是一件合乎逻辑的事情,但事情远没有我想象的那么容易。首先,使用之前玩过的 war 包上传
- 选择 war 包,填上下文后报错
关于这个搜索了很久,最后总结了几个原因和解决方案,即重启 WebSphere、war 包中包含的文件格式错误,打 war 包装时使用的 jdk 与目标 WebSphere 的 jdk 版本不一致,修改一些 WebSphere 配置文件。
- 将 war 包中的 jsp 文件内容修改为打印字符串(无害内容),重新打包后上传,仍报错
更换 jdk 版本
- 目标使用 从前面捕获的数据包中可以看出jdk 版本为 1.5.0_21,然后下载相应版本的 jdk 使用 jar 命令对无害 jsp 文件打 war 包后上传,还是报错了
Myeclipse 构造 war 文件
通过之前的多次尝试没有解决这个错误,所以卡在这一步很长一段时间,最后通过查阅信息,WebSphere 6.x 默认支持版本Web 应用是2.3(web.xml 配置的 web-app_2_3.dtd),所以选择使用 Myeclipse 来生成 war 文件
- Myeclipse 新建 web 项目
- 将 jsp 文件放在 WebRoot 目录下
- 导出项目war 文件
- 生成的 war 文件目录结构如下
- 选择生成的 war 文件填写上下文上传
- 步骤 1-4 不需要操作,点击下一步
- 步骤 5 点击完成后,记得选择保存到主配置
- 安装完成后,应用程序状态已停止,点击启动即可成功启动
坑点
jsp 文件需要使用 Godzilla 生成的 webshell,刚开始使用 Behinder v3.11虽然生成的马可以成功上传,但它会提示页面存在,无法获得密钥,猜测可能与目标 jdk 版本太低,具体原因不明。
这个渗透教程到此结束!希望大家看看借鉴。如果您有技术咨询,请联系我们
黑客19引领实战潮流,回归技术本质,以行动推动行业技术进步
唯一的联系方式[email protected] 和 [email protected]
欢迎转载,但请注明原始链接,谢谢!