当前位置: 首页 > news >正文

sql结尾加刷题

找了一下mysql对extractvalue()、updatexml()函数的官方介绍https://dev.mysql.com/doc/refman/5.7/en/xml-functions.html#function_extractvalue

ExtractValue(xml_frag, xpath_expr) 

知识点

解释一下这两个参数xml_frag,是xml标记片段,第二个参数它返回由 XPath 表达式匹配的元素的第一个文本子节点的文本内容(CDATA

XPath 表达式是一种用于在 XML 或 HTML 文档中定位和选择特定节点或节点集的语法  

基础语法:                              

1.//html表示选取 HTML 文档的节点<html>

 //:表示在整个文档中进行搜索,不考虑节点的具体位置。eg://div表示选取文档中所有的<div>元素。

2.@:用@符号来选取节点的属性eg://a[@href]表示选取所有具有href属性的<a>元素。

3.[]:用于筛选节点,放在方括号[]中。eg://li[1]表示选取第一个<li>元素,//div[@class='content']表示选取class属性为content<div>元素。

4.文本子节点:元素内纯文本的内容

5.CDATA:只当作字符数据来处理,不进行额外转译

 结合实例

后面一步一步常规注入就行了,通常还会在 concat() 中加入特殊字符(如 ~0x7e#)来确保 XPath 解析失败

UpdateXML(xml_target, xpath_expr, new_xml)

知识点

1.此函数将给定的 XML 标记片段 xml_target 的单个部分替换为新的 XML 片段 new_xml,然后返回更改后的 XML。xml_target 中被替换的部分与用户提供的 XPath 表达式 xpath_expr 匹配。如果没有找到与 xpath_expr 匹配的表达式,或者找到了多个匹配项,该函数将返回原始的 xml_target XML 片段。所有三个参数都应该是字符串。

(/G是以垂直形式查询结果而非表格)

2.符号:

*:通配符eg:/*/b ,/*/b/* 

|:联合  eg://b|//c 匹配 XML 目标中的所有 bc 元素

g[@attribute="value"]:eg://b[@id="idB"] 在片段 <a><b id="idA"/><c/><b id="idB"/></a> 中匹配第二个 b 元素,//*[attribute="value"]匹配具有 attribute="value" 的任何元素

//b[@c="x"][@d="y"]:匹配在给定 XML 片段中任何位置出现的元素 <b c="x" d="y"/>

//b[@c="23"]|//b[@c="17"]:相当于//b[@c="23" or @c="17"],匹配 c 属性的值为 2317 的所有 b 元素

结合实例

忘记加group_concat,也可以limit一个一个查注意是limit0,1

而不是limit(0,1),哦买噶做的时候搞错了一直不行

后面常规注入就行了,本来做过一遍,没保存没掉了

Post

Pass11

找到一篇文章对原理解释很清晰

1-Web安全——初识SQL注入漏洞_select * from user where name='123' or '1'='1-CSDN博客

从网上找的源码,便于理解post传参的查询语句

界面变成登陆页面

随便输入,抓包,是post传参

报错

admin显示登陆成功

尝试--+ 登陆失败,但是-- -登陆成功,过滤了--+

尝试万能密码登陆成功

order by1,2可任意1,2,3不行

说明有两列

判断回显位1,2都可,

数据库名字回显,其实大体和get差不多

Pass12

"报错,闭合是")

尝试改过后的万能密码得到部分信息

两列,后面步骤一样了

Pass13

')闭合

万能密码无回显,用报错注入

Pass14

双引号闭合

但是没有信息回显

虽然1,2时没有有效信息,尝试1,2,3的时候爆错,说明有2列

无回显还是试试爆错注入,注意payload怎末写别搞错掉

后面一样了

Pass15

布尔盲注

无论试什么都没得回显,

尝试万能密码成功登录,所以是单引号闭合,找到注入点,尝试报错注入

还是没得回显,可能过滤了被,只能用布尔盲注了注意payload里是or

好的后面按着做就行了,哦哦最好还是先用length把长度爆出来,当然了也可以用if语句构造延时盲注,我看别人的wp还可以用sqlmap做

sqlmap

下载成功,这篇文章对sqlmap的使用解释的非常清楚SQLMAP的下载安装和使用(Windows)_sqlmap下载-CSDN博客

算了,搞了半天环境变量也添加了,就是显示无法运行我也不知如何是好

 Pass16 

和pass15一样,就是闭合改为")

Pass17

页面提醒重置密码,无论怎摸样都没有回显,查看源码,只对uname进行了过滤,所以uname必须为真

直接爆破出用户名admin

在passwd位置单引号,爆错,单引号闭合

后面就在password位置报错注入就ok了


http://www.mrgr.cn/news/95992.html

相关文章:

  • 23种设计模式-享元(Flyweight)设计模式
  • 鸿蒙特效教程09-深入学习animateTo动画
  • 23种设计模式-原型(Prototype)设计模式
  • rabbitmq承接MES客户端服务器
  • 大模型重点1 【综述-文字版】
  • 23种设计模式-桥接(Bridge)设计模式
  • C++锁: 读锁,递归锁,超时锁
  • 2017年计算机真题
  • STM32 - 在机器人、自动化领域,LL库相比HAL优势明显
  • 【解决】Mybatis-plus2.x升级到3.x
  • mac vim命令快捷键
  • MapStruct动态生成实现
  • 【AI】Orin Nano+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
  • mysql高级,mysql体系结构,mysql引擎,存储过程,索引,锁
  • (UI自动化测试web端)第二篇:元素定位的方法_css定位之ID选择器
  • uniapp动态循环表单校验失败:初始值校验
  • 解决Spring Cloud OpenFeign端点未暴露问题
  • Modbus RTU ---> Modbus TCP透传技术实现(Modbus透传、RS485透传、RTU透传)分站代码实现、协议转换器
  • 反序列化漏洞
  • Docker+Ollama+Xinference+RAGFlow+Dify部署及踩坑问题