[BJDCTF2020]The mystery of ip1

news/2024/2/28 11:03:38

提示

  1. ssti模板注入
  2. head头x-forwarded-for

每一次做题的最开始流程都大致因该是

  1. 信息收集
  2. 找可以操控的地方

查看hint页面的源代码又发现它提示说

####你知道为什么会知道你的ip吗

查看flag页面

从刚才给我的提示以及他这里显示的我的ip,大概找到了我可操作的可控点

既然它会读取我访问它的ip并显示,那么我可以通过修改我的ip以达到执行命令的效果

这里抓包使用x-forwarded-for验证

从它返回的页面来看是可以利用的

现在就是判断这里应该怎样去利用

从经验上来判断这里很像是ssti模板注入

尝试验证一下

这里传入了${7*7}页面返回了执行过后的结果说明这里存在ssti注入

!!!!如果报错或者不执行也不一定是错的,最后会讲解

现在判断是那种模板

这里传入a{*comment*}b后回显ab,说明这里是smarty模板

应为smarty是php的模板所以直接尝试rce

{system('ls')}

这里回显出flag.php文件,直接cat

这里并没有回显

猜测这里只是一个障眼法

看一下跟目录

出现flag,这里应该就没问题了

获得flag

SSTI模板注入

SSTI就是服务器端模板注入

当前使用的一些框架,比如python的flask,php的tp,java的spring等一般都采用成熟的的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲染展示给用户。

漏洞触发的原因未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。

大致意思呢就是:

没有将数据区于语句分开,导致他们被当成一个整体了

$output = $twig->render("Dear {first_name},", array("first_name" => $user.first_name) );
以上并不会早场ssti漏洞注入,应为执行区域和数据区域不在同一个地方
$output = $twig->render("Dear " . $_GET['name']);
这里呢就会造成ssti漏洞,这里接受数据后就直接执行了,可能会方便用户使用,但是也同时会被别有用心的人构造payload来注入

可通过一下方式来判断是什么模板从而进行下一步的渗透

输入{{7*'7'}}返回49的是jinja2模板。返回7个7的是twig模板

!!!!!!!!!!最后,ssti主要的还是知道他是那种模板,知道了以后去网上搜怎么注入,怎么查版本信息,就能获得更过注入点。


http://www.ppmy.cn/news/1246488.html

相关文章

Find My键盘|苹果Find My技术与键盘结合,智能防丢,全球定位

键盘是最常用也是最主要的输入设备,通过键盘可以将英文字母、汉字、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。还有一些带有各种快捷键的键盘。随着时间的推移,渐渐的市场上也出现独立的具有各种快捷功能的产品单独…

初识Linux(2).妈妈再也不用担心我Linux找不到门了。

文章目录 前言 1.man指令(重要):例如: 2.cp指令(重要):例如:把123.txt复制到a目录中类似window如下操作: 3.mv例如:类似window如下操作: 4.nano例…

NX二次开发UF_MTX3_rotate_about_axis 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_rotate_about_axis Defined in: uf_mtx.h void UF_MTX3_rotate_about_axis(const double rotation_axis [ 3 ] , double rotation_angle, double mtx [ 9 ] ) overview 概述…

0 NLP: 数据获取与EDA

0数据准备与分析 二分类任务,正负样本共计6W; 数据集下载 https://github.com/SophonPlus/ChineseNlpCorpus/raw/master/datasets/online_shopping_10_cats/online_shopping_10_cats.zip 样本的分布 正负样本中评论字段的长度 ,超过500的都…

shell脚本正则表达式

目录 一. 正则表达式定义 二. 基本正则表达式 1. 元字符 2. 表示次数 3. 位置锚定 4. 分组或其他 二. 拓展正则表达式 1. 表示次数 2. 表示分组 一. 正则表达式定义 正则表达式(REGEXP ):由一类特殊字符及文本字符所编写的模式&…

LeetCode-面试题08.01 三步问题 C/C++实现 超详细思路及过程[E]

🎈归属专栏:深夜咖啡配算法 🚗个人主页:Jammingpro 🐟记录一句:摆了一个周末了,不能摆了,努力起来!! 文章目录 LeetCode-面试题08.01 三步问题🚗题…

hadoop集群环境搭建和常用命令

搭建过程 1.集群配置 cat /etc/hosts 2.步骤安装 Java是否安装 which java 或者 echo $JAVA_HOME 3.解压安装包 tar -zxvf 4.修改配置文件 cd $HADOOP_HOME/etc/hadoop/ 下面是需要修改的配置文件 hadoop-env.sh yarn-env.sh hdfs-site.xml core-site.xml mapred-site.xml yar…

vue3使用高德地图获取经纬度

