首页 > 其他分享 >xpath

xpath

时间:2024-07-13 20:20:10浏览次数:7  
标签:xpath XML 读取 文档 user 节点 猜解

xpath

XPath是XML语言中的一种路径,可以用来确定XML文档中部分内容位置的语言

XPath注入原理

  • 也与SQL注入类似,是网站对未经处理的用户输入 进行查询时产生的,用户可提交恶意代码,获取完整的XML文档

  • XPath有很多节点,包括元素节点,属性节点和文本节点

语法

查询

查询loginID为abc的所有user数据,当用户提交正确的loginID和passwd时 能返回结果

image-20240713200632481

若是在loginID字段中输入 'or 1=1且在passwd中输入 'or 1=1就能进行绕过,获取数据

注入绕过

参考XPATH注入学习

连用两个or 进行绕过

image-20240713200529340

']|//|//['

SQL有 'or '1'='1XPATH有 ']|//*|//*['

万能密码

x' or 1=1 or ''='

盲注

  • 用于不清楚XML文档构架,没回显情况下
  • 判断根节点下的节点数
  • 判断根节点下节点长度&名称
  • .....
  • 重复猜解完所有节点,获取最后的值

从根节点开始判断:

image-20240713200700758

判断根节点下的节点长度为8:

image-20240713200712094

猜解根节点下的节点名称:

image-20240713200729787

猜解出该节点名称为accounts

image-20240713200827217

猜解accounts下的节点名称:

image-20240713200845097

accounts下子节点名称为user

image-20240713200925977

第一个user节点的子节点长度为8:

image-20240713200952133

读取user节点的下子节点

image-20240713201004868

最终所有子节点值验证如下:

image-20240713201018142

继续猜解:

image-20240713201030557

均为 false,不再有子节点,则可以尝试读取这些节点的值

第一个user下的username值长度为6:

image-20240713201047047

读取第一个user下usernaem的值

image-20240713201058955

可依次读取所有的子节点的值,第二user节点的子节点值读取方式:

image-20240713201116617

重复上边步骤即可

节点类型

七种结点类型:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或成为根节点)

  • element (元素)
  • attribute (属性)
  • text (文本)
  • namespace (命名空间)
  • processing-instruction (处理指令)
  • comment (注释)
  • root (根节点)

表达式

表达式 描述
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
.. 选取当前节点的父节点
@ 选取属性或 @*:匹配任何属性节点
* 匹配任何元素节点

通配符

通配符 描述
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点

标签:xpath,XML,读取,文档,user,节点,猜解
From: https://www.cnblogs.com/Yolololo/p/18300630

相关文章

  • Python Selenium+cookie+XPATH爬取数据
    以某科研基金信息平台为例,写了一个基于selenium的web自动化爬虫。不带验证码防反爬以及代理ip池,是最基础的自动化工具爬虫。一、首先,此平台需要登录后才能正常访问,否则数据不全,因此需要登录后获取cookie,以便selenium能够以登录状态运行1.F12打开开发者工具,找到network(网络),在登录......
  • 【漏洞复现】Geoserver XPath表达式注入致远程代码执行漏洞(CVE-2024-36401)
    0x01产品简介GeoServer是一个开源服务器,用于共享、处理和编辑地理空间数据。它支持多种地图和数据标准,使用户能够通过网络访问和操作地理信息系统(GIS)数据。0x02漏洞概述2024年7月,互联网上披露Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401),攻击者无需认证即可利......
  • Python从0到100(三十三):xpath和lxml类库
    1.为什么要学习xpath和lxmllxml是一款高性能的PythonHTML/XML解析器,我们可以利用XPath,来快速的定位特定元素以及获取节点信息2.什么是xpathXPath,全称为XMLPathLanguage,是一种用于在XML文档中进行导航和数据提取的语言,可用来在HTML\XML文档中对元素和属性进行遍......
  • selenium03_控制台调试xpath/css语法,代码执行jQuery
    1.控制台调试Xpath语法示例: 按F12,调出控制台Console,调试Xpath语法的格式:$x("xpath语法")。如:$x("//*[@id='kw']")    2.控制台调试css语法调试css语法的格式:$("css语法")。如:$("#kw")   3.代码执行jQueryjQuery是从css语法演变过来的,其实就是css,用到css语言......
  • 麻烦问一下xpath标签定位的这个索引是做什么用的?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【杨又串......
  • 5、爬虫-数据的提取-xpath-html中提取
    从哪里提取:html、json、xml实现方式:正则、截取、xpath、css、bs4 这里使用xpath工具:  ·安装:pipinstalllxml """使用xpath工具提取网页中视频的标题"""importrequestsfromlxmlimportetree#使用xpathheaders={"User-Agent":"Mozilla/5.0......
  • 9、爬虫-xpath-selenium爬取网页隐藏元素
    安装:pipinstalllxml1、导入:fromlxmlimportetree2、创建对象:  tree=etree.XML(xml文件)  tree=etree.HTML(html文件)  等3、找标签:  tree.xpath("//book/name/text()")4、语法:  text()表示取节点标记的文字  tree.xpath("//book/publisher[3]/text()......
  • 爬取同样内容,xpath方法会比bs4要慢很多吗?
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【沐子山树】问了一个Python网络爬虫的问题,问题如下:爬取同样内容,xpath方法会比bs4要慢很多吗?二、实现过程这里【Kimi】给了个思路如下:爬取网页内容时,使用XPath和BeautifulSoup(bs4)这两种方法的速度差异通常不会特别......
  • selenium框架学习之获取文本框内容和Xpath元素不唯一
    本周一直写创建简历的测试用例,由于元素和内容过多,只能把各个方法单独封装,然后在测试用例里面使用,以此优化用例。在封装的时候遇到的一些问题,和大家说下怎么解决~1. 获取文本框输入---新增了一个【输入微信号】的功能模块,需要同时测试点击【同手机】和输入文本的功能。于是......
  • 用Xpath制作简单爬虫工具,获取神奇宝贝百科的精灵信息
    最近开始学习Python的爬虫应用,个人比较喜欢用Xpath的方式来爬取数据,今天就结合一下Xpath方式,以“神奇宝贝百科”为素材,制作一个爬取每只宝可梦数据的工程项目准备工作神奇宝贝百科地址:https://wiki.52poke.com/wiki/主页工程项目的目标是,获取每只精灵的名字、编号、属性、特性......