Hello-Java-Sec 学习
免责声明
本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.
项目地址 : https://github.com/j3ers3/Hello-Java-Sec
部署
配置数据库连接 application.properties
编译并运行
访问测试
http://127.0.0.1:8888
输入账号密码 admin/admin
记得在数据库中导入 db.sql
代码分析与漏洞利用的学习
SpEL 表达式注入
描述
SpEL(Spring Expression Language)表达式注入, 是一种功能强大的表达式语言、用于在运行时查询和操作对象图,由于未对参数做过滤可造成任意命令执行。
利用原理
SpEL注入
示例代码
攻击 payload
编码建议
web view 层通常通过模板技术或者表达式引擎来实现界面与业务数据分离,比如 jsp 中的 EL 表达式。这些引擎通常可执行敏感操作,如果外部不可信数据未经过滤拼接到表达式中进行解析,则可能造成严重漏洞。
应避免外部输入的内容拼接到 EL 表达式或其他表达式引起、模板引擎进行解析。
白名单过滤外部输入,仅允许字符、数字、下划线等。