PHP+MySQL手工注入攻击详解与防范
28 浏览量
更新于2024-08-31
收藏 62KB PDF 举报
"这篇资源是关于PHP与MySQL结合下的SQL手工注入攻击的教程,涵盖了多种常用的注入语句,包括暴露字段长度、位置,利用内置函数获取数据库信息,以及猜解数据库、表和字段的方法,甚至涉及到高级用法和直接写入Webshell的条件。"
在Web开发中,SQL注入是一种常见的安全漏洞,攻击者通过构造恶意的SQL语句来获取、篡改或删除数据库中的敏感信息。在PHP与MySQL的环境中,攻击者可能会利用不安全的用户输入来执行这些注入攻击。以下是一些关键的知识点:
1. **暴露字段长度**:通过`Order by num/*`,攻击者可以测试数据库返回结果的列数,了解系统可能的字段数量。
2. **匹配字段**:`and 1=1 union select 1,2,3,4,5…….n/*` 可以用来验证注入点并尝试获取字段内容,这里的数字n代表预期的字段数量。
3. **暴字段位置**:`and 1=2 union select 1,2,3,4,5…..n/*` 用于确定每个字段的位置,通过改变数字顺序,攻击者可以逐步揭示不同列的数据。
4. **内置函数**:`version()`, `database()`, 和 `user()` 是MySQL的内置函数,攻击者可以通过它们获取数据库版本、当前数据库名以及当前登录用户的权限信息。
5. **操作系统信息**:通过`and 1=2 union all select @@global.version_compile_os from mysql.user/*`,攻击者可能能获取到运行MySQL服务器的操作系统信息。
6. **数据库权限检查**:如`and ord(mid(user(),1,1))=114/*`,若返回正常,可能表示当前用户为root,具有较高权限。
7. **暴库(MySQL 5.0以上)**:`information_schema`是一个内置库,攻击者可以通过`and 1=2 union select 1,2,3,SCHEMA_NAME,5,6,7,8,9,10 from information_schema.SCHEMATA limit 0,1` 获取数据库名。
8. **猜表和字段**:攻击者可以利用`information_schema.TABLES`和`information_schema.COLUMNS`获取表名和字段名,通过十六进制编码进行精确匹配。
9. **暴密码**:一旦获得表名和字段名,攻击者可能尝试提取特定用户的用户名和密码段。
10. **高级用法**:如`Union select 1,2,3,用户名段,0x3c,密码段,5,6,7,8,9 from 表名 limit 0,1`,将两个数据内容合并展示,这在只有一个可利用字段的情况下非常有用。
11. **直接写马**:如果攻击者拥有Root权限并且知道站点物理路径,他们可能尝试直接在服务器上写入Webshell,即后门程序,从而实现远程控制。
为了防止SQL注入,开发者应遵循最佳实践,如使用参数化查询(预编译语句)、限制用户输入、对输入数据进行过滤和转义,以及定期进行安全性审计。理解这些注入技术可以帮助开发者更好地设计和实现安全的Web应用。
2022-08-08 上传
2021-10-10 上传
点击了解资源详情
2018-10-12 上传
2021-08-12 上传
2013-10-18 上传
2022-06-22 上传
点击了解资源详情
点击了解资源详情
weixin_38696590
- 粉丝: 6
- 资源: 927
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查