自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YuSec

该博客分享自己的学习经历

  • 博客(28)
  • 收藏
  • 关注

原创 DVCTF 2021 部分writeup

Start0x01 Crypto-Bootless RSA{"N": 148818474926605063920889194160313225216327492347368329952620222220173505969004341728021623813340175402441807560635794342531823708335067243413446678485411066531733814714571491348985375389581214154895499404668547123130986

2021-03-16 21:50:13 851 2

原创 *CTF 2021 lottery again

Start给了部分源码,先理一遍这个站的逻辑,首先index.html中是一个登录框,该登录框可以任意注册:每个新用户有coin:300,可以通过买彩票进行赚钱,赚够9999,即可买到flag:然后查看源码,找到买彩票的关键代码:app.Http.Controllers.LotteryController.php 28 line:$lottery = Lottery::create(['coin' => 100 - floor(sqrt(random_int(1, 10000)))])

2021-01-19 18:23:57 1722

原创 [BJDCTF2020]easy

[BJDCTF2020]easyStart开局看到这个:int __cdecl main(int argc, const char **argv, const char **envp){ __time32_t Time; // [esp+10h] [ebp-3F0h] BYREF struct tm *v5; // [esp+3FCh] [ebp-4h] __main(); time(&Time); v5 = localtime(&Time); puts("

2021-01-15 16:06:09 705

原创 [FlareOn4]login

[FlareOn4]loginStart前端验证flag:提取:var flag = document.getElementById("flag").value;var rotFlag = flag.replace(/[a-zA-Z]/g, function(c){return String.fromCharCode((c <= "Z" ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26);});if ("PyvragFvq

2021-01-14 21:15:18 1188 1

原创 [GUET-CTF2019]re

[GUET-CTF2019]reStartUPX壳:白給題,直接上exp:flag = ''flag += chr(166163712 // 1629056)flag += chr(731332800 //6771600)flag += chr(357245568 //3682944)flag += chr(1074393000 // 10431000)flag += chr(489211344 // 3977328) flag += chr(518971936 // 5138336

2021-01-14 18:29:22 618

原创 [WUSTCTF2020]level4

[WUSTCTF2020]level4Startint __cdecl main(int argc, const char **argv, const char **envp){ puts("Practice my Data Structure code....."); puts("Typing....Struct.....char....*left....*right............emmmmm...OK!"); init("Typing....Struct.....char..

2021-01-10 18:13:30 996

原创 [FlareOn3]Challenge1

[FlareOn3]Challenge1Start直接F5:int __cdecl main(int argc, const char **argv, const char **envp){ char Buffer; // [esp+0h] [ebp-94h] char *v5; // [esp+80h] [ebp-14h] char *v6; // [esp+84h] [ebp-10h] HANDLE v7; // [esp+88h] [ebp-Ch] HANDLE hFile

2021-01-09 14:27:27 504

原创 [MRCTF2020]Xor

[MRCTF2020]XorStart查字符串:反编译出问题,并且好像不是sp的问题:直接看汇编图:先看到第一个call sub_401050,这里压入了一个byte_4212C0和一个%s,说明输入的flag最终会存放到byte_4212C0,继续往下看到loc_4010B6这个段,关注edx,edx不断的在自增,最后出循环之后,与1Bh进行比较,大概就可以猜测edx存放的就是输入的flag的长度。不难猜测,如果最后edx的值大于0x1b,流程就会往右走,直接提示Wrong:往下看到

2021-01-09 13:39:18 1490 4

原创 [ACTF新生赛2020]easyre

[ACTF新生赛2020]easyreStartUPX壳,直接linux自带的UPX脱壳就行了查看字符串:定位到Please Input,交叉引用过去,来到关键位置:这里注意下类型:v13-v15和v21-v23都是int类型,所以flag的长度是12个字符先列出byte_402000的所有结果,然后用v1-v12进行碰撞,得到下标再+1得到的就是flagexp.py:key_hex_list = ['0x7e'] key_list1 = '}|{zyx

2021-01-07 00:09:14 484

原创 第四届强网杯 侧防 Rerverse

Start常规逆向题ELF64文件,拖进IDA,日常搜索字符串直接跟进去__int64 __fastcall main(__int64 a1, char **a2, char **a3){ __int128 v4; // [rsp+0h] [rbp-D8h] __int128 v5; // [rsp+10h] [rbp-C8h] __int64 v6; // [rsp+20h] [rbp-B8h] char v7; // [rsp+28h] [rbp-B0h] __int16

2020-08-24 21:02:10 1355 2

原创 ciscn 2020 Misc the_best_ctf_game

Start娱乐局Winhex打开发现flagexp.cpp:#include <iostream>#include <Windows.h>int main() { LPCTSTR lpFileName = TEXT("D://flag"); HANDLE hFile = CreateFile(lpFileName, FILE_GENERIC_READ, 0, NULL, OPEN_EXI

2020-08-21 22:16:20 1849

原创 ciscn 2020 Crypto bd

Start简单RSAfrom secret import flagfrom Crypto.Util.number import *m = bytes_to_long(flag)p = getPrime(512)q = getPrime(512)N = p * qphi = (p-1) * (q-1)while True: d = getRandomNBitInteger(200) if GCD(d, phi) == 1: e = inverse(d, p

2020-08-21 22:13:37 940

原创 ciscn 2020 reverse hyperthreading

hyperthreadingStart搜索字符串找到关键函数:int sub_401270(){ signed int v0; // eax HANDLE Handles; // [esp+8h] [ebp-Ch] HANDLE v3; // [esp+Ch] [ebp-8h] printf("plz input your flag:"); scanf("%42s", byte_40336C); Handles = CreateThread(0, 0, StartAddre

2020-08-21 22:09:54 508

原创 ciscn 2020 reverse z3

z3startshift+F12找到查看引用往下拉看到关键比较:发现Dst来自:memcpy(Dst, &unk_404020, 0xA8ui64);找到加密后的字符串,这里注意是int类型的,并且是小端存储的,所以17 4F 0 0 应该读成0x00004F17整理后就可以得到完整的加密后的字符串随后看到那一大堆乱七八糟的加密发现规律,6个七元一次方程,解出42个字符即为flagexp.pyimport numpy as npfrom scipy.linalg i

2020-08-21 21:51:54 655

原创 BUUCTF RE Youngter-drive by YuSec

Youngter-driveStart打开发现加了个UPX壳想手脱,发现好吧,直接脱壳机脱吧,脱完重新载入IDA搜索字符串,将flag放在Source中,后面就没了看看谁用了Source发现四处引用的地方,除了当前的,还有三处看到sub_411880对Source和off_418004常量字符串进行比较,这里应该就是最终加密后进行比较的看到StartAddress_0发现调用了sub_41112C进行处理Source这里有个细节需要注意,dword_418008是临界资源

2020-08-12 11:04:40 311

原创 GWCTF 2019 pyre YuSec

pyrepyc文件,直接在线反编译得到print 'Welcome to Re World!'print 'Your input1 is your flag~'l = len(input1)for i in range(l): num = ((input1[i] + i) % 128 + 128) % 128 code += numfor i in range(l - 1): code[i] = code[i] ^ code[i + 1]print codecod

2020-08-08 14:40:49 430

原创 GXYCTF2019 luck_guy YuSec

luck_guy拿到文件,file一下拖进IDA64关键函数patch_me,看到将输入的flag放到patch_me中进行操作,跟进去继续跟unsigned __int64 get_flag(){ unsigned int v0; // eax char v1; // al signed int i; // [rsp+4h] [rbp-3Ch] signed int j; // [rsp+8h] [rbp-38h] __int64 s; // [rsp+10h] [r

2020-08-08 11:33:41 498

原创 Windows Server 2003 IIS6.0+FastCGI+PHP

记录一次坑,参考了挺多文章终于搭完了搭建环境:Windows Server 2003 SP20x01安装完Windows Server 2003后,菜单->控制面板->添加或删除应用程序选择添加/删除组件,找到应用程序服务器勾选上,然后一直下一步即可。安装完成后在管理工具出现(IIS管理器),说明IIS安装完成打开就可以看到此界面,默认时只有默认网站的,这里我添加了一个Test网站。0x02进行PHP环境配置https://windows.php.net/downlo

2020-06-07 15:20:37 174

原创 SQL注入环境搭建

Start本文利用docker进行环境的搭建docker搭建环境比较简单本文在Kali虚拟下利用docker搭建SQL注入环境docker search sqli-labs,本文拉取第一个镜像docker pull acgpiano/sqli-labsdocker imagesdocker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs此时环境就搭建完成了,docker搭建环境的好处就是,各个环境独立存在,不会互相干扰。之后

2020-05-31 11:39:17 757

原创 Gushang 逆向 c写的第三个CM

Start这一次四个dll先将exe拖入IDA看总体流程来到Imports导入表发现没有调用dll,这说明是程序执行时手动调用的F5看反编译,这里利用Win32的函数动态载入dll,所以在导入表中不会显示,关于动态载入dll,可以参考https://blog.csdn.net/roshy/article/details/81944264将cm.dll拖入IDA,查看字符串交叉引用+F5这里又调用了两个dll,先调用了lib.dll中的change函数记住三个参数v1, 19, -8

2020-05-17 17:51:37 188

原创 Gushang 逆向之 c写的第二个CM

Start查壳这个附带了一个dll,先将DLLtest.exe放入IDA在导入表这里发现导入了check_go函数F5看到只调用了check_go对输入的flag进行验证将DLL拖入IDADLL和exe没有什么太大的区别,唯一的区别可能就是DLL相当于封装的函数,exe是调用函数的来到dll下的check_go进入check函数这里cut和change与上一个类似,不再做分析直接进入cpf3看到关键字符串最后还foreach了根据提示,最后必须输出功能正常,这里其实与s

2020-05-17 00:36:15 188

原创 BUUOJ [2019红帽杯]easyRE

StartIDA,Shift+F12跟进去,交叉引用F5来到该函数关键处sub_424BA0可以看出应该是strlen,先判断v53的长度是不是36位,之后作为for循环推出的条件。每一次都会对v53的单个字符与i进行异或之后判断是否等于下面这一串中的值写出脚本:得到第一条信息,the first four chars are 'flag'continue:对v56调用了10次sub_400E44进行处理,最后与off_6CC090进行sub_400360,根据经验,sub

2020-05-16 11:38:45 960

原创 Gushang 逆向之“c写的简单CM”

StartIDA,F5进行三次check先是cut:strncat(): 拼接字符串strncpy(): 字符串复制该函数将flag从a2到a3的部分剪切下来之后,存到a这个变量中,然后change: change函数cut中复制的a, 传入对每个字符进行ASCII码加2, 并存回去最后根据a6的值进行验证这里v4为输入的flag,第二和第三个为截取的大小,发现第一次check的是0-26,第二次check的是0-18,第三次check的是19-26,说明该flag的大小为2

2020-05-15 21:30:06 254

原创 Gushang 逆向之“一个娱乐向CrackMe”

Easy CrackMe0x01 逆算法IDA, 找到main_0,F5flag存到了v7中,之后有个判断,if (v10 < 0 || v10 > 10) 条件成立则打印Failed-> flag的长度在1-10之间,但是具体的位数不定,继续往下看发现是以位数作为入口点,继续往下看发现关键点,v8 != 9 则打印Failed-> v8 == 9则打印Success!, 该判断的标签为LABEL_21接下来用排除法,把位数排除了case 9:case 9:

2020-05-15 20:14:11 205

原创 2020第二届网鼎杯 青龙组 boom

boomStartIDA, F5flag是v5、v27、v26、v25、v24拼接总共三个挑战:md5在线加解密:https://www.cmd5.com三元一次方程组计算器:http://www.99cankao.com/algebra/unknwn3.php一元二次方程计算器:http://www.99cankao.com/algebra/quadratic-equation.php# flag{en5oy_746831_89127561}End...

2020-05-14 22:43:40 318

原创 2020第二届网鼎杯青龙组Reverse signal

signalStart无壳,直接拖进IDA,F5qmemcpy()内存复制,将unk_403040的内容复制到v4的地址下跟进unk_403040看到一堆数据,整理后得到 [0Ah, 4,10h, 8, 3, 5, 1, 4,20h, 8, 5, 3, 1, 3, 2, 8,0Bh, 1,0Ch, 8, 4, 4, 1, 5, 3, 8, 3,21h , 1,0Bh, 8,0Bh, 1, 4, 9, 8, 3,20h, 1, 2,5

2020-05-10 22:53:19 1286

原创 HackTM CTF Crypto RSA is easy #1

2020.2.1 HackTM CTF 的一道Crypto题这道题很简单给出源码:import randomfrom my_math import next_primefrom flag import flagdef egcd(a, b): x, y, u, v = 0, 1, 1, 0 while a != 0: q, r = b//a, b % a...

2020-02-16 21:18:10 590

原创 nullconCTF/Crypto/RockPaperScissors

2020年2月9号的nullconCTF Online的一道题拿到题目,打开rps.py是源码, 然后又给了nc的地址, 直接nc进去看给出的是一段文字(这里由于结束后官方关闭了端口,后面无法进行nc), 直接看源码, 不难发现,这是一道代码审计题, 题目给出的RockPaperScissors是石头剪子布. 下面我们一个函数一个函数的来看.def gen_commitments(): ...

2020-02-16 20:47:02 606

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除