SQL注入攻击常用语句详解
需积分: 9 94 浏览量
更新于2024-09-07
收藏 4KB TXT 举报
"手工注入常用SQL语句"
SQL注入是一种常见的安全漏洞,通常发生在Web应用程序中,允许攻击者通过输入恶意的SQL代码来操控后台数据库。以下是一些针对不同数据库系统的常见手工SQL注入语句:
1. **Access SQL注入**:
`and (select id from MSysAccessObjects) > 0` 这个语句用于探测Access数据库是否存在SQL注入漏洞。如果存在,它会尝试从MSysAccessObjects表中选择一个id,如果返回结果大于0,则表明可以进行进一步的攻击。
2. **MSSQL SQL注入**:
`and (select id from sysobjects) > 0` 是针对Microsoft SQL Server的注入测试,它检查sysobjects表中是否存在记录。这是探测MSSQL服务器是否易受攻击的一种方式。
3. **MySQL SQL注入**:
- `and length(user()) > 0` 用于检测MySQL数据库是否在线,如果当前用户长度大于0,说明连接成功。
- `mysql1.x 版本的注入:and ord(mid(version(),1,1)) > 51` 这个针对MySQL 4.0及以下版本,通过获取版本号的第一个字符的ASCII值来判断版本。
- `order by 注入`:通过改变`order by`的字段数量来测试数据库的响应,找出列的数量。
- `union 查询`:结合`union select`来获取数据,例如`union select 1,2,3,4...`,如果能成功执行,表示可以合并查询结果。
- `权限验证`:通过查询用户表来检查是否有未授权的访问,如`and (select count(*) from mysql.user) > 0`。
- `函数利用`:如`load_file`、`hex`和`unhex`等,可以读取文件或解码数据。
4. **SQL注入技巧**:
- `limit`关键字用于限制查询结果的数量,如`limit 1,1`获取第一条记录,`limit 2,1`获取第二条记录,以此类推。
- `union all`可以用来合并两个查询结果,不删除重复项。
- `information_schema`是大多数SQL数据库中的系统表,可以用于获取数据库、表、列等元数据信息。
5. **其他注入方法**:
- `system_user()`、`current_user()`和`user()`分别用于获取操作系统用户、当前会话用户和登录用户,这些函数在某些情况下可用于权限验证或信息收集。
- `version()`、`database()`、`@@version_compile_os`、`@@datadir`和`@@basedir`等函数用于获取数据库版本、当前数据库名、操作系统版本、数据目录和MySQL安装目录等信息。
手工SQL注入通常需要对目标数据库的语法有深入理解,通过构造特定的查询语句来绕过安全检查,获取敏感数据或执行恶意操作。防止SQL注入的最佳实践包括参数化查询、输入验证、少用动态SQL和保持数据库系统更新等。
2011-06-29 上传
2021-04-10 上传
2017-06-05 上传
2023-05-10 上传
2019-07-18 上传
点击了解资源详情
总有刁民想害朕WSG
- 粉丝: 7
- 资源: 282
最新资源
- 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算法及互相关性能优化指南