代码审计(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的内容~