javaweb-webgoat8靶场+漏洞产生

JavaWeb-WebGoat8靶场搭建使用

        java运行jar包成功搭建靶场

javaweb-webgoat8靶场+漏洞产生_第1张图片

访问成功

javaweb-webgoat8靶场+漏洞产生_第2张图片

 

 

文件上传中的路径遍历

第一关:将头像上传到上一级目录

根据代码审计得知上传路径由fullname的值控制

抓包修改fullname的值

javaweb-webgoat8靶场+漏洞产生_第3张图片成功上传

 

第二关:代码审计发现对fullname的值进行了过滤,但是只过滤了一次

抓包直接双写绕过,成功上传

javaweb-webgoat8靶场+漏洞产生_第4张图片

有什么用呢?

       比如:网站的上传头像的目录设置了不允许执行程序文件,只允许查看头像,我们上传的脚本文件就执行不了。

我们就可以利用路径遍历将脚本文件上传到上级允许执行程序的目录。

 

webgoat(A2)——Authentication Bypasses

因为网站是根据键值对在数据库对用户的输入进行验证的,所以我们可以修改一个数据库不存在的键值对编号让值为null来绕过登录。

javaweb-webgoat8靶场+漏洞产生_第5张图片

修改secQuestion0=11&secQuestion1=11为secQuestion01=&secQuestion11=即可绕过

javaweb-webgoat8靶场+漏洞产生_第6张图片

 

JWT攻击方式

         用户登录成功后,服务端通过jwt生成一个随机token给用户(服务端无需保留token),以后用户再来访问时需携带token,服务端接收到token之后,通过jwt对token进行校验是否超时、是否合法。

jwt由三个部分组成:header.payload.signature

示例:由 . 连接的三段字符串组成

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

webgoat(A2)——JWT tokens

jwt——签名没验证空加密

提示:尝试更改您收到的令牌并通过更改令牌成为管理员用户

抓包,发现使用了jwt

javaweb-webgoat8靶场+漏洞产生_第7张图片

解密jwt生成的token

javaweb-webgoat8靶场+漏洞产生_第8张图片

根据提示修改token成为管理员用户,我们就可以使用空加密算法

空加密算法格式:(header+'.'+payload,去掉了'.'+signature字段)

       我们就可以使用jwt的token生成脚本重新生成token,

在header中指定alg为None,把signature设置为空,把admin:false更改为admin:ture篡改身份信息。

javaweb-webgoat8靶场+漏洞产生_第9张图片

运行脚本成功生成jwt的token

javaweb-webgoat8靶场+漏洞产生_第10张图片

将token复制,替换数据包中的token,成功通关

 

Jwt——爆破密钥

javaweb-webgoat8靶场+漏洞产生_第11张图片

在爆破脚本中写入要爆破的token,运行爆破脚本,成功爆破出密匙:shipping

javaweb-webgoat8靶场+漏洞产生_第12张图片

密匙正确

javaweb-webgoat8靶场+漏洞产生_第13张图片

将用户更改为webgoat

javaweb-webgoat8靶场+漏洞产生_第14张图片

填入token通关

javaweb-webgoat8靶场+漏洞产生_第15张图片

第十二关:组件漏洞

打开源码,进行代码审计,发现使用了XStream组件

javaweb-webgoat8靶场+漏洞产生_第16张图片

浏览器搜索组件漏洞,成功获取的漏洞poc

poc功能:打开计算器

靶场输入漏洞poc,成功执行

javaweb-webgoat8靶场+漏洞产生_第17张图片

你可能感兴趣的:(漏洞文章,java,web安全)