pikachu之sql注入

文章讲述了如何识别和利用数字型SQL注入来探测数据库信息,包括通过报错确定注入类型,使用ORDERBY判断字段数,以及查询数据库名、表名和列名,甚至解密MD5加密的密码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数字型注入

先看它是字符型注入还是数字型注入。

有报错,说明是数字型。

可以通过注入查询所有人的信息。

接下来需要判断查询的字段数是多少,可以用order by语句。

可以判断出查询的字段数为2,所以接下来union联合注入的查询字段也应该有两个。

查询当前数据库名。

查询该库中所有的表名。

我们还需要知道表中的各个列名。

知道了各个表名和表中列名我们就可以尽情地查询信息了比如我们可以查users表中的username和password。

密码是用md5加密了的,我们可以在线解密。

### Pikachu 靶场 SQL 注入实验指南 #### SQL 注入原理概述 SQL 注入是一种攻击技术,通过该技术可以向应用程序发送恶意的 SQL 查询语句。当 Web 应用程序未能正确过滤用户输入的数据时,这些数据可能会被解释为 SQL 语法的一部分并执行。这可能导致未经授权访问数据库中的敏感信息或其他破坏行为。 #### 实验环境搭建 为了进行 SQL 注入练习,在本地环境中部署了名为 `pikachu` 的漏洞测试平台[^1]。此平台上提供了多个不同类型的 SQL 注入案例供学习者实践操作。 #### 类型一:字符串型注入 对于基于 GET 请求传递参数的情况,可以通过修改 URL 中的关键字来实现简单的字符串拼接式注入。例如,将正常查询条件替换为特殊字符组合以达到绕过验证的目的。具体实例可见于提供的链接中给出的例子[^2]: ```http GET /vul/sqli/sqli_str.php?name=1'+--&submit=%E6%9F%A5%E8%AF%A2 HTTP/1.1 Host: localhost:8086 ``` 这里使用 `'--+` 来终止原始查询,并防止后续部分被执行。 #### 类型二:数字型注入 (POST 方法) 除了 GET 方式的请求外,还存在 POST 形式的提交方式来进行更隐蔽的操作。在这种情况下,通常会涉及到表单字段内的数值输入项作为突破口。利用 `UNION SELECT` 结构能够获取额外的信息,比如 MySQL 版本号或者当前使用的数据库名称等[^3]: ```sql ' UNION SELECT version(), database() -- bbq ``` 这段 payload 将返回服务器端所运行的具体版本以及正在连接的目标库名。 #### 学习建议 掌握 SQL 注入技巧不仅依赖理论知识的学习,更重要的是反复练习与实际动手能力培养。鼓励读者们多多尝试不同的场景设置下的注入手法,加深理解其背后的机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值