PyxYuYu/MyBlog

Python学习记录(十八):Awvs自动化扫描&XML分析

PyxYuYu opened this issue · 0 comments

The first wealth is health.

0x01 Wooyun

  • SQL 注入
    • HTTP 头注入
  • VPN 弱口令
    • test/test
0x02 Seebug

  • PHP 代码审计 -- intvalunset
    • 参数在 common.inc.php 中被 intval ,但是在具体的页面内,被重新定义了,而没有 intval,直接就被带入到 SQL 语句中参与查询,导致 SQL 注入的发生
    • 参数设置为全局参数,但是没有 unset 导致可以替换任意为空,被带入到 SQL 中,导致注入的产生
0x03 Awvs自动化扫描

  • xml 文件解析利用 xml.dom 模块 from xml.dom import minidom
    • minidom.parse(filename) 加载读取 XML 文件
    • dom = minidom.parse(filename)
    • dom.documentElement 获取 XML 文档对象
    • root = doc.documentElement
    • nodes = root.getElementsByTagName(TagName) 获取 XML 节点对象集合
    • node.getAttribute(AttributeName) 获取 XML 节点属性值
    • node.childNodes 返回子节点列表
    • node.childNodes[index].nodeValue 获取 XML 节点值
    • node.firstChild 访问第一个节点,等价于 pagexml.childNodes[0]
    • doc = minidom.parse(filename)
    • doc.toxml('UTF-8') 返回 Node 节点的 XML 表示的文本
    • Node.attrubutes["id"]
    • a.name 就是上面的 id
    • a.value 属性的值,访问元素属性
    • XML 文档编码: 如果不写明 encoding 的话,都是认为文件是 UTF-8 编码
    • DOMDocument Object Model 的简称,以对象树来表示一个 XML 文档的方法,使用它的好处就是可以非常灵活的在对象中进行遍历
    • 元素和节点
      • 元素就是标记,成对出现, XML 文档就是由元素组成的,但元素和元素之间可以有文本,在 minidom 中有许多的节点,元素也属于节点的一种,不是叶子节点,即它存在子节点,还存在一些叶子节点,如文本节点,它下面不再有子节点
    • dom = minidom.parse(filename) 得到 dom 对象
    • root = dom.documentElement 得到文档元素对象
    • 每一个节点都有它的 nodeName nodeValue nodeType
    • root.nodeName 获得根节点名字
    • nodeValue 是节点的值,只对文本节点有效
    • nodeType 是节点的类型
    • 子元素、子节点的访问
      • 可以使用 root.getElementsByTagName(TagName) 方法,返回一个列表
    • 如果想得到某个节点下面所有的子节点,可以使用childNodes属性
    • 总结一下,使用 minidom 来读取 XML 中的信息
      • 导入 xml.dom.minidom 模块,生成 dom 对象
    • 得到文档对象(根对象)
    • 通过 getElementsByTagName() 方法和 childNodes 属性(还有其他一些方法和属性)找到要处理的元素
    • 取得元素下文本节点的内容
0x04 一天总结

  • 代码审计中,参数在 common 中被 intval ,结果却在用到时被重定义导致没有 intval ,结果被带入 SQL
  • xml.dom.minidom 模块的使用