S2-67漏洞分析和复现
0x01. 漏洞原理Apache Struts 中FileUploadInterceptor逻辑存在缺陷,由于上传参数绑定过程中存在OGNL解析,攻击者可利用OGNL表达式修改文件名实现参数绑定,控制文件上传参数导致路径遍历,从而上传恶意文件到服务器执行任意代码。
0x02. 影响范围2.0.0 到 2.5.33 6.0.0 到 6.3.0.2
0x03. 漏洞复现当服务存在此漏洞时且找到文件上传接口时还需要知道两个关键点才能进行利用:
需要知道文件上传的参数名称
需要知道程序内部定义的文件名的类属性名称
其中文件上传参数只要触发一次文件上传就可以知道,如下所示是一个正常的文件上传请求
另外【文件名的类属性名称】如下图代码所示,当一个文件上传时struts2会自动把文件名赋值给下面这个uploadsFileName
而这个漏洞就是利用OGNL表达式去实现参数覆盖,下面假设我们已经知道该文件名的类属性名称,我们可以构造如下Payload
123456789101112131415161718192021POST /S267/upload.action HTTP/1.1Host: ...
YII反序列化漏洞分析
1. 原理分析起初是发现yii2.0框架的Cookie内竟然包含php序列化字符串,于是本地搭建环境,并进行源码分析和复现实验。
把上面_csrf内容拆成两部分,即一个64bit的字符串和php序列化字符串
1234567# 对下面的序列化字符串hmac_sha256的加密结果8ec3dd9f09fa0f7ba2c616c5bd747769af799b8cf4f9aec0ab49cf4bb5aefd68# a:2表示是数组类型,且长度为2# 花括号内的i:0;s:5:"_csrf"; i表示索引,s表示长度,后面表示值# 反序列化后 ["_csrf", "lIq-Z4-Z69EZ4sVtPWI4Usy167yDwjbe"]a:2:{i:0;s:5:"_csrf";i:1;s:32:"lIq-Z4-Z69EZ4sVtPWI4Usy167yDwjbe";}
既然有序列化,那肯定有反序列化,找到了web/Request.php文件的loadCookies函数,部分代码 ...
Linux应急响应笔记
SSH登陆排查先排查是否存在可疑的ssh连接进程
12# 列出存在22的端口连接信息(IP、端口、PID、程序名等)netstat -antpl | grep 22
若发现可疑的连接信息,则记录其IP,并通过微步在线X情报社区查询是否存在相关情报。
使用以下命令筛选出可疑IP的登陆日志情况:
123456789101112# 查看ssh登陆成功日志/var/log/wtmplast | grep ip# 查看ssh登陆失败日志/var/log/btmplastb | grep ip# 可以通过以下参数过滤日志 last和lastb参数一致# 显示最近10条登录失败日志lastb -n 10 | grep ip# 显示从2021年1月1日 晚上8点后的登陆失败日志lastb -s "2021-01-01 20:00:00" | grep ip# 显示直到2021年1月1日 晚上8点前的登陆失败日志lastb -t "2021-01-01 20:00:00" | grep ip# 以上两个参数结合客查询一个时间范围内的日志信息
不过当攻击者使用s ...
Windows应急响应笔记
可疑账号排查0x01. 新增账号排查1234567# 使用PowerShell获取所有用户列表Get-WmiObject -Class Win32_UserAccount# 或者使用net查看用户名net user# 使用net user查看用户的具体信息net user administrator
0x02. 隐藏账号排查使用Ctrl + R运行lusrmgr.msc即可查看到隐藏账号
也可以重点关注Administrators组是否有新增管理员用户
0x03. 克隆账号排查克隆账号无法通过上面的方法去排查,如下图看不到新增的用户admin$,不过当服务器重启后再次打开就能看到克隆账号
也可以直接通过D盾去发现异常账号
也可以通过注册表查看,但是需要修改权限,win + r运行regedt32,进入路径HKEY_LOCAL_MACHINE\SAM\SAM,若看不见则表明权限不够,对最后一个SAM鼠标右击添加可访问权限。
也可以直接通过命令去查询所有用户
1reg query HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users ...
burpsuite在代理环境下的问题
当我们使用Burpsuite对内网或国外网络做测试时都会挂上代理,但bp本身就是通过代理进行测试的,若什么都不设置是一定无法正常工作的。
正常使用bp的流量流向:通过浏览器发起的http请求->bp代理地址->重放到目标服务器的http端口服务;
正常使用代理的流量流向:主机发起网络请求->代理服务器->目标服务器;
故若在代理环境下使用bp抓包,放包实则是没有经过代理服务器,需要我们再设置一个上层代理。进入bp的设置界面,
其配置可以按照系统代理的配置进行设置
设置完即可正常工作
Cel-GO基础语法学习
一、基础用法前段时间学了点golang的基础语法,就来学习cel-go模块的使用,网上有用的教程倒是比较少,cel-go的github官方页面倒是给了点示例代码可以学习下。
1.变量使用示例123456789101112131415161718192021222324252627282930313233343536package examplesimport ( "fmt" "log" "github.com/google/cel-go/cel")// 入口函数func ExampleSimple() { // 通过NewEnv创建一个程序环境,并且该程序环境内声明了一个String类型的变量name env, err := cel.NewEnv(cel.Variable("name", cel.StringType)) if err != nil { log.Fatalf("environment creation error: %v\n", err) ...