SQL注入攻击:获取网站路径与目录遍历技术
需积分: 28 29 浏览量
更新于2024-09-07
收藏 2KB TXT 举报
本文档介绍了如何利用MS SQL Server(MSsqlL)注入漏洞来获取网站的路径信息。通过执行特定的SQL语句,攻击者可以读取系统注册表中的虚拟根目录信息,以及遍历指定目录下的子目录结构。
MS SQL Server注入(MSsqlL注入)是一种针对使用MS SQL Server作为数据库的应用程序的安全威胁。它发生在应用程序未能充分验证用户输入,允许恶意用户插入SQL命令到查询中。在这种情况下,攻击者利用注入技术来获取服务器上的敏感信息,如网站的路径。
1. `xp_dirtree` 存储过程:
提供的示例中,使用了`execmaster..xp_dirtree 'd:/test'`来遍历'd:/test'目录及其子目录。`xp_dirtree`是SQL Server的一个扩展存储过程,用于列出指定目录及其所有子目录的树形结构。攻击者可以改变参数来探索其他目录。
2. 注入SQL语句构造:
- `createtabledirs(paths varchar(1000), id int)` 创建一个临时表`dirs`来存储目录路径。
- `insertdirsexecmaster.dbo.xp_dirtree'd:\'--` 将`xp_dirtree`的结果插入到临时表中。
- `select top 1 paths from dirs where id = 1` 从`dirs`表中选择第一条记录,获取第一个目录路径。
- `http://www.xxxxx.com/down/list.asp?id=1 and 0<>(select top 1 paths from dirs where id=1)` 将SQL注入到URL中,尝试获取路径并绕过安全检查。
3. 读取系统注册表信息:
- `EXECmaster.dbo.xp_regread` 是另一个扩展存储过程,用于读取Windows注册表项。攻击者可以使用这个来获取关于Web服务的虚拟根目录设置。
- 示例中的代码创建了一个名为`[dbo].[cyfd]`的表,并将注册表读取的结果存储在其中。
4. 验证获取的路径:
- `and1=(select count(*)fromʱwhereʱֶ>1)` 和 `and1=(select count(*)fromcyfdwheregyfd>1)` 用于检查获取的路径是否有效,如果存在多个条目,说明路径是正确的。
5. 删除Webshell:
- `droptablecyfd;` 用来删除之前创建的`cyfd`表,可能是为了清除痕迹或防止进一步的检测。
总结,MSsqlL注入是一种严重的安全风险,允许攻击者获取服务器内部信息,包括网站路径、虚拟根目录和可能存在的Webshell。为了防止这类攻击,开发者应该确保对用户输入进行严格的验证和过滤,使用预编译的SQL语句(如参数化查询),并保持数据库系统及应用程序的更新,修补已知的安全漏洞。同时,定期的安全审计和日志监控也是必要的防御措施。
2022-09-24 上传
2021-10-11 上传
2023-07-30 上传
114 浏览量
184 浏览量
2023-09-29 上传
2023-04-26 上传
2023-08-18 上传
204 浏览量
总有刁民想害朕WSG
- 粉丝: 7
- 资源: 282
最新资源
- 基于BIC、EM算法构建贝叶斯网
- 山社步进电机EnterCAT描述文件
- jquery.preloader:jQuery preloader插件
- VIM Emulator plugin for IntelliJ IDEA-开源
- 电子功用-故障导向安全的动态采集电路及故障导向安全的装置
- 沟通和追踪的秘笈
- portafolio-personal:Portafolio个人资源前端网络服务提供商React.js Node.js和Express.js。 Tengo Pensadoañadirmas funcionalidades en un Futuro
- 布局不稳定性:布局不稳定性规范的建议
- jQuery-TH-Float:jQuery插件-浮动的THEAD和TFOOT已在视图中修复
- Business_Cases_Projects
- nextjs-tutorial:学习使用Nextjs构建全栈React应用
- bioMEA
- 保险行业培训资料:试着把生命折迭51次
- node-app-etc-load:加载配置文件
- WIN
- py_udp:使用 Python 发送/接收 UDP 数据包。-matlab开发