pikachu之字符型sql注入详细过程

基于pikachu的sql注入漏洞练习平台演示练习,作为个人学习笔记。

(1)确定注入点

在URL中,参数为name,当输入aa’时报错,当输入aa’‘时正常显示 ,可以判断注入点为name,漏洞类型为字符型。
输入aa’时浏览器返回信息
在这里插入图片描述输入aa’'时浏览器返回信息
在这里插入图片描述

(2)确定字段数

只有确定了字段数,才可以使用union这个关键词连接我们自己的查询语句。可以采用order by来确定字段数
输入kobe’ order by 1 # 通过更改数值,直到报错,判断字段数
在这里插入图片描述

(3)确定数据库和数据表

==kobe’ union select database(),2 # ==
可以看出数据库名称是pikachu
在这里插入图片描述

(4) 确定数据表

我们可以通过mySQL数据库自带的information_schema来知道,这个information_schema就是用来存储mySQL数

### Pikachu靶场中的SQL注入字符型攻击方法 在Pikachu靶场中,字符型SQL注入是一种常见的漏洞利用形式。当应用程序未能正确过滤用户输入并将其直接拼接到SQL语句中执行时,就可能发生这种类型的攻击。 对于字符型SQL注入,在`http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince%22&submit=%E6%9F%A5%E8%AF%A2`这个URL中,参数`name`是一个字符串类型的数据[^2]。如果该参数未被适当处理,则可以通过构造特定的输入来操纵后台SQL查询逻辑。 #### 构造恶意请求 假设存在如下SQL查询: ```sql SELECT * FROM users WHERE username='vince"' ``` 通过向`name`参数附加特殊字符(如单引号),可以改变原有SQL语句结构,从而实现不同目的的操作。例如,尝试闭合当前条件并通过OR子句绕过验证: ```bash http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=vince'%20or%20'1'%3D'1 ``` 这会使得最终形成的SQL变为: ```sql SELECT * FROM users WHERE username='vince' or '1'='1' ``` 上述操作将返回所有符合条件的结果集而不是仅限于指定用户的记录。 #### 获取更多信息 为了进一步探索数据库内部情况,可采用联合查询的方式提取额外数据。比如想要知道当前使用的MySQL版本信息,可以在原基础上追加UNION SELECT语句: ```bash http://127.0.0.1/pikchu/vul/sqli/sqli_str.php?name=vince'%20union%20select%20@@version--+ ``` 此命令将会把服务器端运行环境下的MySQL版本展示出来。 需要注意的是,实际渗透测试过程中应当遵循合法授权范围内的活动准则,并且只针对允许测试的目标实施此类技术研究。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值