首页 > 其他分享 >web入门-361

web入门-361

时间:2024-12-03 16:34:23浏览次数:4  
标签:web 入门 index ssti target 引擎 class 模板 361

这是一个ssit漏洞注入基础题
ssit介绍:SSTI 就是服务器端模板注入( Server-Side Template Injection )
当前使用的一些框架,比如 python 的 flask , php 的 tp , java 的 spring 等一般都采用成熟的
的MVC的模式,用户的输入先进入Controller控制器,然后根据请求类型和请求的指令发送给对
应Model业务模型进行业务逻辑判断,数据库存取,最后把结果返回给View视图层,经过模板渲
染展示给用户。
漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容
的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因
而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复
杂性。
凡是使用模板的地方都可能会出现 SSTI 的问题,SSTI 不属于任何一种语言,沙盒逃逸也不是,
沙盒逃逸只是由于模板引擎发现了很大的安全漏洞,然后模板引擎设计出来的一种防护机制,不
允许使用没有定义或者声明的模块,这适用于所有的模板引擎。
开始注入:

这是jinja2模板

这里使用到了__class__、basesubclasses()三种魔术方法,用处大概就是获取类,获取基类,获取所有类
后面便是寻找我们要利用的函数,寻找那些有回显的或者可以执行命令的类
大多数利用的是 os._wrap_close 这个类
我第一次还是纯手工找的(╯°□°)╯︵ ┻━┻
利用脚本寻找:

with open(r".\test.txt", "r") as input_file:
    ssti_class = input_file.read().split(",")
    print("ssti_class 内容:", ssti_class)
target = "os._wrap_close"
index = -1
for i in range(len(ssti_class)):
    if target in ssti_class[i].strip():
        index = i
        break
if index != -1:
    print(f"目标值 '{target}' 的下标为 {index}, 对应值是: {ssti_class[index].strip()}")
else:
    print(f"未找到目标值 '{target}'")

找到下标

进行rce

其中用到魔术方法:
init 方法进行初始化类
globals 获取到方法内以字典的形式返回的方法、属性等


获得flag
这题展现了ssit最最基础的注入形式

标签:web,入门,index,ssti,target,引擎,class,模板,361
From: https://www.cnblogs.com/govced/p/18584378

相关文章

  • java web毕业设计开发常用的一些开源库!
    以下是一个关于JavaWeb网页开发者常用开发工具库的介绍表格,包括库的名称、介绍以及官方链接。库/工具名称介绍官方链接JDK(JavaDevelopmentKit)JDK是JavaWeb开发的基础,包含了Java编程语言的开发工具,如编译器、调试器等。它是进行JavaWeb开发所必需的。http://java.sun.com......
  • 网络安全必看—全网最全的命令执行绕过总结分享,黑客技术零基础入门到精通教程
    1基础知识$包裹的内容会被bash进行解析如下1.$""2.$''3.$()4.\`$id\`$包裹的内容增添包裹,有可能会持续深入解析如下,我们在test目录新建了一个whoami,当我们用(l......
  • 从实战的角度分析渗透测试究竟需要学习了解的知识点,黑客技术零基础入门到精通教程建议
    前言最近有很多人询问,自己明明OWASPTop10都学的差不多了,各种靶场也复现的差不多了,Burpsuite、goby、awvs、dirsearch等等工具也是用的丝滑,但为什么就是感觉挖不到洞呢基础知识已经准备的差不多了,现在可能缺乏的是挖洞时间的思路,针对特定场景下的渗透套路,这个一般可以学......
  • pyad(Python Active Directory)入门教程
    今年换了工作,需要比较频繁的操作AD域控,但是之前同事写的PS脚本比较不灵活(主要是我也不太会PS),然后就想能不能使用Python来编写一些自动化程序操作域控,便找到了pyad这个库。pyad是一个第三方Python库,用于管理MicrosoftActiveDirectory,可以将AD对象表示为Python对象(ADUser、ADGrou......
  • 第1章:CSS简介 --[CSS零基础入门]
    1.什么是CSSCSS(层叠样式表,CascadingStyleSheets)是一种用于描述HTML或XML(包括各种XML方言如SVG、XHTML等)文档表现的样式语言。CSS的主要目的是将网页的内容与它的表现形式分离,从而使得开发者能够更灵活地控制页面的布局和外观。主要特点分离内容与样式:CSS允许你将网......
  • 等保测评2.0超详细解读(0基础入门到精通),只要收藏这一篇就够了!!
    一、等级保护介绍1.1什么是等级保护网络安全等级保护是指对国家重要信息、法人和其他组织及公民的专有信息以及信息和存储、传输、处理这些信息的信息系统分等级实行安全保护,对信息系统中使用的信息安全产品实行按等级管理,对信息系统中发生的信息安全事件分等级响应、处置......
  • 2024最全CTF入门指南、CTF夺旗赛及刷题网站(建议收藏!)
    前言CTF(CaptureTheFlag)中文译作:夺旗赛CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON......
  • 渗透测试入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    前言转眼间,从大三开始学安全,到现在也有五年了,也算是对渗透测试有一定理解,公众号准备出一些入门教程,以实操为主,希望可以帮助到想入门渗透测试的小白。如果觉得有用,可以在文章后面支持一下我,作为我写下去的动力。1.什么是渗透测试渗透测试就是模拟真实黑客的攻击手法对目......
  • JS逆向分析入门
    1.1基础入门1.1.1接口抓包以QuotestoScrape为例F12或Ctrl+Shift+i打开开发者工具在响应中能够看到我们想要的数据,说明这个接口就是我们要找的接口。1.1.2请求接口确定我们要找的接口之后,首先尝试对该接口井进行请求,传入参数和表单信息,查看能否请求成功。......
  • 视频流媒体播放器EasyPlayer.js出现WebGL: CONTEXT_LOST_WEBGL错误的原因
    选择一个兼容性好、性能稳定的H5视频播放器非常重要。市面上有几款实用的H.265网页播放器,例如EasyPlayer.js播放器,它支持H264和H265视频格式,并且针对低延迟直播进行了优化。那么播放器为什么会显示WebGL:CONTEXT_LOST_WEBGL错误呢?WebGL的CONTEXT_LOST_WEBGL错误通常表示WebGL......