SSRF的学习
PHP弱类型比较绕过
buu刷题之sql注入
SSTI注入的学习
SSTI简介
SSTI 是服务器端模板注入(Server-Side Template Injection)的缩写。它实际上也是一种注入漏洞,通过与服务端模板的输入输出交互,在过滤不严格的情况下,构造恶意输入数据,从而达到读取文件或者getshell的目的。
不同的语言下有不同的框架,不同的框架又有不同模板,不同的语言模板对应的注入点和闭合可能略有区别,但本质原理都是一样的,就是将用户输入的数据不加处理就添加在了前端页面上,然后再用模板渲染时,就有可能把用户输入的数据当成本身的语法(和SQL注入一样的),从而导致安全问题
使用模板可以让静态的html页面动态的展示内容,模板是一个响应文本的文件,其中占位符(变量)表示动态部分,告诉模板引擎具体的值需要从使用的数据中获取.使用真实值替换变量,在返回最终得到的字符串,这个程称为渲染
如果先将前端页面渲染,再将用户输入的数据添加在页面上,这样模板已经固定,就不会产生ssti的漏洞了(感觉和SQL的预处理又有点像)
有一个经典的图可以简单的判断是属于的哪一个模板
红色箭头代表内容
未被当做命令执行,绿色代表成功当做命令执行
文件包含漏洞的学习
学习反序列化漏洞
命令执行的绕过技巧
想要进行绕过的话,需要根据不同的系统的特性采用不同的方式,在ctf中还是以Linux居多
Linux
shell
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言,Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。
bash(全称 Bourne Again Shell): LinuxOS 默认的,它是 Bourne Shell 的扩展。与BourneShell 完全兼容,并且在 Bourne Shell 的基础上增加了很多特性。可以提供命令补全,命令编辑和命令历史等功能。它还包含了很多 C Shell 和 Korn Shell 中的优点,有灵活和强大的编辑接口,同时又很友好的用户界面。
我们常用(默认)的就是bash(bourne again shell)