JAVA安全-目录遍历访问控制XSS等安全

靶场webgoat(白盒测试)

一.Javaweb 代码分析-目录遍历安全问题

1.看题目说:

上传文件时的路径遍历

在本任务中,目标是覆盖文件系统中的特定文件。当然,WebGoat很关心用户,因此你需要将你的文件上传到通常上传位置之外的以下位置。

2随便上传一个文件随后去看看他存放在哪个位置

Profile has been updated, your image is available at: C:\Users\Lenovo\.webgoat-2025.3\PathTraversal\lllxxy\test"

3.打开这个位置看看:

"C:\Users\Lenovo\.webgoat-2025.3\PathTraversal\lllxxy\test"

4.抓包看看数据

------WebKitFormBoundaryXgY6R6DVqsoAlhD0

Content-Disposition: form-data; name="fullName"

test

------WebKitFormBoundaryXgY6R6DVqsoAlhD0

Content-Disposition: form-data; name="email"

test@test.com

------WebKitFormBoundaryXgY6R6DVqsoAlhD0

Content-Disposition: form-data; name="password"

发现这个

Content-Disposition: form-data; name="fullName"

test就是对应着我的一个文件的名字,如果我修改这个文件的名字会有什么效果呢

发现都变了

5.这个是路径遍历那么我用../这个看看我是否能把文件上传到上一级的目录上面去(如果有限制那么采用..././尝试)

Congratulations. You have successfully completed the assignment.成功

抓包对应的数据

------WebKitFormBoundarytQMBIBgcnWvvr6x7

Content-Disposition: form-data; name="fullName"

../lllxxyy

------WebKitFormBoundarytQMBIBgcnWvvr6x7

Content-Disposition: form-data; name="email"

test@test.com

------WebKitFormBoundarytQMBIBgcnWvvr6x7

Content-Disposition: form-data; name="password"

test

------WebKitFormBoundarytQMBIBgcnWvvr6x7--

二.第三关

产生了../这个的限制

用..././或者....//来尝试

Congratulations. You have successfully completed the assignment成功

三.Logging Security

让我们试试

  • 某些服务器在启动时会提供管理员凭据。

  • 本挑战的目标是在WebGoat服务器的应用程序日志中找到秘密,以管理员用户身份登录。

  • 请注意,我们试图"保护"它。你能解密吗?

1.先去看看源代码看看有什么提示没有

2.再去看看network能够得到(前端)

3.再去抓包试试也能得到

得到密码和账号

username=CaptainJack&password=BlackPearl

四.

第三关

观察差异与行为

AppSec进攻方的一个一贯原则是从原始响应中查看与可见内容之间的差异。换句话说(正如您可能已在客户端过滤课程中注意到的那样),原始响应中往往包含一些数据,这些数据并不会显示在屏幕上或页面上。查看下方的个人资料,并注意其中的差异。

输入1然后抓包

让我们You did not list two attributes, comma delimited意思是您没有列出两个用逗号分隔的属性。

说明我们要列出两个用逗号分隔的属性。才能过关

目前知道name,color,size

然后抓包检查一下看看还有哪些属性发现还有role,userid然后输入role,userid解决

复制代码
{
  "role" : 3,
  "color" : "yellow",
  "size" : "small",
  "name" : "Tom Cat",
  "userId" : "2342384"
}

第四关

猜测与预测模式

以另一种方式查看您的个人资料

到目前为止,我们所使用的应用程序在个人资料方面似乎遵循了RESTful模式。许多应用都设有角色,其中高权限用户可以访问其他用户的コンテンツ。在这种情况下,仅使用 /profile 将无法正常工作,因为当前用户的会话/认证数据并不能告诉我们他们想查看哪个用户的个人资料。那么,您认为采用直接对象引用显式查看自己个人资料的合理模式是什么?

请输入指向该 URL 的备用路径,以查看您的个人资料。请以"WebGoat"开头(即忽略"http://localhost:8080/")

在Stage 3中知道了tom的userId2342384

复制代码
{
  "role" : 3,
  "color" : "yellow",
  "size" : "small",
  "name" : "Tom Cat",
  "userId" : "2342384"
}

输入这个完整的路径就可以通过WebGoat/IDOR/profile/2342384

五.csrf

题目说:在登录状态下,从外部源触发下方的表单。响应中将包含一个'标志'(一个数值)。

说明应该修改指向最简单的方法就是修改请求的refer,refer表示这个请求从哪个网站来的。

http://127.0.0.1:8080/WebGoat/csrf/basic-get-flag

得到: 25348

第四关也是一样的修改refer

直接到第七关

CSRF与内容类型

在上一节中,我们了解到依赖内容类型并不能防范CSRF攻击。在本节中,我们将探讨另一种针对未采取CSRF防护措施的API实施CSRF攻击的方法。
在本次作业中,你需要将以下JSON消息POST到我们的端点:

CodeRay 复制代码
<span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#000000"><span style="background-color:#efefef"><code>POST /csrf/feedback/message HTTP/1.1

{
  "name"    : "WebGoat",
  "email"   : "webgoat@webgoat.org",
  "content" : "WebGoat is the best!!"
}</code></span></span></span></span>

也可以自己创建一个html文件上传访问

最后也能得到flag

相关推荐
星河耀银海1 小时前
远控体验分享:安全与实用性参考
人工智能·安全·微服务
GreenTea1 小时前
一文搞懂Harness Engineering与Meta-Harness
前端·人工智能·后端
赛博云推-Twitter热门霸屏工具2 小时前
Twitter运营完整流程:从0到引流获客全流程拆解(2026)
运维·安全·自动化·媒体·twitter
xixixi777773 小时前
通信领域的“中国速度”:从5G-A到6G,从地面到星空
人工智能·5g·安全·ai·fpga开发·多模态
killerbasd3 小时前
牧苏苏传 我不装了 4/7
前端·javascript·vue.js
吴声子夜歌3 小时前
ES6——二进制数组详解
前端·ecmascript·es6
码事漫谈3 小时前
手把手带你部署本地模型,让你Token自由(小白专属)
前端·后端
ZC跨境爬虫3 小时前
【爬虫实战对比】Requests vs Scrapy 笔趣阁小说爬虫,从单线程到高效并发的全方位升级
前端·爬虫·scrapy·html
爱上好庆祝3 小时前
svg图片
前端·css·学习·html·css3
王夏奇4 小时前
python中的__all__ 具体用法
java·前端·python