栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 系统运维 > 运维 > Linux

Web 漏洞训练平台学习笔记(webgoat & juice shop)

Linux 更新时间:发布时间: 百科书网 趣学号
Web 漏洞训练平台 实验目的
  • 了解常见 Web 漏洞训练平台;
  • 了解 常见 Web 漏洞的基本原理;
  • 掌握 OWASP Top 10 及常见 Web 高危漏洞的漏洞检测、漏洞利用和漏洞修复方法;
实验环境
  • WebGoat / Juice shop
  • kali 2021.2
实验要求
  • 每个实验环境完成不少于 5 种不同漏洞类型的漏洞利用练习
  • (可选)使用不同于官方教程中的漏洞利用方法完成目标漏洞利用练习
  • (可选)最大化 漏洞利用效果实验
  • (可选)定位缺陷代码
  • (可选)尝试从源代码层面修复漏洞
WebGoat环境准备
  • 在kali上装docker建议看看这个,黄大的实验准备,免得像我一样因为课程之前下了其他版本的docker而死活搞不定compose up

    Linux谁都能参一脚搞得不同发行版之间的包乱糟糟的,以前都是听人吐槽,谁知道有天落自己头上了

  • 查看docker状态sudo systemctl status docker

  • 安装docker与docker-compose apt-get update && apt get install docker.io python3-pip pip3 install docker-compose

  • 新建工作目录并切换至工作目录mkdir workspace && cd workspace/

  • 开启docker服务 systemctl start docker

  • 下载课程所需漏洞练习环境 git clone https://github.com/c4pr1c3/ctf-games.git --recursive

  • 切换到相应目录下cd ctf-games/

  • 单独更新子模块 git submodule init && git submodule update

  • 启动 webgoat 系列服务 cd owasp/webgoat/ && docker-compose up -d

友情提示,之前要是像我一样是傻乎乎的不管啥版本号不版本的就随便乱装了docker,可以用sudo apt-get remove docker docker-engine docker.io卸载docker再重装……据我重装的信息显示,随便搞的和好好整的这两者之间差了150MB左右

再友情提示,别用阿里云的源 (¬_¬ ) 中科大或者清华的都行,不然你会在compose up的时候卡在3d725b7d6111这个包上死活下不了就是不停retry

  • 查看当前容器状态是否正常 docker ps,确保是healthy

http://127.0.0.1:8087/WebGoat/login for webgoat 7.1

http://127.0.0.1:8088/WebGoat/login for webgoat 8

sudo lsof -i 4 -P -n -L [| portcode_like_8080]查看当前端口占用情况[或特定端口占用情况]

关于firefox原生代理管理不能走到burpsuite上的问题,在后面会有讲解。谁知道搞个环境就花了我几个小时呢…真的是能踩的坑都踩完了


实验过程 WebGoat 8.0 General HTTP Basics
  • 提示还是挺明显的,问题是这是POST还是GET报文以及magic number,F12查看报文,发现是POST,数字则直接在前端搜索一下magic就好了


​ 点击"Go!",提示你已经解决了这个问题

看到这里我直接PTSD,所以这就是一个没有积分榜的CTF平台是吗

Authentication Flaws Secure Passwords
  • 这就是一个在线密码强度测试器,输一个足够复杂的密码就可以了

Cross-Site Scripting(XSS) Cross Site Scripting
  1. 第二页题目翻译:打开一个新的标签页,试试看cookie一个域是不是一样的,你可以在新的标签页下,使用JavaScript:alert(document.cookie);替换地址栏中的内容

    • 回车后发现完全没有任何改变,说明是正确的,输入yes即可
  2. 第七页题目翻译:哪些字段更容易遭受攻击?

    • 信用卡处输入""(注意带引号,否则不成功);而在3位访问码那里就没效果
  3. 第十页题目翻译:在start.mvc#lesson/ 的基础上找后续路径

    • 在前端源代码里面用route关键词一个个找,start.mvc#test

