[Writeup] 方舟计划 Writeup

[复制链接]
查看476 | 回复1 | 2019-5-23 11:33:27 | 显示全部楼层 |阅读模式
题目地址:https://www.bugku.com/ctfexercise-competition-177.html

题目背景:
地球已经危在旦夕,此时火星已适合人类居住,地球人将移民火星,方舟计划应运而生,平凡的你因支付不起昂贵的方舟船票,所以你能寄托于买彩票中大奖从而获得一线生机,但是向来非洲血统的你怎么抽的中大奖呢,你现在危在旦夕,此时你如谈想起来你有个超高级的人工智能机器人,或许他能给你带来一线生机………
图片1.png

随便注册一个账号进去
图片2.png

由故事情节可知我们需要买彩票中大奖从而买到上方舟的飞船票,从而获救接下来就是常规的买彩票界面,当然不可能这样一直买下去,身为一方百姓的你危在旦夕,此时你想起来你有个超高级的人工智能机器人,或许他能给你带来什么佳音……….
图片3.png

根据提示,访问 robots.txt 发现一个目录 robots.php

发出了一段奇怪的指令
  1. 011000110110000101101001011100000110100101100001011011110011011000101
  2. 110011110100110100101110000
复制代码



图片4.png

将二进制转换为字符串,发现一个文件,于是访问该问下,下载得到源码

图片5.png
图片6.png

其中 $numbers 来自用户 json 输入

{"action":"buy","numbers":"1122334"},没有检查数据类型。 $win_numbers 是随机生成的数字字符串。

使用 PHP 弱类型比较,以"1"为例,和 TRUE,1,"1"相等。 由于 json 支持布尔型数据,因此可以抓包改包,构造数据:

  1. 1. {"action":"buy","numbers":[true,true,true,true,true,true,true]}
复制代码
图片7.png


有足够的 money 的时候得知不光是有钱就能上这艘方舟得,还得证明自己有智慧,解出如下rsa

图片8.png

想上飞船不仅仅是有钱就够了,你还得有智慧,解出这道题,你就可以获救了:一次 RSA 密钥对生成中,假设 p=473398606,q=451141,e=17 求解出 d
  1. import        gmpy2
  2. p        =        gmpy2.mpz(473398606)
  3. q        =        gmpy2.mpz(451141)
  4. L        =        (p-1)*(q-1)
  5. e        =        gmpy2.mpz(17)
  6. d        =        gmpy2.invert(e,L)
  7. print        d
复制代码
最后得到flag:D0g3{150754621171553}

回复

使用道具 举报

请问,我解出的是150754621171553,D0g3{150754621171553}是如何出来的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

5

主题

6

帖子

86

积分

打谱CTF

Rank: 3Rank: 3

积分
86