zoukankan      html  css  js  c++  java
  • 光棍节程序员闯关秀通关录

     第一关

    image

    按F12查看元素,在HTML代码中找下,发现一个颜色与背景色相同的超链接,直接复制提交或者将鼠标移动到对应位置会自动变成手型。

    image

    直接复制key提交,进入第二关:

    https://1111.segmentfault.com/?k=26a2edb9dc4e342ebbc38e180113bcce

     第二关

    image

    继续查看元素,在HTML的注释中找到了key:

    image

    复制key提交,进入下一关:

    https://1111.segmentfault.com/?k=efa33d077be89b0ae905359ebde7977b

    第三关

     image

    先查看HTML元素,没有找到KEY,然后再切换到network看下网络包,在服务器的响应头中发现key:

    image

    复制key提交即可进入下一关:

    https://1111.segmentfault.com/?k=a87ff679a2f3e71d9181a67b7542122c

    第四关

    image

    key都是一个像hash的东西,拿去MD5解密一下,http://www.cmd5.com/

    image

    上一关的key:a87ff679a2f3e71d9181a67b7542122c解密后得到4,既然进入第四关的key是4 hash之后的值,那么是否意味着进入第五关的key就是5 hash之后的值呢?

    image

    复制此key提交,进入第五关:

    https://1111.segmentfault.com/?k=e4da3b7fbbce2345d7772b0674a318d5

    第五关

    image

    看到有二维码,果断扫一下:

    Screenshot_2017-11-05-00-20-23-410_com.xiaomi.sca

    我靠….

    然后就是ctf对待图片常用的套路,把图片保存下来,用十六进制打开看下先:

    image

    直接复制key提交,进入下一关:

    https://1111.segmentfault.com/?k=bdbf46a337ac08e6b4677c2826519542

    第六关

    image

    还是拿去解密下,发现提示是收费的,讲道理的话不应该是很难破解的,然后试了下7的hash值:

    百度一下,找到一个帖子:

     image

    image

    复制key提交,进入下一关:

    https://1111.segmentfault.com/?k=1573402aa6086d9ce42cfd5991027022

     第七关

     image

    用好几个搜索引擎搜了一下,没有结果,用MD5解密了一下,没有找到,死马当作活马医,直接复制key提交,竟然过了….好大的脑洞。

    https://1111.segmentfault.com/?k=bfdb3d6931ebde0ae10e3b7279abc74b

     第八关

     image

    直接复制key提交:

    image 

    进错门了,啥意思,GET方法不行再试试POST方法提交。

    查看元素,修改表单提交的method为post:

    image

    选中key所在的输入框,回车提交,进入下一关。

    第九关

    image

    好多01,看花眼了都,好吧,这个搞不定看的攻略,因为是光棍节,所以所有的下划线位置都替换为1,这样的话就得到了一堆01字节,然后将每一组8位01比特转为一个int数字,然后将这个数字转换为字符,将所得到的的所有的字符拼接起来得到字符串s,再对s进行base64解码,然后将结果写出到一个tar.gz文件,打开文件里面有一张图片,key就在这张图片中。

    解码代码:

    import base64
    
    if __name__ == '__main__':
    
        # 加密原始文件路径
        origin_path = 'F:/test/binary.txt'
        # 结果输出路径,保存在哪里
        result_path = 'F:/test/result.tar.gz'
    
        with open(origin_path) as input:
            s = ''.join([chr(int(x, 2)) for x in input.read().replace('_', '1').split()])
        with open(result_path, 'wb') as output:
            output.write(base64.b64decode(s))
    

    然后去输出位置打开result.tar.gz文件,里面有一张图片:

    cang

    本来想OCR一下,奈何效果并不是很理想:

    image 

    还是人肉OCR,打出key:e4a4a96a69a1b2b530b3bec6734cdf52提交,进入下一关:

    https://1111.segmentfault.com/?k=e4a4a96a69a1b2b530b3bec6734cdf52

    第十关

    image 

    参考文档:

    1. https://1111.segmentfault.com/

  • 相关阅读:
    【原创】深入理解c++的右值引用
    【原创】c++拷贝初始化和直接初始化的底层区别
    【原创】Github团队协作之Pull请求
    【原创】基于多线程的银行家算法设计
    【原创】Git删除暂存区或版本库中的文件
    【笔记】程序员的思维修炼3
    【笔记】德雷福斯模型
    【原创】GC/垃圾回收简介
    数据库——JavaWEB数据库连接
    多线程
  • 原文地址:https://www.cnblogs.com/cc11001100/p/7789554.html
Copyright © 2011-2022 走看看