代码审计(Java)——WebGoat_RequestForgeries
一、Cross-site Request Forgeries
1.level3
这里的level3,就是限制了Referer的参数值为空或者是不等于host即可,单纯为了教学而设计的题目,没啥可说的~
因为java功底有限,待我再研究研究token怎么整,这里先按照简单的referer校验源头校验修复,后面再把这个token修复放上(太菜了……)
ok这里就简单的修复完成了,规定referer同源有一个致命的缺陷——如果域内存在CSRF的话,那就相当于建造了一个墙,但是只有半米高……很容易就跨过去了,还是得研究一下token,而且是洞态的,先暂缓更新,研究一下~
二、Server-side Request Forgery
1.level-2
抓包修改请求参数为jerry即可~
代审没什么好说的,这里就是简单添加了一个判断条件,标准的靶场代码了……
按标准的修复方式,有两种思路——一种是设置可访问资源白名单,一种是判断是否是内网地址,后者在此处不好演示,具体思路和前一种基本相同,就不修复第二种了~
OK~可以看到修复之后就跳出了一只猫问你是否寻求帮助的图片了哈哈(不得不说,做WebGoat的人绝对拥有有趣的灵魂~)
其实可以考虑设置一个允许访问的文件夹,并判断文件夹内部是否存在指定文件,上面两张图是这个修复思路。为了区分,我把jerry的图放上了,配上的是failure的内容~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义