SSTI 学习笔记

SSTI 学习笔记PHPSSTI(Twig)学习文章进入环境,左上角有flag,hint都检查看看flag页面显示ip,hint页面源代码有提示考虑XFF头或者referer头测试一下注:这里不用加上“;”出来了pythonflaskssti学习文章原理:因为对输入的字符串控制不足,把输入的字符串当成命令执行。漏洞产生主要原因:render_template渲染函数的问题渲染函数在渲染的时候,往往对用户输入的变量不做渲染,..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

PHP SSTI(Twig)

学习文章

进入环境,左上角有flag,hint

都检查看看

SSTI 学习笔记

flag页面显示ip,hint页面源代码有提示

SSTI 学习笔记

SSTI 学习笔记

 考虑XFF头或者referer头

SSTI 学习笔记

测试一下

SSTI 学习笔记

注:这里不用加上“;”

SSTI 学习笔记

出来了

SSTI 学习笔记

 

python flask ssti

学习文章

原理:因为对输入的字符串控制不足,把输入的字符串当成命令执行。

漏洞产生主要原因:render_template渲染函数的问题

渲染函数在渲染的时候,往往对用户输入的变量不做渲染,
即:{undefined{}}在Jinja2中作为变量包裹标识符,Jinja2在渲染的时候会把{undefined{}}包裹的内容当做变量解析替换。比如{undefined{1+1}}会被解析成2。因此才有了现在的模板注入漏洞。往往变量我们使用{undefined{这里是内容}}
真因为{undefined{}}包裹的东西会被解析,因此我们就可以实现类似于SQL注入的漏洞

像文件包含,有一个include函数,sql注入,似乎都有些共同点,都是利用某个函数或者其他的东西,执行恶意的命令

因为我们需要执行一些命令,例如,file、read、open、ls等等

就需要去调用这些函数

这就需要用到这个魔术对象

__class__  :返回类型所属的对象
__mro__    :返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。
__base__   “返回该对象所继承的基类
// __base__和__mro__都是用来寻找基类的

__subclasses__  获取当前类的所有子类
__init__  类的初始化方法
__globals__  对包含(保存)函数全局变量的字典的引用

通过魔术对象调用我们需要的函数,例如

>>> [].__class__.__base__.__subclasses__()[2]
<class 'weakcallableproxy'>
>>> [].__class__.__base__.__subclasses__()[3]
<class 'weakproxy'>
>>> [].__class__.__base__.__subclasses__()[40]
<class 'wrapper_descriptor'>

Bugku Simple_SSTI_1

进入环境

SSTI 学习笔记

查看源代码

SSTI 学习笔记

 意思是我们需要传一个flag变量,并且提示我们有个secret_key

SSTI 学习笔记

 测试下有没有ssti

SSTI 学习笔记

 有的,我们去看看sectet_key

SSTI 学习笔记

这里是需要大写的

SSTI 学习笔记

 

Bugku Simple_SSTI_2

进入环境

SSTI 学习笔记

源代码并没有提示,只是让我们传一个pass变量

SSTI 学习笔记

 这里证明有ssti那就看看目录

SSTI 学习笔记

 一个一个看下,先看app

SSTI 学习笔记

 有flag目录

SSTI 学习笔记

Bugku Flask_FileUpload

进入环境

SSTI 学习笔记

 源代码里有提示

SSTI 学习笔记

 上传文件,会用Python执行文件返回结果

先随便上传个文件试试

SSTI 学习笔记

发现只能上传jpg或者Png

SSTI 学习笔记

 那就改下后缀继续上传

SSTI 学习笔记

 会在源代码里返回执行的结果,那么可以试试命令执行

SSTI 学习笔记

SSTI 学习笔记

抓flag

SSTI 学习笔记

 

SSTI 学习笔记

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/179436.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2015注册_vs2017试用期到了后怎么激活

    vs2015注册_vs2017试用期到了后怎么激活一般情况下要先安装IIS再装.NetFramework,这样可以保证.net的部分功能可以绑定到IIS,若安装顺序不对,可以后注册IIS,步骤如下:(1)在开始菜单中找到VS安装目录下的命令行提示符,以管理员身份运行。(2)输入IIS注册命令:aspnet_regiis-i

    2022年10月10日
    4
  • TOF相机基本知识

    TOF相机基本知识TOF是Timeofflight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后利用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到目标物的距离。TOF的深度精度不随距离改变而变化,基本能稳定在cm级。1TOF相机的特点:相对二维图像,可通过距离信息获取物体之间更加丰富的位置关系,即区分前景与后景深度信息依旧可以完成对目标图像

    2022年5月9日
    95
  • 关系型数据库的发展历史[通俗易懂]

    关系型数据库的发展历史[通俗易懂]数据库发展史信息系统产生了海量的数据,有数据必须要有数据的存放位置,无库时代:没有专门的数据库,数据大多以文件形式存放层次状数据库:使用层次状模型进行数据库设计和存放网状数据库:使用网状模型进行数据库设计和存放关系型数据库:使用关系型模型进行数据库设计和存放非关系型数据库:为适应水平扩展性和处理超大量的数据环境,近几年发展非常迅速的发展,衍生类型非常多。 本

    2022年7月16日
    13
  • navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql

    navicat连接MySQL失败,cmd也不能登录MySQL_远程连接mysql出现Clientdoesnotsupportauthenticationprotocolrequestedbyserver…的解决方案mysqladmin-uroot-ppassword123456qmysql-uroot-pALTERUSER’root’@’localhost’IDENTIFIEDWITHmysql_native_password…

    2022年10月14日
    7
  • PhpStorm 2021.5 激活码[在线序列号]

    PhpStorm 2021.5 激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    43
  • Android之include避免代码重复

    在做布局时,经常有些部分是重复的,比如title或者foot的地方,最简单的办法当然是直接复制过去,这里介绍include的用法,有过c++或者c经验的同学一看就明白了,就是把另一个布局包含进来.先看下实现的效果:里面上下各有两个文字布局,是用include包含进去的,直接看代码activity_main.xml:

    2022年3月11日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号