1、文件下载漏洞1.1、pikachu
![]()
![]() 对比: [code]请求地址:http://pikachu.shifa23.com/vul/unsafedownload/execdownload.php?filename=kb.png 存放地址:http://pikachu.shifa23.com/vul/unsafedownload/download/kb.png # 通过上面两个地址我们可以测试文件下载漏洞 下载漏洞:http://pikachu.shifa23.com/vul/unsafedownload/execdownload.php?filename=../execdownload.php [/code]根据上面的分析通过链接下载到了文件execdownload.php 2、逻辑越权漏洞越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽未对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,可以导致用户A可以操作其他人的信息。
![]() 2.1、水平越权
![]()
![]() 发现查询到了kobe的信息,存在水平越权。 2.2、垂直越权使用管理员的cookie,来替换普通用户cookie构造数据包,就可以达到垂直越权。 不过目前校验使用token的话,就比较难来使用到垂直越权了。 Tips:第35天-Web漏洞-逻辑越权之找回机制及接口安全 笔记:https://www.yuque.com/weiker/xiaodi/anrxmi27wou62ada 3、密码爆破这里我以若依不分离为例:
![]()
![]()
![]() 其实在这块发现返回的状态码都是200,查看响应,对于正确的响应code显示是0,错误的是500,可以作一个区分。 4、WebGoat靶场4.1、WebGoat靶场搭建
可以采用Docker搭建,也可以采用Windows搭建,这里记录下Windows搭建记录:
访问:
![]() 进来后先注册账户。superadmin/superadmin 4.2、HTTP Basics-Http基础4.2.1、题3本题介绍查看请求使用了什么类型的HTTP命令。解题方式如下:
![]() ![]() ![]() 4.3、HTTP Proxies-Http协议4.3.1、题5
![]() 4.4、Developer Tools-开发工具4.4.1、题4
![]() 4.4.2、题6
![]() 4.5、Crypto Basics-加密基础4.5.1、题2题目是一个base64解密,给了Authorization: Basic c3VwZXJhZG1pbjpwYXNzd29yZA==,我们只需要复制Basic之后的那段进行解密,就可以得到答案。
4.6、JWT tokens4.6.1、题4-Decoding a JWT token使用Base64解码token即可。 4.6.2、题6-JWT signing -重置空加密算法尝试更改token,并通过更改token成为管理员用户。
![]()
Base64反解码出第一段头部header和第二段声明claims,第三段是签名: [code]# header {"alg":"HS512"} # claims {"iat":1725521992,"admin":"false","user":"Tom"} [/code]alg的值是可以为none的,也就是不加密签名,这样签名的值就可以留空。将claims的admin改为true [code]# header {"alg":"none"} # Base64编码后得到 eyJhbGciOiJub25lIn0= [/code] [code]# claims {"iat":1725521992,"admin":"true","user":"Tom"} # Base64编码后得到 eyJpYXQiOjE3MjU1MjE5OTIsImFkbWluIjoidHJ1ZSIsInVzZXIiOiJUb20ifQ== [/code]编码解码网站:https://jwt.io/#encoded-jwt 二者组合,注意将=等号均删掉,并且按照JWT的结构加上点. [code]# 注意最后那个点不能少 eyJhbGciOiJub25lIn0.eyJpYXQiOjE3MjU1MjE5OTIsImFkbWluIjoidHJ1ZSIsInVzZXIiOiJUb20ifQ. [/code]![]() 4.6.3、题11-JWT cracking-暴力破解给出了一个jwt的token,让修改token里面的账户为WebGoat然后重新加密后提交,因为token的第三部分是header和payload的base64然后加上秘钥hash的结果,hash的算法通过header部分就只能得到,所以需要爆破秘钥
![]()
![]()
![]()
我这里爆破了四千多还没成功,就不爆破了,拿到密钥后写入,生产的token提交即可。 ![]() 4.7、Path traversal-路径绕过4.7.1、题2这关要求传个文件到目录C:\Users\Augenestern/.webgoat-2023.8/PathTraversal下,自己上传的话其实会上传到C:\Users\Administrator\.webgoat-8.1.0\PathTraversal\fancyele,比我们的目标路径多一级目录fancyele。
4.7.2、题3这关的要求和上一关一样,要传个文件到目录C:\Users\Administrator\.webgoat-8.1.0\PathTraversal下面,但是提示../会被删除掉。看到删除,一下子就想到双写绕过,在Full Name处构造双写:..././xxx.png。 4.7.3、题4还是要求传个文件到目录C:\Users\Administrator\.webgoat-8.1.0\PathTraversal下面,但是这次上传发现文件名是固定的,和 Full Name 的值没有关系。
![]() 4.8、Insecure Direct Object References-不安全的直接对象引用4.8.1、题3这个题的意思是返回的部分东西显示在浏览器,但是还有其他未显示在浏览器,让我们找到未显示的部分。可以观察到只有5个属性,只有role 和userid是隐藏未显示的属性。 ![]() 后面的关就不打了,参考几个大佬文章:
免责声明:本内容来源于网络,如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |