python开发的web的一些安全问题

一、SSTI漏洞

①漏洞成因:
服务端收到用户的恶意输入后,未经过任何处理就将其作为web应用模板里的内容。那么,当模板引擎对该加入了恶意代码的模板进行编译渲染时,就会执行该恶意代码啊文件破坏模板环境,来达到敏感信息泄露、代码执行、Getshell的目的。比如网站更换模板。

②如何判断、检测SSIT漏洞:

模板的解析函数:flask.render_template_string()
一般有模板的应用才会有SSIT漏洞,输入的数据会被浏览器利用当前的脚本语言调用解析执行。
在迪哥的示例中,某开源的CMS中的404错误页里接收某个参数然后输出在404页面,比如“404_url”,当在url中写入“?404_url=1”的时候,404页面就会显示出“1”,同理,如果=号后面跟着类似alert(1)这样的语句,能触发弹窗等。
当发现传入的代码能被python解析,那么传入payload执行命令。模板为了统一更改样式,会在很多地方留下接收参数的点,这些点会从数据库获取数据去更新样式,该漏洞利用这些点来控制变量。

③SSTI在生产环境的什么地方常见:
·存在于模板引用的地方,如404错误页面展示
·存在数据接收引用的地方,如模板解析获取参数

④SSIT漏洞在那些语言有
php、python、js、java等都可能产生

二、PY反编译-PYC编译文件反编译源码
pyc文件是py文件编译后生成的字节码文件,之后会通过python解释器最终生成机器码运行,类似Java的.class文件,当py文件改变后,会重新生成pyc文件。
有在线工具或者GitHub上有工具进行反编译。

三、flask框架中两个函数用于提取信息

url_for()函数是用于构建操作指定函数的URL
get_flashed_messages()函数是获取传递过来的数据

/shrine/{{url_for.__globals__}}

/shrine/{{url_for.__globals__[‘current_app’].config}}

/shrine/{{get_flashed_messages.__globals__}

/shrine/{{get_flashed_messages.__globals__[‘current_app’].config}}

四、maccms(苹果cms)上的SSTI。8.X版本的漏洞

maccms多用于搞sese的。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注