一,python内置PYC反编译:
pyc文件,就是python的代码生成的字节码文件,有些类似于Java中的.class文件,pyc文件可以经过本地python解释器进行运行,从而实现跨平台。
也就是说我们得到了.pyc文件,就是得到了.py文件。
pyc解密网站:https://tool.lu/pyc/
一般在逆向里面会用到,主要是在ctf里面会考。
下面才是重点:
二,SSTI(各语言都可能出现该漏洞)总结:
- 漏洞成因:
服务端接收了用户的恶意输入以后,未经任何处理就将其作为应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破环模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell等问题。其影响范围主要取决于模版引擎的复杂性。
下图为模板+数据的简单组合:
如果这里的数据替换为代码的话,应该就是这样:
这种一般出现在web应用里面。
简而言之,就是一个模板文件就是一个框架,基本的东西都帮你干了,你只需要把你的数据填补进去,然后被模板引擎渲染之后就是一个网站了,那如果填入的数据不干净的情况下,被框架接收到渲染之后就有可能造成漏洞。SSTI漏洞常见于一些报错页面,不是简单的报错页面,报错的时候如果有一些参数还能进行控制,这个参数传入之后处于模板解析的位置,就很有可能存在SSTI的漏洞。
这个参数如果测试用数字的加减乘除可以得到正确的结果,说明这个参数被python解析了,那这个时候我们可以传入python代码,比如用python调用命令执行,可以在网上找一些ssti的poc进行执行。
SSTI漏洞就是和模板相关的漏洞,模板就是网站显示的一个样式,那它可能出现的地方?(固定的地方+变量)
- 模板引用的地方,如404界面;
- 存在数据引用的地方,如模板文件接受数据文件的地方;