各种注入总结

注入就是格式化字符串漏洞的一种体现

例如我们在原本正常数据中进行了sql注入,破坏了原来的sql语句,从而执行了与原来语句不同的指令,达到攻击者的目的

模板注入

SSTI(服务器端模板注入)是格式化字符串的一个非常好的例子

SSTI的产生:

服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题.

补充:

单纯的字符串拼接并不能带来注入问题,关键要看你拼接的是什么,如果是控制语句,就会造成数据域与代码域的混淆,这样就会出洞

检测方法

同常规的 SQL 注入检测,XSS 检测一样,模板注入漏洞的检测也是向传递的参数中承载特定Payload 并根据返回的内容来进行判断的。每一个模板引擎都有着自己的语法,Payload 的构造需要针对各类模板引擎制定其不同的扫描规则,就如同 SQL注入中有着不同的数据库类型一样。

简单来说,就是更改请求参数使之承载含有模板引擎语法的Payload,通过页面渲染返回的内容检测承载的 Payload 是否有得到编译解析,有解析则可以判定含有 Payload 对应模板引擎注入,否则不存在SSTI。

SSTI 的检测工具  https://github.com/epinna/tplmap

攻击方向

(1)模板本身:Smarty,Twig(2)框架本身:Django,Flask/Jinja2,Tornado(3)语言本身:python,java

防御方法

(1)和其他的注入防御一样,绝对不要让用户对传入模板的内容或者模板本身进行控制

(2)减少或者放弃直接使用格式化字符串结合字符串拼接的模板渲染方式,使用正规的模板渲染方法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值