0xgame RE wp
0xgame REXor::Random wp参考官解 看到一大堆,别慌,冷静分析 主函数大概可以划分成三部分:先检查了flag的格式和长度,之后⽣成随机数 v21 异或加密⼀边检查。注意密钥从 v21和 重点说⼀下中间随机数的部分。 我们如果仔细看了这些代码,就知道中间只是个异或,那么密文在哪,我们沿着算法网上找就能找到v13,不过还不能直接用(当然c语言可以直接用这个),这是小端存储的也就是说0c,4f,….,存储的,建议先去了解 那么问题就是中间的v21了,他是个(伪)随机数,只要设定了种子,每次出来的结果都是一样的(当然受到版本的影响) 12345678910inited = init_random(); std::string::basic_string(v20, v14); v6 = check((__int64)v20); std::string::~string(v20); if ( v6 ) { srand(0x1919810u); inited = rand(); } v21 =...
MoeCTF-Web
MoeCTF-WebPetStore 题解(pickle反序列化)审计源码,小白没发现什么,看了提示是pickle序列化与反序列化,查看Dockerfile,flag在环境变量里 pickle模块提供了一种简单且强大的方法来实现对象的序列化和反序列化,使得开发者能够方便地将复杂的Python对象转化为字节流并在需要时重新还原。 基本使用 12345678import pickledata = {'name': 'Alice', 'age': 25}serialized_data = pickle.dumps(data)deserialized_data =...
NewStar PangBai 过家家(2)
NewStar PangBai 过家家(2)dirsearch扫描到git泄露,githack找半天没找到,本文参考官解,只做参考使用 PangBai 过家家(2) | WriteUp - NewStar CTF 2024 最后用了githacker 没有有用的东西,看看Stash 找到后门 我们之前githack没找到有效信息的原因: Githacker的功能比较强大 Stash的作用: 有时会遇到这样的情况,我们正在 dev 分支开发新功能,做到一半时有人过来反馈一个 bug,让马上解决,但是又不方便和现在已经更改的内容混杂在一起,这时就可以使用 git stash 命令先把当前进度保存起来。随后便可以即时处理当前要处理的内容。使用 git stash pop 则可以将之前存储的内容重新恢复到工作区。又或者,我们已经在一个分支进行了修改,但发现自己修改错了分支,可以通过 Stash 进行存储,然后到其它分支中释放。 一些常见的 Stash 命令如: git stash 保存当前工作进度,会把暂存区和工作区的改动保存起来。执行完这个命令后,在运行 git...
NewStar PangBai 过家家(3)
NewStar PangBai 过家家(3)给了一个exe,peid查看 64位,然后显示PyInstaller,查了下,好像是要解包 解包参考 Python解包及反编译: PyInstaller Extractor+uncompyle6_pyinstaller解包-CSDN博客 Python 反编译:pyinstxtractor工具和uncompyle6库的使用-CSDN博客 用的pyinstxtractor.py 解出来pyc文件,然后需要反编译,用的unemp6去发编译,失败了,字节码什么太高,版本3.9 尝试各种方法,最终使用pycdc去反编译 pycdc教程: pycdc工具编译使用(纯小白篇,大师傅自动略过) - 吾爱破解 - 52pojie.cn 解除py代码 但是好像还是不全,可以用pycdas,看机器码 小白有点看不懂,直接问GPT,原来是异或那部分没反编译成功 写脚本吧: 12345678910enc = [ 40, 9, 22, 52, 15, 56, 66, 71, 111, 121, 90, 33, 18, 40, 3, 13, ...
NewStar blindsql1 web
NewStar blindsql1 web wp参考官解:blindsql1 | WriteUp - NewStar CTF 2024 发现单引号闭合 输入空格,=,union,/发现都被过滤了 是个布尔盲注,多试几个,然后可以写sql看看 1Alice'and((ord(mid((Select(group_concat(table_name))from(information_schema.tables)where((table_schema)like(database()))),0,1)))in('a'))# 然后写脚本,这里我参考官解,然后解释一下几个易错点 char = f’(ord(mid({tables},{i},1)))这里这块table不能直接放进去 也就是说 1char =...
NewStar web 臭皮踩踩背
NewStar web 臭皮踩踩背参考臭皮踩踩背 | WriteUp - NewStar CTF 2024,这里只是作为我个人做题记录使用,附加一点理解 题目需要用 nc...
NewStar RE WP
NewStar RE WPUPX本文wp参考官解UPX | WriteUp - NewStar CTF 2024,为了加深自己理解 64位,upx脱壳 主函数 关注到data,看看data是啥 交叉引用: 得到data 回到主函数看看key是什么 RC4算法: init_sbox(初始化s盒) 方法一RC4是一种流加密算法,本质是异或,因此可以a ^ b = c,c ^ b = a,将密文作为输入输入进去,就可以得到原来的flag 跑脚本,按着逻辑写就行 注意这里有一个细节,这里的数都是无符号数,也就是说data = [-60, 96, -81, -71, -29, -1, 46, -101, -11, 16, 86,81, 110, -18, 95, 125, 125, 110, 43, -100, 117, -75]都是无符号数,要给他转化,unsigned char 的范围是 0 到...
NewStar 这“照片”是你吗 web
NewStar 这“照片”是你吗 web源码提示: 为什么没有Nginx或Apache就能说明服务器脚本能够处理静态文件? 在一般的 Web 服务器部署中,静态资源(如图片、CSS 文件)通常由 Nginx 或 Apache 这样的服务器专门处理,因为它们效率更高,如果页面上的图标或图片等静态资源能正常显示,说明服务器脚本(如 Flask、Django 等)自己在处理这些文件请求,可以推测应用服务器(如 Flask...
逆向攻防世界CTF系列1-Hello,CTF
逆向CTF系列1-Hello,CTF下载文件首先查壳 是32位的。 上面的图看到了没有。说明这个软件是没有加壳的。是用Microsoft Visual C++ 6.0软件编写的。如果查到了是aspack的。那就说明是加了aspack的壳。您可以用专门脱aspack脱壳机来脱壳。很多高手都是用OllyDBG V1.10 手工来脱壳的。 可以先运行一下源程序,输入123,发现输出wrong 可能是要我们输出success才行。在ida中再看看,果断F5。 1234567891011121314151617181920212223242526272829303132333435363738int __cdecl main(int argc, const char **argv, const char **envp) { int i; // ebx char v4; // al int result; // eax int v6; // [esp+0h] [ebp-70h] int v7; // [esp+0h] [ebp-70h] char...