利用Burp Suite对OWASP Juice Shop进行渗透测试

1. 简介

OWASP 的 在线果汁商店 (Juice Shop) 项目, 是一个很好的开源Web 靶场。它包含了OWASP的10大漏洞 [1], 并且这个项目用到了很多流行的技术如 HTML5, AngularJS, Bootstrap, Node.Js, SQLite等等,应用架构如下图所示:

利用Burp Suite对OWASP Juice Shop进行渗透测试

本文将展示如何利用著名的Web 渗透工具Burp Suite 来进行渗透测试。 Burp Suite的Web渗透功能异常强大,但也不乏一些槽点:

易用性不是很好,初学者经常一头雾水,甚至开始连页面都无法正常加载。

可用性有待改善,代理需要手工配置,这个比起Fiddler的代理自动设置就逊色多了。

默认字体太小了,不修改默认字体大小估计非得上放大镜了。

尽管有以上种种不足,鉴于其强大的功能,暂且先凑合着吧。

个人认为,学习Burp Suite最好的方法就是用其来对靶场进行渗透测试(这里提醒一下,请勿在未授权情况下对Internet上的服务器进行渗透测试)。下面将通过具体的渗透步骤来讲解Burp Suite的方法,比如 Intruder模块。

2. 实验环境

本实验中利用了Ubuntu 16.04 LTS 作为测试环境。环境搭建布骤如下:

1. 安装 Docker, 如下一条命令即可

sudo apt-get installdocker-engine

2. 安装 Juice Shop 靶场应用

Juicy Shop 的源代码托管在github上:

https://github.com/bkimminich/juice-shop

最方便的方式是采用Docker安装

首先把镜像端到本地来:

docker pull bkimminich/juice-shop

然后进行部署

docker run -d -p 3000:3000bkimminich/juice-shop

打开浏览器http://localhost:3000 , 如果到如下页面,则表示Juice Shop部署成功。

利用Burp Suite对OWASP Juice Shop进行渗透测试

3. 安装 Burp Suite。本文需要用到Professional 版本。可以从

https://portswigger.net/burp

申请一个试用版。

3. 渗透测试

3.1 注册一个测试用户

点击Login,然后点击”Not yet a customer”

利用Burp Suite对OWASP Juice Shop进行渗透测试

注册完成后,登录进该用户即可。

另外Juice Shop 隐藏了一个评分系统的链接

http://localhost:3000/#/score-board

每次完成任务后,Web界面上都会收到提示信息。另外,评分系统中也会更新状态。

3.2XSS 攻击

3.2.1 反射型XSS攻击 难度指数 ★

我们首先看一下反射性XSS攻击这道题

Performa reflected XSS attack with<script>alert("XSS1")</script>.

这道题很简单,在搜索框中直接输入

<script>alert("XSS1")</script>

利用Burp Suite对OWASP Juice Shop进行渗透测试

就直接弹出了对话框,过关!

3.2.2 持续型XSS攻击 难度指数 ★★★

接着我们来试试持续型XSS攻击这道题。

这道题需要成功生成一个存储型的<script>alert(“XSS2″)</script> XSS攻击。

这道题则需要费些心思了。在何处产生存储呢。我们回想起在注册用户的时侯,

注册信息因该是存储下来的。我们再次访问注册页面,并将Proxy的 Intercept 设置成ON以便截获注册时发送的信息。如下图所示。

利用Burp Suite对OWASP Juice Shop进行渗透测试

这是我们将email地址篡改成 XSS 攻击

<script>alert(/”XSS2/”)</script>

利用Burp Suite对OWASP Juice Shop进行渗透测试

后转发出去,我们就可以看到来自 Juice Shop的首肯。

利用Burp Suite对OWASP Juice Shop进行渗透测试

过关。

3.3 SQL 注入攻击难度指数 ★★

既然是Web 靶场,SQL 注入攻击时必不可少的一环。

SQL注入这道题要求我们以SQL注入的方法登录管理员帐户。

首先我们先在登录页面进行登录,来截取HTTP报文(登录时,不一定需要正确的用户密码名)。截获的HTTP 报文如下图所示。

利用Burp Suite对OWASP Juice Shop进行渗透测试

在看一下服务器返回的信息。

利用Burp Suite对OWASP Juice Shop进行渗透测试

服务器返回信息中,包含了一个字符串”Invalid email or password”。很明显,这表明登录不成功。下面则是SQL 注入的重点了。右键点击请求,选择 “Send toIntruder”,将该条记录发送到”Intruder” 模块进行自动化测试。然后点击 “Intruder”标签页进入 Intruder模块。然后点击”Positions” 子标签页。

可以看到如下界面

利用Burp Suite对OWASP Juice Shop进行渗透测试

这里事实上就是定义自动化测试时对那些变量进行替换。我们这里仅对email变量进行攻击测试。配置如下

1. 点击 Clear 按钮。

2. 鼠标移到test@freebuf.com上点击”Add” 按钮。

然后单击Payload子标签页。这里可以定义如何对变量进行替换。通常是采用字典(wordlist)来

进行替换。Burp Suite 本身似乎并未提供一个现成的字典,幸好Fuzzdb 开源项目提供了一个很好的字典,包含了各种攻击可能用到的字典。可以采用如下git命令将其克隆到本地:

git clone https://github.com/fuzzdb-project/fuzzdb

克隆完成后,点击Load来加载 wordlist, 这里可以加载fuzzdb中/attack/sql-injection/detect/xplatform.txt 定义的wordlist。

需要注意的一点是,一定要将”URL-encode these characters” 前面的勾去掉,即不对特殊字符做编码。最后设置如下图所示,注意红框标注的地方。

利用Burp Suite对OWASP Juice Shop进行渗透测试

配置完成后,点击右上角的”Start Attack”按钮开始攻击。数十秒后,攻击完成。

查看结果页面,有些SQL注入攻击失败了,有些成功了。一个最简单的筛选办法就是查看Status列,一般成功的会返回200.

利用Burp Suite对OWASP Juice Shop进行渗透测试

相应的攻击向量为

{"email":"' or1=1--","password":"123456"}

攻击成功后可以再次看到来自Juice Shop的首肯。

利用Burp Suite对OWASP Juice Shop进行渗透测试

4. 小结

Juicy Shop 是一个包含了数十种漏洞的Web靶场,其架构设计非常有代表性。用来练习 Web 渗透和熟悉Burp Suite的使用再合适不过了。本文介绍了如何利用Burp Suite 提供的功能组件特别是Intruder模块来进行攻击。读者如果能够根据本文提供的例子,举一反三的操作,一定很快能熟悉如何利用BurpSuite 来进行Web 渗透。然而要想在Web渗透上达到一定的造诣,除了需要深入钻研HTTP协议,Web 应用的常见架构外,还需要练就天马行空般的黑客思维。

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/54724.html

(0)
上一篇 2021年8月7日
下一篇 2021年8月7日

相关推荐

发表回复

登录后才能评论