做到这我差不多回过味了,这个其实不是CTF,更像是一个教学平台,教你哪些地方的漏洞多容易被攻击

  1. 第十一页:通过上一题的路径获得函数的正确路径,也就是phoneHome函数并运行,通过F12获得代码的运行结果,输入输入框http://127.0.0.1:8088/WebGoat/start.mvc#test/%3Cscript%3Ewebgoat.customjs.phoneHome()
    • 结果是-620174399
  2. 第12页答题即可,不多赘述了
Cross Site Scripting(stored)

还是注意看题,评论里有提示让我们用phoneHome函数,照图上输入会评论一个空白的评论,这时F12查看返回的数据,就能获得正确的数据了,将得到的数据submit即可


WebGoat 7.1 General HTTP Basic
  • 输入框输入guest点击GO!,发现输入框里的内容反序变成倒序的内容
  • 输入框内为tseug,再次点击GO!,成功

说实话不是很清楚这道题想干嘛

Access Control Flaws Using an Access Control Matrix
  • 题目翻译:失败的基于角色的访问控制方案可能允许用户执行他/她所分配的角色不允许的访问,或者以某种方式允许权限升级到未授权的角色。
  • 多换俩人随便用public试试,框上方会有提示这人的身份是什么,看到Larry具有Account manager权限,试一试就行了

Stage 1:Bypass Business Layer Access Control
  • 题目翻译:作为普通员工“tom”,利用弱访问控制来使用“职员列表”页面中的“删除”功能。验证可以删除汤姆的个人资料。
  • 自己尝试哪个用户登录的时候能找到删除按钮,我自己试出来Jerry作为hr是可以的

  • 用burpsuite拦截下来操作,发现最重要的东西其实是这个删除简历操作标识action=DeleteProfile,drop这个操作,再以tom的身份登录,执行view的时候拦截操作,把最后一句换成action=DeleteProfiletom就能删掉自己了

Stage 3:Breaking Data LayerAccess Control
  • 题目翻译:作为普通员工“tom”,利用弱访问控制来查看其他员工的个人资料。
  • 还是用burpsuite对viewprofile操作按钮进行抓包分析可知通过修改employee_id值便可以实现对其他人简历的访问,我自己在以tom的身份登录之后,在返回员工列表的时候拦截操作,将id改成101就能得到通过的小绿标;尝试过不少次,发现权限确实只与id值有关,普通员工tom通过修改id值(比如经理moe的id值,101)可以越级访问hr,manager以及admin的简历。

Authentication Flaws Password Strength
  • 在所给网站测试破解密码的时间,输入结果,但是吧,首先它给的网站太老了,会被引导跳转到另外一个网站去,所以这个结果就出了点问题,比如输入123456,它的反馈是"立刻",我哪知道立刻是多久啊……试着填了0进去,但是不对,其他的答案也是,我估计是因为webgoat 7.1构建的时间比较古早了,或者最近网站更新太勤快了,这题作废

Forgot Password
  • 直接看题目要求,说现在你的用户名是webgoat,最爱的颜色是红色,要找出另外一个用户的答案,直接暴力尝试,试到绿色的时候就成功了

Multi Level Login2
  • 题目翻译:已知Joe的身份(Joe有一个有效的webgoat金融账户),作为Jane登录。
  • 用Joe登录系统,填写完Tan#1之后,使用代理拦截HTTP请求,修改hidden_user的值为Jane再转发就可以了

Multi Level Login1
  • 题目翻译:用户名密码都知道了,第一个tan也知道,但是第一个tan被用过了,不管怎样想办法黑进去吧
  • 用Jane和tarzan登陆后,要求你输入的tan是第三个,但问题不大,就输入tan1的值15648,提交时用burpsuite拦截下来,将tan的次数换成1就可以了

Code Quality Discover Clues in the HTML
  • 提示的很明显了,直接F12网页源代码搜一下sign就找到注释的用户名密码admin adminpw,提交就成功

到这里webgoat就差不多了,有时间再做吧……

Juice Shop
  • 切换到相应目录 cd workspace/ctf-games/owasp/juice-shop
  • 启动juice-shop系列服务 docker-compose up -d
  • 查看当前容器状态 docker ps