首先 安装依赖 cnpm i amap/amap-jsapi-loader --save <script setup> import { onMounted, reactive, ref } from vue import AMapLoader from amap/amap-jsapi-loaderconst map ref(null) const mapData reactive({map: {},keyword: ,selectedLocation: {},selecte…

代码之难题:程序员的解密之路

前言&#xff1a;代码中的谜团 编程世界中充满了各种难题&#xff0c;就如同一道道难以捉摸的谜团。程序员们在日常工作中常常需要面对如Bug、性能优化、跨平台兼容性等技术难题&#xff0c;而解决这些问题往往需要像解密高手一样的智慧和技巧。 1. Bug调试&#xff1a;追踪隐…

my.ini添加了一句后又删除了,重启却失败的解决办法

背景&#xff1a;添加了一句&#xff0c;然后保存了&#xff0c;之后打开删掉了&#xff0c;结果就无法启动了&#xff0c;最后另存为ANSI格式&#xff0c;再把这个格式文件覆盖my.ini即可解决

【LeeCode】209.长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#xff1a;…

深度学习黎明时期的LeNet:揭开卷积神经网络的序幕

在深度学习的历史长河中&#xff0c;Yann LeCun 的 LeNet 是一个里程碑式的研究成果&#xff0c;它为后来的卷积神经网络&#xff08;Convolutional Neural Networks&#xff0c;CNN&#xff09;的发展奠定了基础。LeNet 的诞生标志着深度学习黎明时期的到来&#xff0c;为人工…

算法刷题-动态规划3(未完待续---------

算法刷题-动态规划3&#xff09; 01背包问题最后一块石头的重量 01背包问题 一篇文章吃透背包问题 大佬讲解什么是背包问题 问题分析&#xff1a; 面对这么多的物品&#xff0c; 选择一个个地来装入背包&#xff0c;背包的承重量不断地增加&#xff0c;二维数组中&#xff0c;…

【Web】[GKCTF 2021]easycms

直接点击登录按钮没有反应 扫目录扫出来/admin.php 访问 弱口令admin 12345直接登录成功 点开设计--主题--自定义 编辑页头&#xff0c;类型选择php源代码 点保存显示权限不够 设计--组件--素材库 先随便上传一个文件&#xff0c;之后改文件名称为../../../../../system/tmp…

log4j2的记录流程介绍(附log4j2日志的xml配置文件)

log4j2日志的xml配置文件 <?xml version"1.0" encoding"UTF-8"?> <!--Configuration后面的status&#xff0c;这个用于设置log4j2自身内部的信息输出&#xff0c;可以不设置&#xff0c;当设置成trace时&#xff0c;你会看到log4j2内部各种详细…

西南科技大学C++程序设计实验一(C++基础知识)

目录 一、实验目的 二、实验任务 三、预习内容(复习书中前3章内容,说明C++相对于C的扩展有哪些?) 四、问题思考与讨论 一、实验目的 1.熟悉编程环境 2.掌握程序调试方法。 3.熟悉枚举类型、结构体类型等自定义数据类型的使用 4.熟悉函数的定义、说明与使用 5.熟悉引用…

js moment时间范围拿到中间间隔时间

2023.11.27今天我学习了如何对只返回的开始时间和结束时间做处理&#xff0c;比如后端返回了&#xff1a; [time:{start:202301,end:202311}] 我们需要把中间的间隔渲染出来。 [202301,202302,202303,202304,202305,202306,202307,202308,202309,202310,202311] 利用moment…

Leetcode刷题之设计循环队列(C语言版)

Leetcode刷题之设计循环队列&#xff08;C语言版&#xff09; 一、题目描述二、题目示例三、题目解析Ⅰ、typedef structⅡ、MyCircularQueue* myCircularQueueCreate(int k)Ⅲ、bool myCircularQueueIsEmpty(MyCircularQueue* obj)Ⅳ、bool myCircularQueueIsFull(MyCircularQ…

怎么把dwg格式转换pdf?

怎么把dwg格式转换pdf&#xff1f;DWG是一种由AutoCAD开发的二维和三维计算机辅助设计&#xff08;CAD&#xff09;文件格式&#xff0c;它的名称是“绘图&#xff08;Drawing&#xff09;”的缩写。DWG文件通常包含了设计图纸、模型和元数据等信息&#xff0c;并且被广泛用于工…

DHCP协议及实验omnipeek抓包工具分析 IPv4协议

一 抓包命令 adb shell tcpdump -i wlan0 -w /data/tcpdump.pcap 抓包后截图如下 二 DHCP是什么 2.1 DHCP定义 DHCP( Dynamic Host Configuration Protocol, 动态主机配置协议)定义: 存在于应用层(OSI) 前身是BOOTP(Bootstrap Protocol)协议 是一个使用UDP(User …
最新文章