2018全国大学信息安全竞赛-automan-wp

WEB:

0x00 easyweb

admin用户是没有密码的,但是当密码为空时,网页会自动填写。用hackbar构造空密码post,服务器返回cookies,浏览器保存,刷新获得flag

 

 CRYPTO:

0x01 flag_in_your_hand

输入token调用js加密,比较。正确返回flag。加密方式是md5,返回的flag是一串base64

Jscheck方法,暴露了数组,python还原。输入

 

0x02 oldstreamgame

流密码,32mask,816进制flag2^32爆破不可取。读脚本。

1.主函数第一个循环即写入100字节,第二个循环通过将tmp循环左移+output(^output)变为8位,写入文件。

2.Lfsr函数输入(R,mask),输出(output,lastbit)R初始为flag,长32位,每经过一次函数,R=output=(R*2)%2**32+lastbit即循环左移末尾补上lastbitmask32位不变。lastbit长度1位,有点类似于差分曼彻斯特编码,i=R&mask,i的末位为1时会发生跳变,为0时保持原数。在这个发过程中发现,当i1为奇数时为lastbit1,为偶数时为0

总结出这些规律后,不难发现key只有前32字节是直接与flag有关。后面的字节是后来补上的lastbit加密而成。所以利用这一特点,循环右移,计算奇偶,算出flag

贴出解密脚本和验证

 

Misc:

0x03 picture

Binwalk -eM 扫出一段数据,打开里面是base64python解码保存为一个文件

 

Winhex查看16进制,发现有点像zip压缩包,但头部为4B50,所以修改头部和后缀打开。

 

 

根据注释获得密码  integer division or modulo by zero

 

打开code,发现为uuencode,解码

 

0x04 验证码

输入32token与验证码获得flag

 

猜你喜欢

转载自www.cnblogs.com/kagari/p/8972122.html