PHP+MySQL手工注入攻击详解与防范
119 浏览量
更新于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 上传
点击了解资源详情
185 浏览量
145 浏览量
106 浏览量
2022-11-29 上传
205 浏览量
点击了解资源详情
weixin_38696590
- 粉丝: 6
- 资源: 927
最新资源
- RCTF_2015_web500.rar
- react-my-app:学习react
- V4音效4.4.0.4全网最新版(附带安装方法和脉冲样本使用发放).zip
- 电脑软件简历模板大全.rar
- arsenio:ping问题的作者,被arsenio bot遗忘了
- WholesomeHaha.RevenantWww.gazrZ1D
- ctf500--app登录加密算法.rar
- kernelry.github.io:我的博客
- group-by-params:数组使用的简单分组功能,可按参数执行分组。 参数可以是对象键或嵌套路径
- 一个好用的http测试工具
- shortly-angular
- 电脑软件NDM下载器.rar实用
- JS在线汉字笔画练习特效特效代码
- appc-github-client:用于监控Github组织,存储库等的仪表板!
- getopts:解析CLI参数
- 盘古:这是一个演示说明