关于报错注入获取数据不全问题解决

admin 2022年11月11日15:01:07评论96 views字数 703阅读2分20秒阅读模式

0x00 介绍

在使用 updatexml extractvalue exp floor进行报错(双查询)注入时会出现如数据的数量过多导致无法一次性显示所有,或者在查询md5加密的密码时由于密码长度过长而只能获取一半,本次教程就来解决这个问题

0x01 解决办法

pikachu靶场为例

在使用concat时在数据两边都加上 0x7e或者别的字符编码,保证在获取的数据结果两边都出现这个符号就能证明获取的数据是完整的

如下图,ox7e代表 ~ ,可以看到在pikachu两边都出现了它,说明数据库的名字是pikachu

关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决

a.查询多个数据获取不全

但是有时候例如下面情况是显示前面的~,后面的没显示,就说明我们的数据获取不全

关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决

这时候我们可以控制显示的数量,直到后面的也显示为止

第一种解决办法

不用group_concat换成limit来单条显示,一条一条查(group_concat和limit不能同时使用)

关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决
关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决

。。。。。


第二种方法

是创建一个临时表t,作为最新创建的几条数据的临时表,再到临时表t中取数据:

b.同一条数据获取不全

我们都知道存储在数据库中的密码一般都是md5加密的,如果太长则不能全部显示

关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决

我们则可以用截取函数来一半一半获取

# 先获取前16位
' or updatexml(1,concat(0x7e,(select mid(password,1,16) from users limit 0,1),0x7e),2) or '
# 再获取后面16位
' or updatexml(1,concat(0x7e,(select mid(password,17,16) from users limit 0,1),0x7e),2) or '
关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决
关于报错注入获取数据不全问题解决关于报错注入获取数据不全问题解决

然后将两段合起来就行了

FROM:无垠の安全

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月11日15:01:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   关于报错注入获取数据不全问题解决http://cn-sec.com/archives/1404281.html

发表评论

匿名网友 填写信息