Go 代码审计高危漏洞(sqli\cmd\ssrf)
0x01 Go 代码审计高危漏洞一个go写的WEB漏洞靶场,实际自己写一下,加固一下知识
https://github.com/godzeo/go-gin-vul
GIN框架 整个web框架是go-gin-Example 上面改的,没有前端框架,只有一个swagger,直接发包吧
0x02 Vulnerability code analysis and fix 漏洞代码解析和修复0x01 sqli实际中最常见的一种编码问题 Order by 之后存在列和表的的时候,一般采用拼接的情况出现sql注入
由于表/列名无法使用参数化查询,所以推荐使用白名单或转义操作
0x011 常见错误拼接主要是运用 fmt.Sprintf()、buffer.WriteString()等方式将字符串连接到一起。
简单就是先拼接,后查询都有问题
1234567db.Select(xxx).First(&user) db.Where(fmt.Sprintf("name = '%s'", xxx)).Find(&user) db.Raw(&quo ...
Java代码审计: ClassLoader应用
0x00 前提首先说明一下为啥要搞这个?
1、挖洞
1比如挖洞的时候遇到反序列化,一般都是cc回显是将构造的回显类塞进TemplatesImpl中,如果禁用了就得找其他的方法,一般都是找ClassLoader的子类,并且实现defineClass的类。
2、webshell对抗
1类似于冰蝎的webshell也是使用自定义的ClassLoader,下面讲的方法都可以转化为webshell,这种特征都不台明显,有一定的迷惑性。
3、漏洞利用
1还是在漏洞回显方面的问题,一般多利用 TemplatesImpl 和BECL 可以直接塞入payload直接攻击,比如常见的fastjson
总的来说用的场景还是蛮多的,比较实用的。
0x01 Java类基本使用Java是编译型语言
Java是一个底层是一个JVM(Java虚拟机)驱动实现的跨平台的开发语言。
1、Java程序在运行前需要先编译成class文件。
2、Java类初始化的时候会调用java.lang.ClassLoader加载类字节码
3、ClassLoader会调用JVM(defineClass0/defineClass1 ...
CodeQL基础语法
基础QL语法CodeQL的查询语法有点像SQL,如果你学过基本的SQL语句,基本模式应该不会陌生。
结构
12345import java // 导入使用的库from int i /* ... 变量声明... */where i = 100 /* ... 逻辑公式 ... */select i /* ... 表达式 ... */
import java,导入使用的库,因为我们分析的项目是java的
from int i,表示我们定义一个变量i,它的类型是int,表示我们获取所有的int类型的数据;
where i = 100, 表示当i等于1的时候,符合条件;(这是= 是一个等于的意思 == ,并不是赋值)
select i,就是输出 i
我们经常会用到的ql类库大体如下:
名称
解释
Method
方法类,Method method表示获取当前项目中所有的方法
MethodAccess
方法调用类,MethodAccess call表示获取当前项目当中的所有方法调用
Parameter
参数类,Parameter表示获取当前项目当中所有的参数
所有方法 ...
Spring Rce 漏洞分析CVE-2022-22965
0x01 漏洞介绍Spring Framework 是一个开源的轻量级J2EE应用程序开发框架。
3月31日,VMware发布安全公告,修复了Spring Framework中的远程代码执行漏洞(CVE-2022-22965)。在 JDK 9 及以上版本环境下,可以利用此漏洞在未授权的情况下在目标系统上写入恶意程序从而远程执行任意代码。
0x02 影响范围影响组件:org.springframework:spring-beans
影响版本:< 5.3.18 和 < 5.2.20.RELEASE 的Spring框架均存在该漏洞
JDK版本:JDK>=9
部署方式:war包部署在TOMCAT中
0x03 漏洞原理 漏洞爆发之后,在学习大佬的分析之后发现,这个Spring最新0day漏洞其实不是全新的那种新洞,而是CVE-2010-1622这个漏洞的一种绕过情况。
这个CVE-2010-1622漏洞的原因是Spring参数绑定时,可以注入一个Java pojo对象,这个对象可以是恶意的去注册一些敏感tomcat的属性,最后通过修改Tomcat的配置来执行 ...
转载:Gitee 图床 外链问题 处理
七牛图床准备大半夜起来,发现Gitee图床加了外链,博客没法访问了。人都傻了。
[
哭泣
博客上的图片都变成了无法加载的状态。
[
心如死灰.jpg
到各个图床平台试了一下,发现七牛云上传文件的时候是不会修改文件名的(SM.MS会),决定将仓库克隆下来,上传到七牛云再修改图片地址。
克隆仓库找到图床仓库并打包下载即可。
[
克隆仓库
七牛图床准备注册七牛云平台略过,使用七牛云的对象存储功能。
[
对象存储
在空间管理中新建一个空间,并选择公开。
[
新建空间
建好后刷新,并点开空间切换至文件管理,点击上传文件并选择克隆下来的仓库下的所有图片。
[
上传文件
[
上传
点击开始上传后右侧任务中心可以打开并显示上传进度。
[
上传进度
上传完毕后刷新,点击文件详情可以查看文件地址。
[
文件信息
文件地址替换接下来就是紧张刺激的MarkDown链接替换操作了。
可以自己写代码读文件替换。我这里使用了Ide进行简单的文本替换。将原本gitee上的的前缀替换为七牛的CDN地址即可。
[
地址替换
替换完毕后部署推送,一气呵成,目前一切恢复正常,终于可以安心休息了。
[
[恢复正常](
本文 ...
Codeql 环境手模手搭建和简单使用
0x00 前言
最近这个东西实在太火了,而且log4j 和最近的Spring Cloud Gateway 都说是利用codeql来挖掘的,好不好用先用了再说。所以学习一下这个东西
0x01 CodeQL是什么 在我接触这个东西之前,我一直以为这是一个代码审计的工具,类似于Fortify rips 这种东西? 但其实并不是,理解大大错了。。。
还记得记得SQL的全称吗? -> Structured Query Language:结构化查询语言
所以我简单通俗的理解就是:
Codeql = code + ql,这样就是一门面向对象的编程语言(对比SQL)
是把代码结构化分析后的存在一个代码数据库里面
然后就是写ql就可以进行各种查询
找某个方法、类、参数的传递等等。。。
神奇。。
官方地址:
github/codeql: CodeQL: the libraries and queries that power security researchers around the world, as well as code scanning in ...
Java预编译一些场景下的局限.md
0x00 Mybatis框架#的$的区别
#号会点语句进行预编译
${ } 只是进行string 替换,动态解析SQL的时候会进行变量替换
0x01 预编译一些场景下的局限
表名作为变量时,需使用拼接
12select * from `user` select * from 'user' #报错,表名不能使用单引号
order by后需要使用拼接
12select * from user order by nameselect * from user order by 'name' # 语义发生改变,没有排序的效果了
0x02 之前有听人说order by后面的语句是不会参与预编译?
这句话是错误的。Orderby也是会参与预编译的。从我们上面的jdbc的setString算法可以看到,是因为setString会在参数的前后加上’’,变成字符串。导致orderby失去了原本的意义。只能说是预编译方式的order by不适用而已。所以对于这种orderby的防御的话建议是直接写死在代码里面。对于order ...
CVE-2022-0847 DirtyPipe 提权漏洞 复现
0x00 介绍DirtyPipe (CVE-2022-0847) 是自 5.8 以来 Linux 内核中的一个漏洞,它允许覆盖任意只读文件中的数据。
其要求内核是5.8以上的才能利用
相关链接:原文地址:https://dirtypipe.cm4all.com/
准备
创建一个低权限用户
我的环境是docker里面
uname -a
1Linux ae801d08733b 5.10.76-linuxkit #1 SMP Mon Nov 8 10:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/redhat-release
1CentOS Linux release 7.9.2009 (Core)
0x02 复现123https://github.com/Arinerron/CVE-2022-0847-DirtyPipe-Exploit.gitgcc exploit.c -o exp -std=c99./exp
编译报错如下图,要加上上 std=c99
1gcc exploit.c - ...
Spring Cloud Gateway Actuator API SpEL表达式注入命令执行(CVE-2022-22947)
0x01
Spring Cloud Gateway是基于Spring Framework 和 Spring Boot构建的API网关,它旨在为微服务架构提供一种简单、有效、统一的API路由管理方式。华为云提醒使用Spring Cloud Gateway的用户及时安排自检并做好安全加固。
参考链接:
CVE-2022-22947: Spring Cloud Gateway Code Injection Vulnerability
CVE-2022-22947: SPEL CASTING AND EVIL BEANS
0x02 漏洞环境推荐直接vulhub,干净卫生,兄弟们
vulhub/spring/CVE-2022-22947 at master · vulhub/vulhub (github.com)
1docker-compose up -d
服务启动后,访问http://your-ip:8080即可看到演示页面
0x03 漏洞复现利用这个漏洞需要分多步。
首先,发送如下数据包即可添加一个包含恶意SpEL表达式的路由:
(此处的payloa ...
反爬虫SSL TLS指纹识别和绕过JA3算法.md
0x00 前言 有时候会发现一种情况,用正常浏览器可以访问,但是用脚本或者挂一下代理访问https的网站就直接405禁止访问了。
这种情况就有可能是 识别了你的TLS指纹,这种情况换随机UA都是没什么用的。
查阅资料之后,发现应该是waf识别你的TLS指纹,标记为恶意直接禁止了,其中识别的算法主要是利用JA3和JA3S实现TLS指纹识别功能,所以学习了一下。
0x01 实际测试一下测试代码第一步,我们就看看我们的特征是什么,测试一下到底改hearder方法行不行。代码是测试代码,主要就是重复发包看一下特征。
主要有三种:修改过tls的,原生的,改header头的
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071# author: Zeo# python: 3.7 # software: PyCharm"""文件说明:" ...