PY反编译-PYC编译文件反编译源码
pyc文件是py文件编译后生成的字节码文件(byte code),pyc文件经过python解释器最终会生成机器码运行。因此pyc文件是可以跨平台部署的,类似Java的.class文件,一般py文件改变后,都会重新生成pyc文件。
网站源码中有pyc文件时,无法看懂,就可以去浏览器在线反编译pyc文件。
pyc文件打开是这样的,无法看懂
进行反编译之后就会变成py文件,就可以进行代码审计
SSTI入门-原理&分类&检测&分析&利用
1、什么是SSTI?有什么漏洞危害?
SSTI就是服务器端模板注入(Server-Side Template Injection),实际上也是一种注入漏洞
漏洞成因就是服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。
2、如何判断检测SSTI漏洞的存在?
-输入的数据会被浏览器利用当前脚本语言调用解析执行
3、SSTI会产生在那些语言开发应用?
4、SSTI安全问题在生产环境那里产生?
-存在模版引用的地方,如404错误页面展示
-存在数据接收引用的地方,如模版解析获取参数数据
示例:自写一个报错处理的错误页面,里面存在一个用户可控的参数,输入的数据会被浏览器利用当前脚本语言调用解析执行。
我们就可以把一段pyload当做参数传入,让目标将其执行。
浏览器搜索一个pyload
执行,虽然出现错误,但属于服务器内部错误,也说明poload成功被执行了
想要判断使用python语言的网站是否存在SSTI漏洞,只需要在参数传入{{2*2}}等pyload看看是否被执行
SSTI考点-CTF靶场-[WesternCTF]shrine
启动靶场,右键查看代码
1、源码分析SSTI考点
2、测试判断SSTI存在
3、分析代码过滤和FLAG存储
4、利用Flask函数获取FLAG
{{url_for.__globals__['current_app'].config.FLAG}}:获取全局变量中当前应用的config变量中的FLAG
url_for()函数:是用于构建操作指定函数的URL
__globals__:全局变量
['current_app']:当前应用
原文始发于微信公众号(小黑子安全):python测试-pyc反编译+SSTI模板注入
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论