crAPI靶场搭建及通关教程

更多内容请访问www.hackborgeous.top

靶场搭建

我是搭建在服务器上的,当然,如果你有虚拟机也可以搭建在虚拟机上,但是最好用一个新的Ubuntu环境,不然就会出现各种各样的问题,导致搞了好几个小时环境问题还没搞明白,下面演示在服务器上搭建相关的靶场环境(服务器记得放行8888端口和8025端口)

首先确保自己的服务器有docker环境
依次输入如下命令:
curl -o docker-compose.yml https://raw.githubusercontent.com/OWASP/crAPI/main/deploy/docker/docker-compose.yml
docker-compose pull
vim docker-compose.yml
输入":"进入末行模式,并输入命令进行替换
:1,250 s/127.0.0.1/xx.xx.xx.xx(服务器公网IP)/g
docker-compose -f docker-compose.yml --compatibility up -d

当出现下面的页面的时候,就代表靶场启动成功

image-20240717162223135

我们在自己的浏览器上输入xx.xx.xx.xx(服务器公网IP):8888/login访问,得到下面的界面

image-20240717162655737

如果启动的时候出现错误,检查端口有没有放行,端口有没有被占用,或者重启docker服务

注册账号

注册账号,非常简单,我们根据提示来就行,然后我们登录我们的邮件服务器,即8025端口,进行邮件接收

image-20240717164623163

我们点击查看邮件,将返回给我们的数据填到对应的地方

image-20240717164718098

99feeb2d009277400c0a9b6463c962b5

image-20240717164841053

然后我们就可以得到我们的车,接着就可以开始闯关了

image-20240717164955030

挑战1:访问其它用户车辆的详细信息

首先我们进入Community界面,这里面有其他用户发表的POST,任意点击一个条目,我们试着去抓包

image-20240717165521254

相关的敏感信息已经出来了,我们记下字段"vehicleid":"4bae9968-ec7f-4de3-a3a0-ba1b2ab5e5e5",方便我们后续进行水平越权

我们回到dashboard界面,重新刷新位置信息并抓包,如下所示

c27d4a629c4b7bb8b5caed4840fe05d0

我们可以将对应的字段换成我们想要查找的车辆,进而可以方便我们查找其他车辆的位置信息

image-20240717170155984

水平越权成功

挑战2:访问其它用户的机械报告

首先我们要找到我们自己的机械报告在哪

image-20240717182728869

我们点击这里,显示页面如下,我们随便填入一些并进行抓包

image-20240717182825119

抓包返回结果如下所示

7445ecc450108a34bcafd52f121d345c

我们把这个url复制下来,替换我们request包的请求地址,并把请求方式改成GET,然后再发包,我们通过修改report_id的值可以越权访问别人的报告

445ae9165ca60f676a72d63e154fad40

挑战3:重置其它用户的密码

我们首先退出我们的登录界面。如下所示

4ec014e38c92bf0ef3f37ba38c2d9cae

我们点击忘记密码,发现发给我们的邮件验证码只有四位,所以我们可以考虑爆破这四位验证码

image-20240717184019471

我们暂时使用我们这个账号进行爆破,如果我们这个账号可以爆破出来,那么其他的任意账户同样可以爆破出来,我们先随便输入一个验证码,并把密码输入进去

image-20240717184240500

然后开始抓包,将抓到的包送入Intruder模块,在验证码处加上$$符号,然后设置payload

image-20240717184431569

image-20240717184720620

点击start attack,开始爆破

我们发现,当重放次数过多之后,服务器会拒绝访问,这个时候我们将v3改成v2就可以解决问题

98dced1cb63526b5fd4dc51db2cc660a

经过长时间的爆破,我们可以拿到验证码2033

挑战4:找到泄露其它用户敏感信息的API接口

点击Community进行抓包,重新发包,如下所示

image-20240717191106378

获得所有发表评论的用户的信息,格式为json,造成敏感信息泄露

挑战5:找到泄露视频内部属性的API接口

