代码审计(Java)——WebGoat_RequestForgeries

一、Cross-site Request Forgeries

  1.level3

代码审计(Java)——WebGoat_RequestForgeries_第1张图片

代码审计(Java)——WebGoat_RequestForgeries_第2张图片

代码审计(Java)——WebGoat_RequestForgeries_第3张图片

  

        这里的level3,就是限制了Referer的参数值为空或者是不等于host即可,单纯为了教学而设计的题目,没啥可说的~

代码审计(Java)——WebGoat_RequestForgeries_第4张图片

  因为java功底有限,待我再研究研究token怎么整,这里先按照简单的referer校验源头校验修复,后面再把这个token修复放上(太菜了……)

代码审计(Java)——WebGoat_RequestForgeries_第5张图片

代码审计(Java)——WebGoat_RequestForgeries_第6张图片

  ok这里就简单的修复完成了,规定referer同源有一个致命的缺陷——如果域内存在CSRF的话,那就相当于建造了一个墙,但是只有半米高……很容易就跨过去了,还是得研究一下token,而且是洞态的,先暂缓更新,研究一下~

二、Server-side Request Forgery

1.level-2

代码审计(Java)——WebGoat_RequestForgeries_第7张图片

  抓包修改请求参数为jerry即可~

代码审计(Java)——WebGoat_RequestForgeries_第8张图片

  代审没什么好说的,这里就是简单添加了一个判断条件,标准的靶场代码了……

代码审计(Java)——WebGoat_RequestForgeries_第9张图片

  按标准的修复方式,有两种思路——一种是设置可访问资源白名单,一种是判断是否是内网地址,后者在此处不好演示,具体思路和前一种基本相同,就不修复第二种了~

代码审计(Java)——WebGoat_RequestForgeries_第10张图片

代码审计(Java)——WebGoat_RequestForgeries_第11张图片

  OK~可以看到修复之后就跳出了一只猫问你是否寻求帮助的图片了哈哈(不得不说,做WebGoat的人绝对拥有有趣的灵魂~)

代码审计(Java)——WebGoat_RequestForgeries_第12张图片

代码审计(Java)——WebGoat_RequestForgeries_第13张图片

  其实可以考虑设置一个允许访问的文件夹,并判断文件夹内部是否存在指定文件,上面两张图是这个修复思路。为了区分,我把jerry的图放上了,配上的是failure的内容~

你可能感兴趣的:(代码审计,java,开发语言)