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

相关推荐
yi个名字2 小时前
AI 应用的 SRE 视角:延迟、可靠性、成本与安全如何在一套系统里闭环
人工智能·安全
乾元2 小时前
红队 / 蓝队:用 AI 自动生成攻击场景并评估防御效果——从“安全演练”到“可计算的网络对抗系统”
运维·网络·人工智能·网络协议·安全·web安全·架构
xiatianxy2 小时前
有限空间作业安全如何更有保障!
安全·有限空间作业·有限空间监测设备
金士镧(厦门)新材料有限公司2 小时前
稀土阻燃协效剂:让木质地板更安全、更持久
科技·安全·全文检索·生活·能源
_Orch1d2 小时前
非对称加密AKA协议:安全认证与密钥交换
网络·tcp/ip·安全
G31135422732 小时前
人脸核身:从 “线下跑“ 到 “线上办“ 的安全基石
安全
骐骥13 小时前
鸿蒙开发使用DevTools工具调试ArkWeb组件中的前端页面
前端·harmonyos·调试·arkweb·纯鸿蒙
WHOVENLY10 小时前
【javaScript】- 笔试题合集(长期更新,建议收藏,目前已更新至31题)
开发语言·前端·javascript
指尖跳动的光10 小时前
将多次提交合并成一次提交
前端·javascript