判断后端语言
php:Apache和linux
asp .NET:iis
Java:Tomcat、Resin、JBoss
看返回包'werkzeug'就是Python
判断方法很多

一、知识点

PYC文件反编译
Python-web-ssti
SSTI模板注入利用分析

二、PYC反编译

php源码没有加密,直接看的
Java只有很多class和jar 反编译
.NET有dll文件 反编译

python中也有类似文件,称为PYC

我们所看到的pyc文件,其实是PyCodeObject,是Python编译后的结果。当python程序运行时,编译的结果是保存于PyCodeObject,程序运行结束后,Python就将PyCodeObject写入到pyc文件中,这是个字节码文件。
所以当你下一次运行这个程序时,程序会现在pycache文件夹里找pyc文件,而如果找到了,就省去了编译的过程,节省了时间。
https://blog.csdn.net/weixin_42183408/article/details/88557812

三、SSTI模板注入

1、什么是模板?

顾名思义,就类似我博客的主题
就是在更改的时候会传递数据到服务器端,如果数据被攻击者篡改,那么在回显的html页面中就会显示

比如一个Python的模板,报错页面接收传入的参数,就可以先测试{{2*2}}是否输出4
输出就带变服务器用Python执行代码,就可以传入内置的后门,命令,任意代码执行
回显在页面上,或者反弹shell到kali

2、代码举例

<div class="center-content error">
        <h1>Oops! That page doesn't exist.<h1>
        <h3>%S可控值 留给数据库语句去操作取出数据显示</h3>
</div>

一定会有接收数据的地方,就是我们注入数据的地方
只要模板语言能做的,我们都能做(实则不然,有过滤)

3、如何判断检测SSTI漏洞存在?

输入的数据会被浏览器利用当前脚本语言调用解析执行
如果能看到源码,看到引用了常见模板引擎和内置函数就说明是ssti
找注入点,过滤了什么,flag在哪个文件中,一般命令执行、代码执行、文件读取
要对脚本很熟悉啊,找对位置

如:flask   render_template_string()

4、SSTI安全问题在生产环境哪里产生?

-存在模版引用的地方,如404错误页面展示
-存在数据接收引用的地方,如模板解析获取参数数据

Python: 使用像Jinja2、Mako、Django等模板引擎的Python Web应用程序容易受到SSTI攻击。这些框架在处理用户输入时,如果不正确地进行了过滤或者模板渲染不安全,就容易受到攻击。

Ruby: Ruby on Rails框架使用ERB(Embedded Ruby)作为默认的模板引擎,如果开发人员未正确处理用户输入,就可能导致SSTI漏洞。

Java: 基于Java的Web应用程序通常使用像FreeMarker、Thymeleaf等模板引擎。如果这些模板引擎未受到适当的保护或者没有正确地过滤用户输入,就可能受到SSTI攻击。

JavaScript/Node.js: 一些Node.js应用程序使用像Handlebars、Pug等模板引擎。如果这些模板引擎在处理用户输入时不安全,就可能存在SSTI漏洞。

补充

存在于Python、php、js中,Java语言比较少,具体看下图
一般要白盒,慢慢审计,黑盒的话就要看提示了,实战中少,CTF多
总而言之,要很强的编程能力,尤其py和常见的模板

相关漏洞介绍链接:

https://blog.csdn.net/m0_47418965/article/details/122385067?spm=1001.2014.3001.5501

https://www.cnblogs.com/bmjoker/p/13508538.html#:~:text=%E5%A5%BD%E4%B9%85%E6%B2%A1%E6%9B%B4%E6%96%B0%E5%8D%9A%E5%AE%A2%E4%BA%86%EF%BC%8C%E7%8E%B0%E5%9C%A8%E4%B8%BB%E8%A6%81%E5%9C%A8%E4%BD%9C%E6%BA%90%E7%A0%81%E5%AE%A1%E8%AE%A1%E7%9B%B8%E5%85%B3%E5%B7%A5%E4%BD%9C%EF%BC%8C%E5%9C%A8%E5%B7%A5%E4%BD%9C%E4%B8%AD%E4%B9%9F%E9%81%87%E5%88%B0%E4%BA%86%E5%90%84%E7%A7%8D%E8%AF%AD%E8%A8%80%E5%AF%BC%E8%87%B4%E7%9A%84%E4%B8%80%E4%BA%9BSSTI%EF%BC%8C%E4%BB%8A%E5%A4%A9%E5%B0%B1%E6%9D%A5%E5%A4%A7%E6%A6%82%E8%AF%B4%E4%B8%80%E4%B8%8BSSTI%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%E8%BF%99%E4%B8%AA%E8%80%81%E7%94%9F%E5%B8%B8%E8%B0%88%E7%9A%84%E6%BC%8F%E6%B4%9E

https://xz.aliyun.com/news/7341

csdn搜索 kracer127

常见的CMS模块SSTI注入源代码下载:

https://github.com/wibiti/uncompyle2

trim 过滤空格
echo或者var_dump、eval
web渗透测试中怎么判断后端源码是什么,用什么编写的?---->自行ai

小结

CTF中常见SSTI,要看懂和利用Python代码,熟悉各类模板引擎,常见绕过

欢迎来访 这是我的小窝~ 网安弱鸡 健身屌丝 好不容易搭出来的 大佬略过我
最后更新于 2025-07-26