one star part Score Board
  • 找到隐藏的计分板页面,点击网站的选项卡,注意观察url的格式变化,推测出score board访问的url后缀为score-board,直接http://127.0.0.1:3000/#/score-board完事,正式开始

悄悄看了一眼网上大佬的解决方案,据说可以从源码中找到score-board的路径,但是我没找到

Confidential Document
  • 在about us页面发现一个鬼迷鬼眼的链接,直接点击是不行的,因为你会真的跳转到他们"无聊的法律说明"去;用F12审查元素,发现文件存储路径ftp/,访问该路径,就可以发现并下载acquisitions.md机密文件

注意/ftp这个路径,后面要考(bushi

Bully Chatbot
  • 真的是题如其名,不断发送coupon code霸凌它(指chatbot)以此获得优惠券

多一句嘴,太有意思了hhhhhh

Bonus Payload
  • 在搜索框输入题目所给的代码即可
 
DOM XSS 
  • 跟上面那题相似,直接在搜索框粘贴给的代码

two star part Admin Section
  • 要我们绕过登陆验证,以管理员身份登陆商店,而且说比计分板藏得更深,那就还是查源代码的套路,关键词admin,确实找到了相关的路径,但是你直接输入是不行的,会显示你没有权限,那应该就是SQL注入的套路了

  • 在用户名一栏敲个’,密码随便,发现抛出了一个异常,居然还给了我一个引发错误的奖励,也就是一星的Error Handling

  • 用burpsuit抓取一下服务器的返回,在proxy栏下的http history里面分析后端的报错信息。分析可知在用户名处输入万用金句' or 1=1 --即可使后端的SQL表达式变为"SELECT * FROM Users WHERe email = '' or 1 =1 -- AND password = ...

Five-Star Feedback
  • 删除顾客的五星评价,前提是已经登陆了administration账户
  • 在administration页面(也就是上图)第一个五星评价旁边点一下垃圾桶标志即可成功删除,属于是顺道拿分了,就不多做截图了
Zero Stars
  • 尝试提交零星评价,但是点进customer feedback发现最低允许提交的评价为1星
  • 用burpsuite拦截一下评分操作,把rating改成0就行了


Weird Crypto
  • 让你在页面内提交一个不安全的密码算法,这给我整不会了,还是在评论的那一个页面,随便输一个sha-1试一试,不行,换个des,也不行,反正试了不少个,最后试了一个md5成功了

Forgotten Developer Backup && Forgotten Sales Backup
  • 要求访问http://127.0.0.1:3000/ftp/路径下不被允许文件格式的备份文件coupons_2013.md.bak和package.json.bak,通过加入后缀%2500.md用%2500暴力截断后缀名,绕过限制。

Easter Egg
  • 要你找到他们藏起来的复活节彩蛋
  • 通过上一个实验发现在/ftp下有一个eastere.gg的不知名文件,盲猜和复活节有关系,通过%2500,得到一段加密字符串: L2d1ci9xcmlmL25lci9mYi9zaGFhbC9ndXJsL3V2cS9uYS9ybmZncmUvcnR0L2p2Z3V2YS9ndXIvcm5mZ3JlL3J0dA== 那看到双等号肯定就是base64了嘛

  • 解码得到: /gur/qrif/ner/fb/shaal/gurl/uvq/na/rnfgre/rtt/jvguva/gur/rnfgre/rtt 但是直接访问是错的,上网搜了一下题解得知需用ROT13解密,最后得到解码的地址:/the/devs/are/so/funny/they/hid/an/easter/egg/within/the/easter/egg

遇到的问题
  • 在参照视频使用burpsuite时特别要注意,直接用firefox的原生代理服务配置是不行的,burpsuite中不会出现有关webgoat的相关记录,原因不明,解决方法是安装插件,例如foxyproxy

  • 当然还有第二个解决办法,来自一篇博客,通过修改firefox的设置来关闭忽略本地地址代理的设置

就写到这吧……要是哪天心血来潮再说

参考链接

安装docker遇到问题时或许有用

还不换kali源?

往届作业

历史最全 WebGoat 8.0 通关攻略

国外博主的Juice shop做题博客

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/888574.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号