攻防世界CTF
初学CTF的一些做题记录
^Norming
这个作者很懒,什么都没留下…
展开
-
暑期CTF练习——第七周
攻防世界reverse进阶区babyxor查壳说是未知就很无奈,但是拖到ida分析不出来,还是有壳的,拖到OD脱壳函数sub_40108C函数sub_401041函数sub_4010C3这三个函数的操作与输入的字符串没有关系,所以在OD动态调试,分别在这三个函数中下断点,把三个字符串连起来即为flagflag是:flag{2378b077-7d6e-4564-bdca-7eec8eede9a2}...原创 2020-08-21 10:53:42 · 207 阅读 · 0 评论 -
暑期CTF练习——第七周
攻防世界reverse进阶区simple-check-100查壳ida打开看主函数可以发现72行有一个check,只要绕过第76行代码,就能够获取flag在Linux下,GDB调试,调试方法可以参考这篇博文https://blog.csdn.net/niyaozuozuihao/article/details/91802994将eax修改为1即可进入验证正确的程序运行流程 即可得到flagflag是:flag_is_you_know_cracking!!!...原创 2020-08-20 11:10:31 · 168 阅读 · 0 评论 -
暑期CTF练习——第七周
攻防世界reverse进阶区The_Maya_Society查壳ida64打开通过查找字符串找到了关键函数首先,程序将获取到的时间进行了MD5加密 for ( i = 8 * a2 + 1; i % 512 != 448; ++i ) ; v2 = i; i /= 8; dest = calloc(v2 / 8 + 64, 1uLL); memcpy(dest, a1, a2); // 将a1中的值存入dest中 *(原创 2020-08-19 10:56:03 · 192 阅读 · 0 评论 -
暑期CTF练习——第七周
攻防世界reverse进阶区parallel-comparator-200打开是C的代码:#include <stdlib.h>#include <stdio.h>#include <pthread.h>#define FLAG_LEN 20void * checking(void *arg) { char *result = malloc(sizeof(char)); char *argument = (char *)arg; *原创 2020-08-18 17:41:45 · 153 阅读 · 0 评论 -
暑期CTF练习——第七周
攻防世界reverse进阶区key无壳,ida打开main函数中发现了这个,看看sub_401100()函数特别长的一段,截取了个人认为比较关键的一部分,因为看到了“Congrats You got it!”,向上看,是个条件选择语句Sub_4020C0是一个关键函数也好长啊,先看看函数的每个参数分别是什么吧memory将值赋给了v13,所以v13就相当于memory,看一下memory,有两个地方用到了memory40528C中的,转换成字符串v50里面存的内容Sub_4原创 2020-08-18 10:48:48 · 172 阅读 · 0 评论 -
暑期CTF练习——第六周
攻防世界misc进阶区心仪的公司先下载看看,解压发现是个流量包,用Wireshark打开,追踪http流可以看到flagflag是:fl4g:{ftop_Is_Waiting_4_y}原创 2020-08-14 21:16:30 · 222 阅读 · 0 评论 -
暑期CTF练习——第六周
攻防世界misc进阶区很普通的Disco最近逆向看的有点秃,做个杂项换换口味附件是一个wav的音频,思路就是波形谱转换为二进制,使用工具:Audacity用工具打开文件后,处理看到如图所示:上面是1,下面是0,得到:110011011011001100001110011111110111010111011000010101110101010110011011101011101110110111011110011111101一共105位,不符合8位1个字符,于是在每个7位之前加个0,得到0110原创 2020-08-13 21:42:07 · 327 阅读 · 0 评论 -
暑期CTF练习——第六周
攻防世界reverse进阶区gametime这是个考验手速的游戏,当然对我来说还是跟不上的,想要靠把游戏玩通关获得大概还是不方便的,上ida看看吧~先查壳了IDA打开程序,在string窗口里搜索失败时程序输出的字符串"UDDER FAILURE! http://imgur.com/4Ajx21P",跳转到调用这个字符串的地方,查看伪代码。分析发现如果.text:00401554 75 21 jnz short loc_401577通过并跳转到loc_401577表示按键输入通过检测。那么修改j原创 2020-08-13 21:27:28 · 202 阅读 · 0 评论 -
暑期CTF练习——第六周
攻防世界reverse进阶区EASYHOOK参考了攻防世界的wp。查壳ida打开,关键字符定位查交叉引用后看伪代码发现程序首先打印please input the flag,当输入完成后对输入进行审查,如果输入的字符串长度没有13h(19),就会puts wrong,如果长度符合要求就进入下一个流程。之后的流程在输入长度正确和puts success之间有四个函数调用,推测,这四个函数调用中很可能有一个或两个是关键的加密函数。上OD:研究这四个函数对输入进行的加密操作,直接运行发现程序停原创 2020-08-12 22:22:51 · 312 阅读 · 0 评论 -
暑期CTF练习——第六周
攻防世界reverse进阶区babymips无壳,ida打开后发现是mips汇编,ida不能直接反编译,刚好jeb又到期了,无奈之下只好一个个命令读了……大概就是check时候先和(0x20-i)异或,前五个字符为“Qlj{g”,在偶数时,循环左移2位,奇数时,循环右移2位,最后比较:在这里插入代码片...原创 2020-08-11 21:06:28 · 236 阅读 · 0 评论 -
暑期CTF练习——第五周
攻防世界reverse进阶区deedeedee下载后查看,有两个文件第一个打开和以前一样是乱码看看第二个,是D语言写的稍微介绍一下D语言本来打算花一番功夫解题的啦,结果发现第二个文件是源码啊,而且还 有flag?!喜出望外.jpg,一分钟内解题了其实应该用第一个文件好好做一做的,但是奈何水平有限,花了不少时间也没搞明白,先这样吧,来日再说了flag是:flag{t3mplat3_met4pr0gramming_is_gr8_4_3very0n3}...原创 2020-08-07 17:26:14 · 293 阅读 · 0 评论 -
暑期CTF练习——第五周
攻防世界reverse进阶区zorropub查壳无壳,64位文件通过字符串找到了main函数,查看伪代码伪代码很长,大概是输两次数,输入的数与随机数的种子有关,且经过MD5加密等,可爆破得之:a = []for i in range(16,0xffff): c = 0 j = i while(j): c = c + 1 j = j & (j - 1) if(c == 10): a.append(i)为了将数输入到程序中,可以利用python的一个模块:subp原创 2020-08-06 22:58:26 · 188 阅读 · 0 评论 -
暑期CTF练习——第五周
攻防世界reverse进阶区流浪者查壳无壳,ida打开,先查找字符串有pass,去看看,交叉引用加F5后发现好像看不出来什么的样子再看下别的,pass下面的长字符串很吸睛,一路交叉引用过去sub_401890这个分别是在数字,小写字母和大写字母的不同情况下,ASCII码分别进行的不同变换sub_4017F010行的( *(_DWORD *)(a1 + 4 * v4) < 62 && *(_DWORD *)(a1 + 4 * v4) >= 0 ) ,这是3原创 2020-08-05 21:56:53 · 193 阅读 · 0 评论 -
暑期CTF练习——第五周
攻防世界reverse进阶区666无壳拖进ida64,看主函数先输入了一下flag{This_1s_f4cker_flag},大概率不对,果不其然分析,13行向上看有个条件可能是输入的字符串和enflag比较,enflag:把字符转换成ASCII码得到enflag=[105, 122, 119, 104, 114, 111, 122, 34, 34, 119,34, 118, 46, 75, 34, 46, 78, 105, 0]10行也有个条件判断,看来flag和v5有关,找和v5原创 2020-08-04 22:15:14 · 597 阅读 · 0 评论 -
暑期CTF练习——第五周
攻防世界reverse进阶区crackme查壳,发现是NsPack的壳如果想使用手动脱壳的话可以开OD,个人比较喜欢ESP定律法,推荐吾爱破解上ximo师傅的脱壳教程,如果不想学习也可以用脱壳机本来是打算手动脱壳的,但是奈何拖进OD就跑飞了,没办法单步,用了OD附加也不行,只好用脱壳工具了,以后有解决方法了再补充说明脱壳后拖进IDA字符串过去交叉引用看伪代码分析知道输入42位的字符,在while语句中,对输入字符串进行异或运算,这样,将byte_402130与dword_402150进行异原创 2020-08-03 22:20:51 · 204 阅读 · 0 评论 -
暑期CTF练习——第四周
攻防世界reverse进阶区notsequence其实这题在我做完逆向题目最基本的操作后就卡死了,数学渣渣在此膜拜杨辉,没看到wp之前实在想不到这是个验证杨辉三角的算法……查壳,找main函数之类的都省略吧,我们看到main函数生成的伪代码可以看到有两个check,执行完后判断个什么20次再转换MD5即可得到flag先看下这两个check上的函数吧sub_80486CD这个是验证杨辉三角的某条定理:第n行数字的和为2^(n-1)第14行就是表示验证2^v5==v3sub_8048783原创 2020-07-31 22:14:58 · 207 阅读 · 0 评论 -
暑期CTF练习——第四周
攻防世界reverse进阶区hackme查壳无壳,ida64打开,未找到main函数,查字符串如图,有输入祝贺之类的词句,过去看看,没发现有什么奇特的,查交叉引用OK,然后查伪代码,截取关键部分附上byte_6B4270呃,从第16行可以看出是22位的字符,但是验证的时候只循环验证10次,v7就是用来随机生成选择被验证的第某个字符的,并且将这些被选中的字符和byte_6B4270中的进行验证(30—37行),其实看的不太明白但是按照伪代码可以套一个Python脚本,如有理解的师傅烦请指原创 2020-07-30 21:42:57 · 191 阅读 · 0 评论 -
暑期CTF练习——第四周
攻防世界reverse进阶区EasyRe查壳ida64打开,未找到main函数,故而查字符串发现了flag,输入显示不正确,向后看发现了right,跳转,交叉引用F5查看伪代码可以看到是个24位的flag,嗯,倒着看和v5有关系,v5又和v4有关,理一下代码,可以得出,输入的字符倒序后每一位加1再和6进行异或,然后再和unk_402124也就是xIrCj~<r|2tWsv3PtI比较判断是否正确,反其道而行之编写Python脚本data=[ 0x78, 0x49, 0x72, 0原创 2020-07-29 11:10:20 · 188 阅读 · 0 评论 -
暑期CTF练习——第四周
攻防世界reverse进阶区Mysterious下载后先运行一下,随便输入一点数字:单击Crack没有什么变化,于是乎查壳无壳,ida打开没有找到main函数,查找字符串well done这个字符串很有意思,跳过去看看向下看看到了Buff3r_0v3rf|0w这个字符串,查看交叉引用F5查看伪代码如图,分析一下可以看到这一段关键代码,出现了flag,形式是flag{v5_Buff3r_0v3rf|0w}现在就应该找出v5了,向上追溯发现_itoa()和v5有关系,查看_ito原创 2020-07-28 18:25:25 · 300 阅读 · 0 评论 -
暑期CTF练习——第四周
攻防世界reverse进阶区elrond32下载后查壳无壳,ida打开没有看到main函数,shift+F12查找字符串红框中的是“数据访问权限”和“拒绝访问”,跳转过去查一下交叉应用mov一下,F5反编译查看伪代码出现了一个条件判断,判断过后分别指向不同的,先看下第三行的sub_8048414函数ASCII码转换后可以看到对a2进行switch选择,通过a1来找a2a1=[105,115,101,110,103,97,114,100]返回看一下sub_8048538函数原创 2020-07-27 13:14:17 · 128 阅读 · 0 评论 -
暑期CTF练习——第三周
攻防世界reverse进阶区secret-galaxy-300下载后有三个文件,推测差不多只是文件格式不同,选了exe文件查壳无壳,想要运行一下程序但是一闪而过看不清,使用OD运行一下有5个星系,似乎看不出来什么,拖到ida里看看main函数似乎看不出来什么,查查字符串发现除了那5个星系的名字之外DARK SECRET GALAXY似乎是个有意思的名字,双击看下会去哪儿对其进行交叉引用看到了红色框中有个函数___libc_csu_gala跳转过去查看伪代码试试这是一个数据原创 2020-07-24 23:36:48 · 170 阅读 · 0 评论 -
暑期CTF练习——第三周
攻防世界reverse进阶区Reversing-x64Elf-100查壳ida64打开,main函数查伪代码注意到第11行的sub_4006FD函数,查看8—10行是三个字符串结合后面for循环和if判断大概是这个v3-v5构成了个三行八列的二维数组,然后遍历这个数组和flag比较,相减后值应该为1就是正确的(emmm,,,不是很确定,如有错误烦请指正)编写一个Python脚本a= ['Dufhbmf', 'pG`imos', 'ewUglpt']s = ''for i in原创 2020-07-23 22:59:01 · 173 阅读 · 0 评论 -
暑期CTF练习——第三周
攻防世界reverse进阶区IgniteMe下载查壳ida打开12行可知flag的长度在4—30之间后面的部分可以看出flag是EIS{……}的形式,现在要找出大括号中的部分26和27两行经过判断之后出现了Congratulations,推测flag和sub_4011C0有关可以看出将输入的flag从第五位开始,v8中的每一位小写转大写,大写转小写注意到33行有个异或,先看一下sub_4013C0即变换过后的v8中的每一位和0x55异或后再加上72后再和byte_4420B0进行异或最原创 2020-07-22 17:55:57 · 308 阅读 · 0 评论 -
暑期CTF练习——第三周
攻防世界reverse进阶区ReverseMe-120下载查壳无壳,ida打开我们可以看到44行出现了v13和you_know_how_to_remove_junk_code这串字符比较,可以判断flag和v13有关,向上寻找和v13有关的伪代码,22行的sub_401000函数和v13有关,查其伪代码,也发现了41和42行出现了v13和0x25的异或关键部分应该是从第72行开始的,但是碍于才疏学浅看的一脸茫然,后来查资料得知是base64的解码过程附上从52上看到的一篇博文,介绍base6原创 2020-07-21 22:18:43 · 282 阅读 · 0 评论 -
暑期CTF练习——第三周
攻防世界reverse进阶区easyRE1下载后发现有两个文件似乎是一个32位一个64位先查一下32位的壳拖到ida居然一眼就看到了flag,有点出乎意料,尝试输入FLAG:db2f62a36a018bce28e46d976e3f9864和db2f62a36a018bce28e46d976e3f9864都显示不正确,似乎也没有密码的样子啊……看一下另一个文件吧查壳显示的有关flag的字符串居然是一样或许又是格式坑试了好几种格式之后成功得到flag是:flag{db2f原创 2020-07-20 22:15:49 · 224 阅读 · 0 评论 -
暑期CTF练习——第二周
攻防世界reverse进阶区answer_to_everything查壳使用ida64打开,主函数查看伪代码第5行是一个输出第6行是scanf说明有输入第7行not_the _flag似乎和flag有关,双击跳转第7行出现了YOUSUCK,那么相对应的else前面的第4行的语句就应该是和取得flag有关了Cipher from Bill \nSubmit without any tags\n#意思是来自billnsubmit的密码,没有任何标签后面的kdudpeh也许就是flag了原创 2020-07-17 22:48:29 · 232 阅读 · 0 评论 -
暑期CTF练习——第二周
攻防世界reverse进阶区re4-unvm-me下载后发现是pyc文件,由于不太了解这种文件格式,先了解了一下资料资料来源:https://blog.csdn.net/wo446100076/article/details/82345086怎样查看pyc文件?根据推荐使用了这样一个网站:https://tool.lu/pyc/对pyc文件进行反编译,得到如图所示将图中红色框中的逐行进行md5解密,再连在一起,得到了ALEXCTF{dv5d4s2vj8nk43s8d8l6m1n5l67ds原创 2020-07-15 22:21:57 · 166 阅读 · 0 评论 -
暑期CTF练习——第二周
攻防世界reverse进阶区tt3441810查壳没有拖到ida里面打开发现没有函数之类的,很简短的样子,也查不了伪代码字符串之类的……有点懵,故直接看了Hex窗口右边有许多字符,点了点好像也没有什么特殊的样子……经过提示发现flag就藏在这一堆字符里面,去掉干扰的字符就可以看到了得到了flag{poppopret}怎么输入都不对后来发现要去掉"flag{}"flag是:poppopret(震撼.jpg)...原创 2020-07-15 11:53:01 · 186 阅读 · 0 评论 -
暑期CTF练习——第二周
攻防世界reverse进阶区re1-100下载后查壳,无壳64位ida打开,找主函数F5查看伪代码发现这次的伪代码挺长的,一行行看发现这一段代码非常可疑,极大可能和flag有关尝试提交了94行的这串字符{daf29f59034938ae4efd53fc275d81053ed5be8c}不正确,哈,果然不会这么明显的~点了main函数里面出现的几个函数,看了伪代码都没有什么关系的样子,那就看看别的函数吧这有一个confuseKey()函数,名字就很可疑啊,跳转过去看看果然:红框中原创 2020-07-13 16:11:21 · 250 阅读 · 0 评论 -
暑期CTF练习——第二周
攻防世界reverse进阶区re2-cpp-is-awesome下载后查壳,无壳64位ida打开,主函数查看伪代码,关键的部分是这个循环语句第一个条件语句是判断循环结束的,第二个条件语句应该就是判断flag的点击跳转到off_6020A0点击方框中的字符,跳转到发现有’You should have the flag by now’这样的提示,大概flag就是和上面那串字符L3t_ME_T3ll_Y0u_S0m3th1ng_1mp0rtant_A_{FL4G}_W0nt_b3_3X4c原创 2020-07-13 11:40:46 · 304 阅读 · 0 评论 -
暑期CTF练习—Day5
攻防世界REVERSE进阶区srm-50下载后发现是一个应用程序,打开看看是输入邮箱密码之类的查壳无壳,32位,拖到ida里,打开发现和前几天做的题目不太一样,看不到main函数发现一个WinMain函数,那就先点击它查看一下伪代码好了。F5后是这样子的,最后返回了DialogBoxParamW,看不太明白什么意思……发现WinMain函数下面有一个DialogFunc,和返回的DialogBoxParamW有点像(此人已经开始瞎猜了),那就看一下这个函数的伪代码吧~~如图,发现了if判断,原创 2020-07-08 21:53:11 · 156 阅读 · 0 评论 -
暑期CTF练习—Day4
攻防世界REVERSE进阶区re-for-50-plz-50和之前寒假做过的一题相似,ida64打开发现是mips汇编的。对于mips架构下的逆向工程,ida不能进行反汇编查看伪代码,可以下载插件Retdec,只是对v.0.7版本的ida可能不识别。也可以下载JEB(可以先用试用版,免费且有百分之八十的功能),这个软件可以反汇编mips。有点觉得麻烦依然想用ida,之前学过一点mips汇编,看了一下主函数,截取部分如图所示:不是很复杂的样子,那就暴力解决直接读吧~.text:004013CC行的原创 2020-07-07 21:52:54 · 195 阅读 · 0 评论 -
暑期CTF练习—Day3
攻防世界REVERSE进阶区dmd-50查壳无壳。ida64找主函数查看伪代码,发现了这两组命令从第50行出现的md5推测可能是md5加密了,将55-81转换为ASCII码,得到:780438d5b6e29db0898bc4f0225935c0MD5解密是grape,发现是被加密了两次,第50行是个md5加密,55到86也是一个md 5加密,故而grape,加密之后是flag,然后再加密出的780438d5b6e29db0898bc4f0225935c0grape再MD5加密一次得到:原创 2020-07-07 20:58:34 · 215 阅读 · 0 评论 -
暑期CTF练习—Day2
攻防世界REVERSE进阶区Shuffle下载后查壳,查壳无壳。IDA打开,先用了64的,在主函数里F5查伪代码IDA提示本题不要用64,故改为32,找主函数查看伪代码,观察发现如图所示:按R键ASCII码转换得到SECCON{Welcome to the SECCON 2014 CTF!}flag是:SECCON{Welcome to the SECCON 2014 CTF!}...原创 2020-07-07 20:48:33 · 157 阅读 · 0 评论 -
暑期CTF练习—Day1
发现这题通过人数特别多,故尝试(笑哭)攻防世界进阶区密码学crypto—告诉你个秘密题目:636A56355279427363446C4A49454A7154534230526D684356445A31614342354E326C4B4946467A5769426961453067记事本中的两行字符,观察发现只有大写数字和字母,了解到有限,只知道base64,Hex,ASCII码之类的,base64的特点是大小写字母加数字,故排除,看样子也不太像可以转化成ASCII码,尝试一下Hex编码的转换。原创 2020-07-06 10:10:52 · 260 阅读 · 0 评论