某国赛CTF密码学题目Writeup:RSA
题目 一个level1目录,内部是很多公钥文件,一个level2压缩包带密码,密码应该在level1解密拿到 level1有一个README,看一下内容 我们需要先恢复message内容 有两个python脚本,看名称一个是生成message,另一个是加密 message先看generate-plaintexts.py,分析一下原始明文的内容 这里我们可以得知share的格式是模数d : 余数k : 原始比特长度 123d = 一个素数k = S mod doriginal_bits = 原消息长度 但是仔细看脚本里的Asmuth-Bloom并没有真正做标准的Asmuth-Bloom重构条件,本质上只是把秘密整数 S 拆成了很多个 也就是说后面只要拿到足够多组(di, ki),就能直接用中国剩余定理把S还原出来 往后看生成的消息和share,先把message1.txt的内容被复制到 10 个plaintext文件的开头 message2到message10每个message都被分成10份share,分别放进对应的plaintext-xxx.txt 加密分析继续看encr...
某国赛CTF逆向题目Writeup:re3
题目 一个ELF和流量包,先看看流量包 是一个客户端的tcp通信流量,看样子是加密文件内容 ELF则是linux版本的PyInstaller引导程序,直接pyinstxtractor解包 得到了一堆pyc和相关环境文件,大部分都是依赖,client.pyc应该是我们要分析的文件 反编译尝试通过pycdc反编译获取源码 反编译失败,看样子是做了混淆,直接反编译字节码分析 可以看到_1667常量是一段加密,同时看到了b85decode函数名,应该就是base85,解码 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211...
某国赛CTF逆向题目Writeup:re2
脱壳010打开 UPX改了特征码,版本5.1.0 直接拖到ida分析不出来 这里我们选择动态调试脱壳,先找OEP,f9运行到入口 触发TLS回调函数断点,停在了ret上 64位UPX壳中不会用一个明显的跨段jmp指令跳向OEP,而是把OEP的地址压入堆栈,然后执行一条ret指令,这样CPU就会把堆栈顶部的OEP地址当作返回地址弹出来,并跳转过去 我们直接f8过去 此时进入了系统DLL地址,不用管,执行到用户代码 标准的UPX壳保存环境的方式,步过4次 此时当前的栈顶已经被修改了,内存中转到RSP,在栈顶位置下硬件断点,然后一直f9到触发硬件断点 此时正在恢复保存的寄存器状态,最后的jmp即是尾部跳转,直接f4过去,然后步过一下 可以看到已经解密完成,0x4014E0就是OEP 打开Scylla插件搜索IAT 找到两个IAT大小,因为这个exe只有几十kb,528字节的输入表正好,选择否,然后获取输入表 dump之后修复得到最终脱壳后的程序 运行报错,但不影响ida分析 第一层EXE通过ida逆向 可以看到这里是获取了用户的输入并和Str2进行比较,Str ...
某国赛CTF逆向题目Writeup:re1
题目 Loader ida分析 发现是打包的python源码,通过python3、ffmpeg等进行处理 逻辑如下: 12341. 检查 video.mp4 文件是否存在2. 解码嵌入的 Base64 数据 → 生成 stager.pyc3. 设置执行权限 (chmod 0x1ED = 0755)4. 通过 python3 stager.pyc 执行 Python 脚本 提取中间的base64解码得到pyc文件 12Qg0NCgAAAABK5llpWgkAAOMAAAAAAAAAAAAAAAAFAAAAQAAAAHN6AAAAZABkAWwAbQFaAQEAZABkAmwCWgJkAGQCbANaA2QAZAJsBFoEZABkAmwFWgZkAGQCbAdaB2QAZANsCG0IWggBAGQOZAlkCoQBWgllCmQLawJydmQMWgtlA2oMoA1lC6EBcmxlCWULgwEBAG4KZQSgDmQNoQEBAGQCUwApD+kAAAAAKQHaBUltYWdlTikB2gR0cWRt6YACAADp4AEAAOkIAAAA6QoAAAD6CXZpZ...
Struts2 XXE漏洞(CVE-2025-68493)分析及复现
Struts2 XXE漏洞 CVE-2025-68493漏洞点位置:com.opensymphony.xwork2.util.DomHelper.parse 环境java: 1234567891011121314151617181920212223import com.opensymphony.xwork2.util.DomHelper;import org.w3c.dom.Document;import org.xml.sax.InputSource;import java.io.IOException;import java.io.StringReader;public class Test { public static void main(String[] args) throws IOException { String xmlContent = "<?xml version=\"1.0\"?><!DOCTYPE root [<!ENTITY xxe SYSTEM \&quo...
帆软export/excel SQL注入漏洞分析及复现
官方通告https://help.fanruan.com/finereport/doc-view-4833.html 从官方通告我们可以知道漏洞点在某个 export/excel 接口 漏洞分析我们这里以11.0版本为例 一共找到两个版本,分别调用的Handler如下: 123com.fr.nx.app.web.handler.export.largeds.LargeDatasetExcelExportHandlercom.fr.nx.app.web.v9.handler.handler.largeds.LargeDatasetExcelExportHandler 分别跟进看了一下,解析的逻辑大差不差 暂且不管,随便调一个往下看,这里先看v9 官方说是SQL注入漏洞,那么我们重点关注sql相关语句,跟到doHandle方法下个断点 前两行分别是从请求当中的sessionID来获取一个模板对象以及对应的Calculator,主要是用于处理各种公式运算 这里的sessionID是每个表格每次导出所对应的sessionID值,随便导出一个示例表格可以得到 随后...
一次攻防演练从未授权访问到getshell过程
信息搜集首先从目标主页进行信息搜集,发现授权文件 经过一番查找发现是《微厦在线学习考试系统》的特征项目地址:https://github.com/weishakeji/LearningSystem 查了一下公开的漏洞,可能是因为比较冷门,基本没有,后来cnvd查了下发现洞还挺多的 但都是一些比较老的,也拿不到poc,遂尝试自行挖掘 前台任意用户登录前台存在短信登录功能,我们短信登录抓包,调试分析前端源码 发现js存在一个校验验证码的过程,这里几乎可以确定能绕过 后续分析出短信登录校验逻辑为: 1前端校验验证码,md5(手机号+6位验证码) = 短信验证码响应包的result值 抓包观察验证码响应包 这里的result就是密文,搓个脚本直接爆破 123456789101112131415161718import hashlib# 固定前缀prefix = "18781348729"# 目标 MD5target_hash = "xxxxxxxxxxxxxxxxxxxxxxxxx"# 暴力破解六位验证码for i in rang...
MSI样本分析方法
前言 攻击者经常选择使用MSI安装程序来交付和执行恶意代码,因为这些文件可以将有害的可执行文件和脚本嵌入到看似合法的软件包中,从而逃避检测。滥用MSI文件中的自定义操作来在安装过程中运行恶意代码,并配置安装程序从远程服务器下载其他恶意软件。通过伪装成合法软件,攻击者欺骗用户执行这些文件,MSI安装程序由受信任的Windows服务处理,使恶意软件更容易绕过安全产品并保持未被检测到,这种隐身性和多功能性的结合使MSI文件成为网络攻击的一个有吸引力的载体。 MSI(Microsoft MSI)文件是包含有关软件安装的详细信息的数据库文件,存储安装过程中的数据,包括配置设置、要安装的文件和安装说明,确保结构化和高效的软件部署。此外,MSI文件提供修复和更新现有安装的功能,使其成为软件管理的通用和高效工具,设计用于与负责应用程序管理的核心Windows组件Windows Installer服务一起使用,这种标准化和多功能性也使MSI文件成为恶意利用的常见目标。 因此笔者在这里总结了有关MSI文件的结构和功能的详细信息和分析方法,用以分析这些文件的潜在威胁。 MSI和EXE的区别首先我们来...
从Kimsuky组织msc攻击样本到GrimResource
从Kimsuky组织msc攻击样本到GrimResource前言近期笔者通过外网监测到一个Kimsuky组织的msc攻击样本,这里对样本进行分析,以及谈谈其利用的攻击技术 1SHA256: 57e9b7d1c18684a4e8b3688c454e832833e063019ed808fd69186c4e20df930a msc文件 MSC(Microsoft Snap-In Control)文件,是微软管理控制台MMC(Microsoft Management Console)用来添加/删除的嵌入式管理单元文件。通常通过MMC来管理,可点击“文件”菜单中的“添加/删除管理单元”操作来管理当前系统中已经安装的MSC文件。可以点击开始/运行,然后输入下列文件名就可以打开相应的控制窗口。 看到这个后缀,很多人可能已经想到了组策略编辑器(gpedit.msc),该样本即是通过msc文件实现攻击,利用特制的管理保存控制台 (MSC) 文件来使用 Microsoft 管理控制台 ( MMC ) 获得完整的代码执行并逃避安全防御 这项技术最早由Elastic 安...
Nanocore恶意程序分析
Nanocore恶意程序分析前言最近在外网发现一个有意思的Nanocore恶意脚本的样本,给大家分享一下 123SHA256: c6092b1788722f82280d3dca79784556df6b8203f4d8f271c327582dd9dcf6e1Sharelink: https://virusshare.com/file?2596ef126fb57cdf2ba563b05444ad0ec6dad6a0083b3c309ca9595e64ad0615 初步分析 源文件的大部分均为干扰用的字符串,直接正则替换提取出来,拿到核心代码 ^(REM|').* 混淆技术分析首先chr字符串可以很容易想到数值转换字符,我们用第一个混淆具体拆开分析一下 chr函数:数值转字符 479808:十进制数值,用于参与后续的计算 CLng函数:vbs中的CLng 函数,用于把表达式转换为长整型(Long)类型 &H1B90:这是vbs中的十六进制写法,代表0x1B90 以及其余的算术运算符 直接做计算得到: 同理第二个混淆: 通过python批量提取所有混淆后的...
