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的userId是2342384。

复制代码
{
  "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

相关推荐
梦帮科技2 分钟前
Web 漏洞攻防深度:WAF 规则逃逸技术(畸形分块传输、双重编码)与对抗加固
linux·前端·网络安全·ssl·web
兰亭妙微UI设计公司8 分钟前
兰亭妙微软件界面设计公司的解锁按钮设计10大密码
开发语言·前端·javascript
橙色云-智橙协同研发12 分钟前
汽车零部件行业:如何应对主机厂的严苛审核?
大数据·运维·服务器·人工智能·安全
迪幻31 分钟前
封装自己的 npm 依赖并存储到个人 GitHub
前端·npm·github
Multipath7121 小时前
以多链路聚合为通信底座,让低空飞行器“连得上、传得快、飞得稳、管得住”
网络·5g·安全·智能路由器·实时音视频
IT大白鼠1 小时前
2026年9月至今重大安全漏洞专题报告——国产软件与终端高危漏洞深度解析
安全·漏洞·搜狗
u0111026751 小时前
WebP 转成 PNG 后为什么更大?图片格式转换不等于压缩
前端·javascript·vue.js
万少1 小时前
Qoder sonus模型 20分钟,复刻 马斯克 飞天汽车
前端·后端·算法
Safeploy安策数据1 小时前
如何挑选专业的密钥管理体系?从制度、流程、工具三层评估
安全·云计算
java1234_小锋1 小时前
【技术专题】HTML5 网页技术 - HTML5 列表标签
前端·html·html5