Tan's Blog.

Tan's Blog.

Tough life needs no explanation

Challenge:Phase5
Phase 5解题思路逐行分析代码,可以看出在8048d76处调用了<string_length>函数获得输入的字符串,紧接着判断输入的字符串的字符个数是否为6,不为6就会爆炸。再往下对%edx、%eax初始化,进入循环。循环的内容是对输入逐字符分析,取出字符放入%ecx,和00001111相与,得到的结果放入%ecx,做0x804a1a0+%ecx* 4运算,用gdb调试器查看该地址的内容,将内容加到%edx中。如此循环6次,也就是读完输入的字符串,判断%edx=0x2a?不成立会爆炸。如此一来,基本上明确思路6个地址的内容相加为42,那就可以有很多种组合方式,我随便选择其...
Challenge:Phase4
Phase4解题步骤Phase4有两段主要代码,分别为、<phase_4>,在<phase_4>中调用了。首先查看一些输入的格式,同上题一样,都是两个数。但这道题和上一道题输入的顺序不同,初始化栈操作的顺序做了调整,输入的第一个数放在0x1C(%esp),第二个数放在0x18(%esp)。假设输入的数为a b,8048d3e处做判断:b-2≦2,不成立会爆炸,这里我设d=3。下面开始调用func4(8,3)。进入func4可以看到有许多call func4语句,推测为递归调用。func4的功能是计算a的值,根据func4的汇编代码写C++程序,计算a的值。1234...
Challenge:Phase 2 & Phase 3
Phase 2解题步骤从call read_six_numbers看出调用了一个读取六个数字的函数,所以这道题的输入应该是6个数。继续分析,发现0x18(%esp)存放第一个数,需要等于1。跳转至8048bf2,进行取地址操作,接下来就进入了一个循环中,从循环中分析得出下一个数总等于前一个数自身相加的和。当读完第六个数后,循环条件不成立,结束循环。那通过上面的分析过程可以得出输入的6个数,进行输入。 Phase 3解题步骤从代码中可以看到调用8048860 <__isoc99_sscanf@plt>来获取输入参数,查看一下需要输入的参数为两个整型数,接下来将第一个数与1比较...
Challenge:Phase1
Phase1使用环境Ubuntu 解题步骤按照昨天的步骤,首先得到Phase1的汇编代码输入命令 objdump -d bomb>aaa.txt那会将此程序的汇编代码写入到aaa.txt文件中,打开查看Phase1的汇编代码。可以从汇编代码中看到,将0x804a124中的内容mov到0x4(%esp),读取输入的字符串放入%eax,在call字符串比较函数中进行比较,当相等的时候炸弹解除。所以需要找到0x804a124里的内容,这里使用gdb调试器,查看该地址内容看到字符串内容,将字符串输入,解除炸弹 总结今天打开虚拟机,直接运行sudo ./bomb出现bash: ./bomb:...
201Challenge
想说一下,由于明天要中期答辩,再加上我们专业搞的工程认证项目,所以这次检查极为严格。其实之前已经准备的差不多了,但好无奈今天又一堆通知文件发下来,劈头盖脸地又是一通填,一通改,还要签字盖章,心态崩了。所以今天并没有怎么学习测试内容,只是抽空简单看了一下第二阶段的内容。 二进制拆弹题目描述第二阶段的主要内容是逆向工程拆除二进制炸弹,总共有6个阶段,炸弹运行各阶段要求输入一个字符串,若输入符合程序预期,该阶段炸弹被拆除,否则爆炸。 文件题目文件包含两个文件:bomb的可执行文件和bomb.c 使用工具objdump工具objdump命令是Linux下的反汇编目标文件或者可执行文件的命令,它还...
Web:BabyXSS
BabyXSS使用工具BurpSuite、PyCharm、XSS平台 解题思路打开题目的链接,看到这样一句话“The flag is in admin.php, and only admin can access it.”,进入admin.php得到所以这道题的关键就是找到token,那token是什么呢? 其实它是一个令牌,代表执行某些操作的权利的对象。在本题中它就是管理员身份的令牌。进入题目推荐的XSS平台,注册登陆,创建一个项目使用默认模块来获取管理员的cookies信息,按照里面的描述将代码植入怀疑出现xss的地方(message),再输入md5的验证(这个昨天的日志已经说过了,...
ProofofWork
PoW:工作量证明PoW的理解PoW通俗讲就是“通过工作以获得指定成果,用成果来证明曾经付出的努力”。工作量证明须要由工作者和验证者双方共同完毕.它有两层含义.1.工作者须要完毕的工作必须有一定的量,这个量由验证者给出.2.验证者能够迅速的检验工作量是否达标,注意这里的检验完毕过程必须简单.举几个例子:A跟B说,你给我还原这个魔方,B还原魔方须要非常多时间,而A验证却非常快,仅仅须要看一眼即可了.A跟B说,你给我解这个10次方程,过程非常麻烦,可是结果easy验证.A跟B说,你给我把这个游戏玩通关,B须要一定时间,而A验证却非常快.RSA算法基于一个十分简单的数论事实:将两个大素数相乘十...
Crypto:What's RSA
What’s RSA使用工具OpenSSL 解题思路题目给出两个文件,一个是待解的密文,另一个是解密用到的私钥,也就是解密规则。那我借助了一个开放源代码的软件库包OpenSSL,它囊括了主要的密码算法,本题用到RSA算法,直接输入命令行就可以解密。利用rsautl命令进行私钥解密。-decrypt:用RSA的私有密钥对输入的数据进行解密。-in filename:需要处理的文件,默认为标准输入。-inkey file:指定我们的私有密钥文件,格式必须是RSA私有密钥文件。-out filename:指定输出文件名,默认为标准输出。读取写出的文件,GET! 总结科普RSA的来源,是三位科学...
Web:RapidTyping
RapidTyping使用工具PyCharm 解题思路打开题目给出的网页内容,要求在2.5s内输入图中给出的字符串,显然手动输入是不可能的,除非你开启炫舞100倍速模式依然风生水起,不然的话这道题还是需要写个脚本跑一跑。查看一下页面的源代码,发现图片是svg格式,那什么是svg呢?SVG就是可缩放矢量图形,基于可扩展标记语言,用于描述二维矢量图形的一种图形格式。与传统的图像格式不同的是,SVG采用文本来描述矢量化的图形,这使得SVG图像文件可以像HTML网页一样有着很好的可读性。当用户用图像工具输出SVG后,可以用任何文字处理工具打开SVG图像,并可看到用来描述图像的文本代码。掌握了SV...
Misc:Email
Email使用工具Wireshark、7-zip console、PyCharm、PDF阅读器 解题思路打开pcap包,是截获一个邮件读取的全过程。筛选,得到的结果进行追踪TCP流调一调流,拖一拖拽一拽,可以看到邮件的正文,但正文内容显示不全还可以看到有个附件,附件是用base64编码过的把这个流的内容以原始数据形式保存下来,用记事本打开,会惊奇的发现:咦,正文内容可读了。但那些正文部分的基本都是废话,可以忽略,但有一句话要重点关注,就是附件密码记下来,后面有用。接下来就是处理附件了,附件的格式是个压缩包,去下载一个.7z的解压软件,先随便创建个.7z的压缩包,拖进010Editor瞧一...
avatar
Yolanda
witness me