- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0opsCTF分析
0ops CTF/0CTF writeup
更多 HYPERLINK /entry/66364 \o 累计分享0次 0
0×00 0CTF『第一届0ops信息安全技术挑战赛,即0ops Capture The Flag,以下简称0CTF。 0CTF由上海交通大学网络信息中心和上海市信息安全行业协会指导,由上海交通大学信息网络安全协会承办,是2014信息安全技能竞赛校园赛首站。0CTF注册与参赛地址为。 比赛时间为北京时间2014年3月1日至2日,每天7时至23时,共32小时。』
看官方微博,这个比赛本来是面向上交校内的,就是校外可以做题但是不发奖,后来也给校外发奖了,整体感觉还不错,好多大牛过来刷题了,没有挤进前六名去……不过当做BCTF的一次练手吧,平时都在实验室打酱油,做个比赛还是可以学到不少东西的。写个Blog记录一下过程,题目只做简单描述,具体可以看官方页面,要登录才能看到题目,不知道现在还能否注册。
0×01 [Web]Spy[题]简单的Web题目,总共四关,每一关都要输入数字,并保证输入的数字比服务器给的大。1. text框最多输入3位数字,服务器随机返回4位数字,这个审查元素改一下maxlength属性就好了;2. text框最多输入3位数字,服务器随机返回数字,这个改maxlength属性不然过,但是发现服务器偶尔会返回三位数字,这样的话一直提交999,总会过的;3. 看谁出的数的倒数比较小谁就算赢!输入-1直接过了;4. 每人给出一个数,然后比谁的数的EVIL值大。啥是EVIL值?就是该数字每位ASCII码的乘积呗,比如’123′这个数,三位数字的ASCII码分别是49, 50, 51乘起来是124950,这个就是123这个数的EVIL值。这个题最多输入6位,服务器的EVIL值很大,不过输入0xFFFF就过了;
0×02 [Crypto]Classic[题]小丁丁发现自己置身于一个诡异的房间,面前只有一扇刻着奇怪字符的门。 他发现门边上还有一道密码锁,似乎要输入密码才能开门。。4esxcft5 rdcvgt 6tfc78uhg 098ukmnb[解]这个比较诡异……通过键盘布局解密:0ops
通过键盘布局解密
0×03 [Misc]IPv4[题]截止到2014.2.23,亚太互联网络信息中心分配给中国大陆的IPv4地址是多少个?[解]下载文件/stats/apnic/2014/delegated-apnicgz进行统计分析。文件格式为:
apnic|CN|ipv4||256assigned
等级机构|获得该IP段的国家/组织|资源类型|起始IP|IP段长度|分配日期|分配状态
我用Python解析的,读入每行数据split一下就好了,得到330393088。
0×04 [Exploit]Welcome[题]在服务器:32323上运行了一个程序,溢出拿KEY。[解]IDA分析程序,B函数可以溢出:
char *__cdecl B()
{
char *result; // eax@1
char s; // [sp+1Ch] [bp-40Ch]@1
int v2; // [sp+20h] [bp-408h]@1
__int16 v3; // [sp+24h] [bp-404h]@1
char v4; // [sp+26h] [bp-402h]@1
int v5; // [sp+41Ch] [bp-Ch]@1
?
v5 = 0;
memset(s, 0, 1016u);
puts(Welcome to 0ops CTF.);
fflush(stdout);
gets(s);
result = s;
*(_DWORD *)s = *(_DWORD *)HelloKitty;
v2 = *(_DWORD *)aHellokitty[4]; // o
v3 = *(_WORD *)aHellokitty[8]; // t
v4 = aHellokitty[10]; // \0
if ( v5 ) // 覆盖到v5即可
// 1016+4+2+1=1023 多覆盖一个byte即可
{
fd = (int)fopen(./flag.txt, r);
__isoc99_fscanf(fd, %s\n, s);
文档评论(0)