CISCN Re 第一题writeup

比赛时没看出来,就去做其他的了~ 参考其他队伍的wp自己整理了一下

ida main

看下逻辑,首先判断前缀是CISCN{,长度32
后面以两个_为界把输入分成两部分


后面是三个函数,进第一个
里面发现这个

1

不清楚,看下一个

2

原来是自己和自己异或,

cal.png

这就很清楚了,是md5初始化向量

看后面


h1.png

函数可逆,也不复杂

cipher1 = "10233622J984933H678N95F769010595"
get1=[]
for i in xrange(len(cipher1)):
    if ord(cipher1[i])<=0x39:
        get1.append(cipher1[i])
    else:
        get1.append(chr(ord(cipher1[i])-i%10))
cipher2 =''.join(get1)
print cipher2
#jimy

得到32位md5,可查

第二个函数类似,只是多了个xor
直接拿上面结果

a=0xC9CA0A6BF5534F142F29B64542099CF1 ^ 0x10233622B984933C678E95D769010595
print hex(a)
#ct6y

md5同样可查

第三个函数也类似,但是md5不可查
后面发现在写文件,dump出来

11111.png

先拿106c去异或发现文件头像jpg 改为116d异或
成功获得jpg

jpg

组合获得flag

re.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • •分类数据 •数据回归分析 •聚类数据 •如何构建机器学习问题 虽然还有其他模型,但是回归,分类和聚类在机器学习问...
    缩短了永恒阅读 4,694评论 0 3
  • 2018/3/16 17:34:51 WEB题 1.签到题 题目:key在哪里? writeup:查看源代码即可获...
    Sec小玖阅读 22,438评论 1 11
  • php usleep() 函数延迟代码执行若干微秒。 unpack() 函数从二进制字符串对数据进行解包。 uni...
    思梦PHP阅读 2,009评论 1 24
  • 没错,就是内购。 好端端的一个产品,非得加各种让人难受的限制,以期让用户付费升级,这真是非常低劣的玩法。 不止在于...
    ITJason阅读 158评论 0 0
  • (楔子) 你不必痛苦什么,悲伤只会让你更加无法自拔。 忘记,或许才是一种解脱。 为什么要经历,为什么又要忘记? 我...
    邬小悲阅读 174评论 0 0