我们找到视频页面,随机上传一个视频,如下所示

image-20240717191659464

image-20240717191649635

我们修改视频名字,如下所示

image-20240717191815903

随机输入名字并进行抓包,放包,如下所示

07e1a63d9c5a96ac4bc95a6dc256d26e

所以/identity/api/v2/user/videos/6这个api接口就是我们想要的,我们可以试着修改后面的数值,看看是否会给我们泄露其他视频的属性,发现是不会显示其他用户视频信息的,可能是在Authorization做了限制

挑战6:使用 “contact mechanic” 功能完成第7层DoS

点击Contact Mechanic,随便填写一些内容,像挑战2一样

image-20240717193847234

点击提交并进行抓包,送入repeater模块,我们将repeat_request_if_failed改为true,并将number_of_repeats改为较大的数字,如下所示

image-20240717194128593

点击发送,得到如下界面,成功

image-20240717194202693

挑战7:删除另一个用户的视频

和挑战5的步骤一样,找到修改video名称的界面并进行抓包,并送到重放界面,先用OPTIONS进行探测支持哪些协议

ae7dcdc6ff9a197018c2d459173a1d13

支持DELETE,我们使用DELETE协议删除视频,将id改成其他用户的ID

image-20240717193213414

发现没有权限,我们尝试将user改成admin,如下所示

021a026c206f5c954738eef14e455f87

成功删除任意用户视频

挑战8:免费获得一件物品

我们首先进入shop页面,如下所示

image-20240717194508118

我们点击购买,然后抓包,我们发送到repeater上,然后点击发送

image-20240717194947054

我们发现我们的余额确实减少了10块钱,我们将协议方式改为GET,并在orders后面加上id号,然后再发送

image-20240717195625853

我们可以看到对应订单的详情,我们复制相应的status,并将协议改为PUT,然后将status改为returned状态,然后发送

image-20240717200124963

我们发现我们余额增加,实现免费购买一件物品

挑战9:将您的结余增加1000元或以上

同上,修改订单状态为delivered,表示我们的订单已经发送,并把数量改成100

image-20240717201113881

然后我们再把状态改为退款状态returned,并重新发送

cb2889132f85a0921ac13b62ea751d74

我们查看自己的余额,发现余额刷新了,证明成功

image-20240717201336155

挑战10:更新内部视频属性

同挑战5,我们找到抓取修改视频名称的包,我们先点击发送包,如下所示

image-20240717201818983

我们发现conversion_params属性,我们尝试修改这个值,然后重发

image-20240717202126060

发现对应属性成功被修改

挑战11:让crAPI发送一个HTTP调用到“www.baidu.com”并返回

同挑战6的数据包抓取方式,这里就不再赘述,这里我们使用dnslog.cn进行记录我们的dns解析记录,我们首先随机获取一个子域名,如下所示

image-20240717202724472

我们将数据包下的mechanic_api改成我们的子域名,然后发数据包

image-20240717203031254

我们去dnslog.cn上刷新,出现下面界面,代表成功带出DNSlog

image-20240717203105051

挑战12:想办法在不知道优惠券代码的情况下获得免费优惠券

这里我们采用nosql进行注入,首先我们找到优惠券界面,随意输入优惠券代码并进行抓包

image-20240717203827678

我们输入{“$ne”:“xxxxxxxxxxx”}进行nosql注入,得到如下结果

image-20240717204347590

说明已经成功获取优惠券

挑战13.找到一种通过修改数据库来兑换已经领取的优惠券的方法

白盒测试找源码吧,这个接口只能在源码中找到,测是测不出来的,相关接口是/workshop/api/shop/apply_coupon

image-20240717210245042

我们首先在coupon界面抓包,修改url地址为对应接口地址,并把coupon_code修改为万能密码,并增加数量参数amount

image-20240717211602407

这里我失败了,正常的情况下应该是下面的情况

image-20240717211710644

我也不知道是什么情况😇😇😇

挑战14:查找不为用户执行身份验证检查的接口

