Java 静态代理&动态代理学习
0x00 前言 最近刚好把之前的webgoat走完了,浅显的知道了一些漏洞存在的原因,在继续下一阶段java代码审计的过程中深知自己基础非常不扎实,又在K0rz3n师傅在博客中范型和动态规划是贯穿框架的非常重要的东西,所以便来学习一下(之前一个月前看的懵逼,现在重新来看看发现思路清晰了不少) 0x01 代理模式 代理应该不陌生,我们在科学上网的时候…
JAVA代码审计10:WEBGOAT Insecure Deserialization
0x00 前言 java 反序列化漏洞是在代码审计中经常需要留意的,正好借助这篇文章来入门一下,后面会单独写一系列的文章来探讨毕竟这块可是大头 0x01 正文 我们来看一下题目 题目的意思就是:尝试利用反序列化漏洞来让响应延迟5s 我们来看一下接口直接进行代码审计 找到如下对应代码 发现这里会对传入的参数进行一个base64解码所以我们需要先进行b…
JAVA代码审计09:WEBGOAT Request Forgeries 请求伪造
0x00 前言 常见的请求伪造有两种,第一种跨站请求伪造也就是我们的CSRF,第二种服务端请求伪造也就是我们的SSRF。 CSRF 通俗的说就是构造payload 然后诱导受害者点击,从而利用受害者的身份去做一些事情 SSRF 服务端请求伪造简单的来说就是,这个请求是服务端发起的,通常有的功能会存在从第三方的链接等获取资源,但是如果没有对资源来源进…
JAVA代码审计08:WebGoat XSS
0x00 前言 其实在这之前还有一章Broken Access Control 但是简单的做了做之后发现那个章节就是为了给我们提供一些思路,代码方面没什么可以说的就跳过了 0x01 正文 Reflected XSS xss相对熟悉一些,我们只需要找到输出的点然后尝试我们的xss脚本就可以了 我们先updatecert一下,发现红框中的数据直接输出了…
Java代码审计07:WebGoat XML外部实体注入(XXE)
0x00 前言 走个形式~ 0x01 Let’s try 我们直接来看一下题目 题目的意思是让我们列出root下的文件,这里只有一个评论的功能 发现传输的格式是xml,很简单我们引入我们的dtd文件就可以了 <!DOCTYPE ANY [ <!ENTITY js SYSTEM "file:///etc/passwd"> ]>…
WebGoat 敏感信息披露-Insecure Login
0x00 前言 因为在做的时候发现,这里不需要涉及到java代码审计,所以就不加java代码审计的标题了,相当于直接当一个wp,题目也比较简单就简单写一下(水文orz 0x01Insecure Login 题目如下,简单的来说就是让我们在报文或者别的地方发现泄漏的敏感信息 F12 打开查看源码 发现我们点击按钮的时候会调用 submit_secre…
JAVA代码审计06: WEBGOAT 认证缺陷(下)
0x00 前言 书接上回~ 0x01 Password Reset Security questions 这题告诉了我们webgoat用户的安全问题,让我们找回别的用户tom或者admin 一开始还以为这里存在什么逻辑问题结果一看发现,其实这题就是爆破,爆破颜色就行了 Creating the password reset link 说实话这道题目…
JAVA代码审计05: WEBGOAT 认证缺陷(上)
0x00 前言 走个形式~ 0x01 Authentication Bypasses Password Reset 权限绕过,我们首先看到他给了一个样例,在进行安全校验对时候直接将对应请求包中的参数删掉就可以绕过了 当然我们的案例不可能和上面一样直接删除就好了,我们直接从源码层面来进行分析 首先我们简单发一个请求,发现请求了后端的一个接口/auth…
JAVA代码审计04: WEBGOAT 目录遍历
0x00 前言 之前看了SQL注入那么我们现在来看一下 Path traversal, 也叫做目录遍历,由于后端没有对路径进行很好的控制导致我们可以进行任意文件读取也就是 ../../../../../../etc/passwd 或者说是任意文件上传,我们可以将文件上传到任意目录下,所以我们来看一下 0x01 正文 Path traversal 0…
SQLMap 源码阅读笔记01
0x00 前言 SQLMap作为SQL注入的神器,又方便同时功能也非常的多,所以阅读sqlmap能学习到很多东西,这篇文章作为开篇来学习一下,也算是一个系列的开始 0x01 正文 我们这里直接从入口文件 sqlmap.py 开始看起来 __import__ 相当于动态引入类,和java反射有些类似,这里看到代码中动态引入lib.utils.vers…