转载

我就是玩玩,和妹子无关!

早上刷某乎,看到这个: 怎么找到一个程序员做男朋友? ,顺着链接来到 这里 。

虽然啥也看不懂,但是看起来蛮好玩的样子:

begin 777 portal.bin M(R!796QC;VUE#0H-"B,C($ME>0T*#0I24T$@4'5B;&EC($ME>3H@*$XL(#<I M#0I.(#T@,C,S("H@30T*32!I<R!T:&4@9W)E871E<W0@9F]U<BUD:6=I="!P M<FEM92!T:&%T(&UA:V5S($X@96YD('=I=&@@,C,S#0H-"B,C($5N8W)Y<'1E M9"!!=61I="!142!G<F]U<"!N=6UB97(-"@T*5&AE($%U9&ET(%%1(&=R;W5P M(&YU;6)E<B!I<R!E;F-R>7!T960@=VET:"!T:&4@*BI24T$@4'5B;&EC($ME M>2HJ+@T*#0I@8&`-"D-/3D-!5"A$14-265!4*#$Y-S,W,BDN=&]3=')I;F<H M*2P@1$5#4EE05"@S,S,P-SDI+G1O4W1R:6YG*"DI#0I@8&`-"@T*(R!#05!4 M0TA!#0I5<V4@=&AI<R!G:7-T(')E=FES:6]N(&`W9#(S939E.3DY-&)B-F9A M93@W-&1A8C,U930V9F0W-6(Y9&0Q-6)E8"!R97-U;'0@87,@0T%05$-(02X- !"@`` ` end

搜了一下找到了 原帖 ,发现原来出来好久了已经,真是信息太闭塞。

好久没玩 CTF,手有点痒,所以就支起摊子开动了。

开始一头雾水,完全不知道该干啥,盯着这一坨字符串看了半天,旁边一同事说了句每行开头都是 M,然后就搜了下 每一行都是M开头 ,还真找到了 这个 ,真是大千世界,无奇不有:

(1)UUENCODE编码:这是很早以前在UNIX上使用的编码方式,其主要特征是:编码以BEGIN开头,以END结尾,并且每一行字母都以英文字母M开头。

随便找了一个 UUENCODE在线解码 ,扔进去之后就有能看懂的东西了:

    ## Key          RSA Public Key: (N, 7)     N = 233 * M     M = 9001     N = 2097233     (2097233, 7)     M is the greatest four-digit prime that makes N end with 233          ## Encrypted Audit QQ group number          The Audit QQ group number is encrypted with the **RSA Public Key**.      CONCAT(DECRYPT(197372).toString(), DECRYPT(333079).toString())          # CAPTCHA     Use this gist revision `7d23e6e9994bb6fae874dab35e46fd75b9dd15be` result as CAPTCHA.

哦,原来是RSA,虽然以前没在搞懂这玩意,但是还是了解一点,在加上强大的 Google,先看看原理:

  • 轻松学习RSA加密算法原理

先解决题目里 M 的问题,说是使得 N 尾数是 233 的最大四位数,一个脚本就搞定:

for i in range(999, 10000):   n = 233 * i   if n % 1000 == 233:     print i

然后就是用 RSA 解密了,当然不用自己动手了,找到这个:

  • RSA Python 实现

改了下原来的 keyGeneration 函数和主函数:

def keyGeneration(keyLength):     p = 233     q = 9001     n = p * q     fn = (p-1) * (q-1)     e = 7     d = computeD(fn, e)     return (n, e, d)      #Unit Testing (n, e, d) = keyGeneration(1024)  M1 = decryption(197372, d, n) M2 = decryption(333079, d, n) print M1 print M2

就得到群号了,这里就不贴了,233。

不过好像还没完,要验证码才能加入,又是个坑。

# CAPTCHA Use this gist revision `7d23e6e9994bb6fae874dab35e46fd75b9dd15be` result as CAPTCHA.

开始没想,以为就是 7d23e6e9994bb6fae874dab35e46fd75b9dd15be , 提交之后就给我拒了,拒绝理由还给我个 400 Bad Request , 挺专业!

仔细看了下发现好像是 git commit 的 hash,所以可能他的意思就是这次提交的代码的结果,clone 了他的gist,查了下 log 发现还真有这次提交,reset 过去之后就是 Roman Hitman ,还好刚才在 Google 的时候发现某大神以前写的 脚本 ,跑了一下得到了这些东西:

## Questions  1. The answer to life, the universe, and everything? Google 之 2. The tenth Fibonacci number? Google 之 3. `CONCAT(Date.FromKeyword("GFW sensive day").Format("MMDD", "ISO-8601"), Date.Now.Format("DDmm", , "ISO-8601"))`  # Join US QQ Group: * Group number is **CONCAT(D321 O1454 B10101110)** * Verify CAPTCHA is `CONCAT('K', ANSWER(Q1), ANSWER(Q2), ANSWER(Q3))`  QQ group number: 321812174 QQ verify code: Z425506040241

一激动赶紧把验证码扔过去测试了一下,被拒绝了。

看了下 Date.Now.Format 和 now 有关以为得自己拼接,然后拿 php 弄出来这个(这里有个小插曲就是斐波拉契数列的第10个数是55,不是34,详细见百度百科黑体加粗提示):

K4255JunJunSunSunWedWed0303

扔过去还是不对,就读了下 RomanHitman 源码,才发现是这个作者把开头的字母换成了Z,估计是想留个坑给别人吧,也怪我不仔细,改过了再跑一下就好了。

终于看到了Accept。

我就是玩玩,和妹子无关!

然后,我就默默的跑来写攻略的,果然是应该注孤生的。

PS:看了下群相册,居然还有什么终极三问,因为我也不知道同时掉水里该救谁,所以还是退了吧!

嗯,至此,所有的坑都踩完了,感觉心好累。

另外虽然觉得这么写出来可能不太好,但是我觉得既然拿出来浪费我一天时间,那我就只能对不住了!

原文  https://segmentfault.com/a/1190000004525980
正文到此结束
Loading...