WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery

一、习题通关

目录

一、习题通关

第2页

解法1 浏览器开发者工具

解法2 burpsuite

第3页

二、课程知识


一、习题通关

第2页

任务:显示jerry

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第1张图片

这题很简单,而且有两种解法(第3页同样,但为了简洁,第3页就只说一种解法)

解法1 浏览器开发者工具

在steal the cheese按钮上点鼠标右键,再点 检查,找到下图红框框所示的隐藏域

把上图红框框中的tom.png改成jerry.png,然后点steal the cheese按钮

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第2张图片

过关~

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第3张图片

解法2 burpsuite

这种很常规,但是不直观,看不到可可爱爱的jerry,我不太喜欢

准备好burpsuite抓包,先点一下steal the cheese按钮,网页上会看到tom,虽然很喜欢tom,但是看到他并不能通关

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第4张图片

burpsuite的proxy模块http history中找到下图所示的报文,send to repeater

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第5张图片

把请求体中的tom改成jerry,send即可通关

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第6张图片

第3页

任务:利用ifconfig.pro显示接口配置

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第7张图片

这个ifconfig.pro是个什么东西?

拿去搜索了一下,也没有具体介绍这是个什么东西的网页,但是下图第一个搜索结果点进去可以看到,似乎就是本关需要显示的接口配置

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第8张图片

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第9张图片

后来多试了几个搜索引擎,直接搜ifconfig.pro,出来的第一个结果点开基本都是一样的,有时候是v4,有时候是v6。思考了一下http://ifconfig.pro和http://6.ifconfig.pro显示的都是v6地址和其他配置信息,http://4.ifconfig.pro显示的是v4地址和其他配置信息,而显示的ip地址,应该就是我本机的公网ip。

更多扩展和灵感,见通过 Privoxy 把 Shadowsocks 转成 Http 代理 | 侯坤林博客 (oschina.io),好不容易找到个涉及到ifconfig.pro的文章。

所以这题到这里也简单了,在run ifconfig按钮上点击鼠标右键,再点 检查,在开发者工具中找到下图所示的隐藏域

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第10张图片

把隐藏域的value属性的值改为http://ifconfig.pro,点击run ifconfig按钮,即可通关

(试过了这关http://6.ifconfig.pro和http://4.ifconfig.pro都不能通关)

WebGoat (A8:2013) Request Forgeries -- Server-Side Request Forgery_第11张图片

 

二、课程知识

Server-Side Request Forgery简称SSRF,中文名服务端请求伪造。攻击者可以通过服务器上的功能对内部资源进行读取和篡改。主要攻击方式是构造或者篡改某个服务器上的代码会读取或者向其发送信息的URL。

防御方式:

  • 使用白名单规定服务器可以获取资源的网络域,数据源,以及协议。

  • 来自用户的输入应当被验证,并在其不满足正向规范的时候拒绝处理。

  • 尽量不要接收来自用户的可以控制服务器从哪里获取资源的输入。

你可能感兴趣的:(web安全,WebGoat)