黑客游戏| Owasp juice shop (一)
0x01 前言
最近看到一篇关于owasp juice shop的文章,觉的很有意思,斗哥就自己撸了个环境,上手后深深觉的这是一个很棒的漏洞靶场,所以就把该环境介绍给大家,该漏洞靶场是由owasp开发的,包含了owasp的十大漏洞,共计47关,难度各有不同。以下我将从环境搭建开始介绍整个漏洞靶场。
0x02 搭建
Juice shop是个开源项目,源码可在github上获取(https://github.com/bkimminich/juice-shop),最为方便的还是使用docker来安装。我所使用的环境为Ubuntu+docker。
1.1 虚拟机中安装一个ubuntu(我是使用Ubuntu16.04 64位)安装方法自行百度
1.2 Ubuntu安装docker
$sudo apt-get update
$sudo apt-get install docker
安装完后执行 docker –version,若能看到docker版本,则安装成功。
1.3 安装owasp juice shop
$docker pull bkimminich/juice-shop
注:下载速度跟网络有关,若失败,则多试几次;斗哥试了5-6次才下载成功。
1.4 运行 juice shop
$docker run -d -p 3000:3000 bkimminich/juice-shop
1.5 浏览器访问虚拟机IP+3000,如下图则环境已启好。
0x03 玩耍
第一关:
不得不说juice shop对初学者是不友好的,页面上没有提醒,不了解的还真不知道如何下手,第一关,查看首页源码发现Score Board,存在页面#/score-board,访问可看到所有关卡的要求。
已解决的关卡status列会变成绿色的solved,并在该页面出现绿色的提示框告知你已解决了哪个关卡。找到score-board就完成了第一关(页面中关卡的顺序是按难易度排列的,并非特定解题顺序)
第二关:Error Handling
要求引发一个错误,第一个想法是在登入处去测试。登入处,尝试特殊字符是否能报sql的错误,结果如下,报错信息可看到登入验证的sql语句,此处是使用单引号进行闭合的,所以此处报错是由单引号引起的。记住这里的sql语句后续构造万能密码有用。(能产生报错的地方共有四处,有兴趣的童鞋可以好好找找哪里还有报错。)
第三关:XSS Tier 1
要求alert("XSS1")构造一个反射性的xss。是跨站阿,第一个想法便是搜索框,直接贴入发现之间弹框了,连语句都不用改。
完成第三关。
第四关:Five-Star Feedback
要求删掉一个5星好评。刚看到这题的时候还是一股蒙圈样,不知道要在哪里删?其实做题必须要先完成第六关和第八关后才能完成这题。所以做这题前先完成第六关和第八关吧。使用万能密码登入后在访问管理页面,即可看到评价,并且可删除评价。删除5星的评价哈后,完成该题。
第五关:Confidential Document
要求查阅机密文件。这道题查阅机密文件,最初的想法是用御剑扫扫看有没有什么目录,不过机智的斗哥还是发现蛛丝马迹解决了这题,浏览现有的页面发现About us正文中有一行与其他行不一样,点开看看。
发现是个下载页面,这里有个下载的,那这个下载目录是否还有其他文件呢?
访问一看,就发现其他文件。
随便点点其他文件,发现点第一个文件后就完成的第五关。
记一下这个页面后续其他关卡还会使用到。
第六关:Admin Section
要求找到网站的管理页面。第一想法用御剑扫扫看,结果没发现管理后台。(而且环境被扫崩了)这让斗哥蒙了一下,那只能去猜了,试了几个常见的后台admin、administrator等都没成功,其实英文要是好的同学可以从描述中发现,Access the administration section of the store.,尝试administration发现管理后台页面。
第七关:Zero Stars
要求给网站一个0星的评价。这题就简单了,找到评价页面,发现没有打星是无法评价的,一猜就是前端的校验,两种方法一种修改页面代码使其可0星提交,方法二正常评价后使用burp抓包改掉评价的星级。
这里介绍方法一,右键Submt -> 审查元素,删除下图中的disabled="disabled",即可之间提交0星的评价。
第八关:Login Admin
要求使用管理员的用户帐户登录。这个时候我们还不知道,这个网站的登入账号是什么格式的,只能在登入处使用万能密码尝试登入看看, 这个是第二个报错信息就有很大的价值,根据报错信息"SELECT * FROM Users WHERE email = ''' AND password = 'c4ca4238a0b923820dcc509a6f75849b'" 来构造万能密码’ or 1=1 --+ 万能密码登入后发现登入的账号就是admin账号。
第九关:Password Strength
要求不修改密码,不使用sql注入,获得正确的admin@juice-sh.op账号密码。一看题目的名字就知道这里肯定是弱口令。admin的账号名称可在Your Basket中看到。
使用burp进行爆破,不过也许是斗哥的环境问题,使用burp爆破会把环境撸崩,所以本题是从其他文章中借鉴的。密码是admin123,是用密码登入后解决了这题。
第十关:Basket Access
要求在别人的购物车中添加商品。这题很明显是越权,使用burp抓包查看添加商品到购物车的流程,点添加购物车后,抓包发现链接上有个/rest/basket/1,修改此处的1为其他数字。即可把商品加到他人购物车。
第十一关:Forgotten Sales Backup
要求访问被销售员遗忘的备份文件。这题就要先完成第五关,第五关中发现了一个ftp的页面,这里由几个文件, 通过英文意思大概知道这几个文件的意思,其中可能是销售员遗留的文件只能是coupons_2013.md.bak(优惠卷)。点击发现无法下载,该文件的格式不允许下载。
从页面信息可发现只允许.md 和 .pdf的文件允许下载。这里就要想怎么绕过限制了。这里由两种方法,方法一使用截断绕过后缀名限制,方法二修改md_debug的值为md。
方法一,使用%00截断绕过限制,这里要进行一次url编码如下:
方法二:修改md_debug的值为.md,这里要先回想去之前在About us中发现的链接为192.168.239.128:3000/ftp/legal.md?md_debug=true,有个md_debug参数,这里也可修改这个参数的值绕过验证。如下:
第十二关:Weird Crypto
要求在评论处告知商店,它使用的一个算法或者库存在风险。这道题是要你找出这个网站中使用了哪些简单算法,最常见的比如url编码,base64编码。这题我是猜出来的,没有找到弱加密的地方,有做过的大佬请指点一下。在评论处输入base64即可过关。
0x04 To be continued
本期就先分享到这里,后续关卡将在下期更新,有兴趣的小伙伴可去搭环境,撸起来,欢迎小伙伴来分享大家的学习心得。
参考链接:
http://www.cnblogs.com/ichunqiu/p/7778053.htmlhttps://github.com/bkimminich/pwning-juice-shop/blob/master/part2/README.md