freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

webgoat通关过程系列(四)
2023-12-28 14:44:45

A10 Server-side Request Forgery

1. Cross-Site Request Forgeries

  • 1-3, 这里有个submit query按钮,直接点击会提示来自相同host,我们改下请求的host就可以拿到flag,
    这是最简单的方法,但这里应该不是这个目的。xsrf通常是同一浏览器的不同网站之间有恶意行为。所以我们要自己写一个html文件来模拟外站,复制sub query那个form

<html>
<body>
<form accept-charset="UNKNOWN" id="basic-csrf-get" method="POST" name="form1" 
target="_blank" successcallback="" 
action="http://127.0.0.1:8081/WebGoat/csrf/basic-get-flag">
     <input name="csrf" type="hidden" value="false">
      <input type="submit" name="submit">

    </form>
</body>
</html>

然后在同一个浏览器打开,点击提交按钮
image

  • 1-4, 这关同上,也是改host,也可以构造html,然后填表提交

  • 1-7, 这关需要在外站用json提交数据,因为json提交会有cros检验限制,所以这关出了修改host外,还需将Content-Type改为 text/plain
    image

  • 1-8, 这关只需新注册个用户,用户名为当前用户名前加csrf-,然后在同一浏览器登录。再点击solved即可

2. Server-Side Request Forgery

  • 2-2,这关修改请求获取不同的服务器资源,直接修改图片名称即可
    image

  • 2-3, 这关也是直接修改请求,将请求改为一个地址,这样返回的就是地址的内容了,地址是个外站
    image

client side

1.Bypass front-end restrictions

一共两关,都特别简单,页面以正则的方式限制了输入的内容,我们抓包绕过前端,然后直接修改就可以

2. Client side filtering

  • 2-2,这里是想获取Neville Bartholomew的薪水,页面没展示,但是看源码是可以直接看到的
    image

  • 2-3, 这关是需要我们找到checkout code,从源码给的提示我们可以看到checkout code有webgoat, owasp, owasp-webgoat
    image

我们分别填入去试试,发现有个请求时返回不同code的折扣的
image

我们修改这个请求,把后面的code去掉,发现返回的是所有的code列表。可以看到有我们想要的。
image

3. HTML tampering

  • 3-2,这个直接抓包改数字就可以,没什么好说的

challenges

1. Admin lost password

这关要求是要找到admin的密码登录。第一个肯定想到的是sql注入,但是试了几下都不行,然后看了前端代码也没找到什么线索。题目也提示了爆破是不行的。这就没辙了。后来网上看了答案,简直让人震惊。密码竟然藏在那个图片里,下载logo,然后记事本打开就可以看到,我想现实中应该没有人会这么干嘛,不知道这题的意义何在 。
image

2.Without password

这关可以使用sql注入
image

3. Admin password reset

这关目标和以前的重置密码一样,但是原来的方法不行了,原来修改host能直接拦截邮件请求。这里不行。直接说结果,网上看的答案,这里有个git源码泄露的漏洞,请求WebGoat/challenge/7/.git就能下载到.git文件,然后就能看到生成token的源码,
image
从源码可以看出这里随机生成设置了一个种子,这个种子是固定的。那这里就会有个问题,当设置相同的种子后,random生成的随机序列是一样的。也就是伪随机,所以这里我们也就可以生成admin的token。

4. Without account

这关只要把GET改成HEAD就可以了,后端使用了spring boot的@GetMapping注解,但这个注解并有限制head请求
image

# web安全 # 数据安全 # 内网渗透 # 漏洞分析 # 网络安全技术
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录