订单接口无身份验证可以随意访问数据/workshop/api/shop/orders/1

image-20240717211952440

image-20240717212009094

挑战15:找到伪造有效 JWT令牌的方法

首先获取jwt的公钥,我们访问.well-known/jwks.json接口文件可以获得相关的公钥

image-20240717215427973

将keys复制到jwt editor中进行编辑,我们new 一个rsa key,然后点击Copy Public Key as Pem

image-20240717220300683

去Decoder选项卡对这个进行encode

image-20240717220536726

再次回到Burp 主选项卡栏中 的 JWT Editor Keys选项卡,点击New SymmetricKey后Generate,将 k 属性的生成值替换为PEM Base64编码

image-20240717220721845

然后在burp的请求中可以发现 json webtoken选项卡,在选择卡左下角处也可以看到对 json web token 的攻击选项

image-20240717220939728

我们再次抓取dashboard的包,看看我们能否通过修改jwt进行越权访问别人的账户

image-20240717221323698

我们先前已经注册一个abc@qq.com了,现在我们来试试能不能越权

image-20240717221819570

成功越权,jwt使用成功

其他漏洞

增加一个商品

首先获取商品接口,我们还是通过抓包来实现,我们将请求方法改成POST,在请求体中添加商品的具体信息

{"name":"周俊霖","price":"100000.00","image_url":"images/seat.svg"}

image-20240717222425946

点击发送,如下所示

image-20240717222458221

image-20240717222522793

成功新增一个商品

支付漏洞

首先我们的初始余额是1060美元

image-20240717222655022

我们现在购买一个商品,然后抓包,我们将数量改成负数,发现并没有对数字进行限制,我们可以发现余额惊奇的变多了

image-20240717222848889

出现这个漏洞的原因是后端在进行计算时没有对传进来的数据进行二次校验,导致出现支付漏洞

总结

靶场加深了我对API安全的认识,有些漏洞在现实生产环境中仍然很普遍,同时,通过打靶场,加深了我对一个网站如何进行测试的理解,虽然有些漏洞比较偏,也比较难想,但是经过多多实践,还是可以熟能生巧的

这个靶场带给我的最大的惊喜还是jwt,它告诉了我关于jwt还可以使用bp进行破解,当然这个手法还需要后续的学习与理解,以前我都是直接通过脚本进行破解,没有直接用bp来的舒服,又多了一种新的姿势🤔🤔🤔

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DVWA是一个典型的用于入门web渗透的靶场,适用于刚刚学习Kali的爱好者。它可以通过安装到Kali机器上来进行实践和验证。 关于DVWA靶场的XSS攻击和通关教程,有一些方法可以使用。其中一种方式是通过组合命令来实现。在批处理脚本中,可以使用"&"符号将多个命令组合在一起执行。这样可以顺序执行多个命令,当第一个命令执行失败时,后面的命令仍然会执行。另外,还可以使用"&&"符号来同时执行多条命令,当碰到执行出错的命令时,后面的命令将不会执行。 在DVWA靶场中,可以按照以下步骤进行XSS攻击和通关教程: 1. 执行token_part_1("ABCD", 44):这个命令是执行一个名为token_part_1的函数,并传入参数"ABCD"和44。根据具体的情况,这个函数可能是用于生成或处理令牌的。 2. 执行token_part_2("XX"):这个命令是执行一个名为token_part_2的函数,并传入参数"XX"。这个函数可能是与令牌相关的延迟执行的操作。 3. 点击按钮时执行token_part_3:当点击按钮时,执行名为token_part_3的函数。这个函数可能是用于完成XSS攻击或者完成通关教程的关键步骤。 通过上述步骤,可以在DVWA靶场中进行XSS攻击并完成通关教程。请注意,具体的步骤可能因DVWA版本或具体场景而有所不同,建议根据实际情况进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [kali2021.3安装dvwa靶场](https://download.csdn.net/download/u014419722/82144505)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [DVWA靶场通关教程](https://blog.csdn.net/CYwxh0125/article/details/122460851)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值