zoukankan      html  css  js  c++  java
  • MISC 从标题中找信息

    在做隐写的时候,思路很重要,当然有时候会感觉思路不够用,那怎么办呢?记住看隐写的题目名字很重要,因为很多时候,隐写题的标题里就隐藏了信息。

    本文实验地址为:

    实验:CTF-MISC练习之编码1(合天网安实验室)

    进入实验机,打开http://www.ctfmisc.com/firstbl00d/后,我们仅仅看到一张图片以及一段简单的文字描述,除了网页的标题“BASE64 & MD5 & COOKIE”外,表面上没有任何有用的信息。

    继续看题目,此时查看页面的Cookie也看不到任何有用的信息。

    这里找不到异常是不是可以看一下图片本身是否携带了提示信息(比如Exif等)。将网页中的xctf.jpg图片保存下来之后,通过Exif.py文件,通可以读取xctf.jpg中的Exif信息,如图所示:

    发现了一个可疑的字符串RkFCQTgzOEY4QkIyOEU3NUZGNjVGMzRENEY5NDMwRDc=

    这明显就是一个base64题目的标题也有说明我们解密一下在主机的桌面有一个JPK工具,打开JPK,输入RkFCQTgzOEY4QkIyOEU3NUZGNjVGMzRENEY5NDMwRDc=,在JPK的菜单中依次选择ASCII、Decode、Base64菜单项,就可以对其进行解码操作了,得到的结果为FABA838F8BB28E75FF65F34D4F9430D7。

    注意标题,这是md5加密,我们网页在线解密一下

    套路防不胜防,xctf。

    进行做题访问http://www.ctfmisc.com/firstbl00d/xctf.php,网页的内容仍然没有有用的提示信息,不过网页的标题是COOKIE,因此我们可以查看网页的Cookie。使用Google Chrome浏览器打开xctf.php页面,按下F12调出开发者工具,切换到Network选项卡,按F5刷新页面,就可以看到Cookie里面的内容了,如图所示:

    Cookie内容为next-step=bjN4dDV0M3A%3D,其中%3D为等于号“=”的编码,因此字符串也就是bjN4dDV0M3A=,这也是一个BASE64编码的字符串,再次使用JPK工具对其进行解码,得到明文n3xt5t3p。

    我们访问http://www.ctfmisc.com/firstbl00d/n3xt5t3p 这个URL,发现页面跳转到了http://www.ctfmisc.com/firstbl00d/n3xt5t3p/index.html,这本是再正常不过的事情,不过根据页面的文字提示“你刚才看见KEY了吗”,是不是在跳转的过程中还有什么提示信息呢?同样在Google Chrome浏览器中按下F12打开开发者工具,并切换到Network选项,再次访问http://www.ctfmisc.com/firstbl00d/n3xt5t3p页面,我们看到了两个301跳转,如图所示:

    对于访问目录的URL,通过一次跳转来到index.html页面是正常的事情,但是这里居然有两次跳转,显然就不太正常了。我们点击两个301跳转,看看里面都有什么信息。我们看到的是,第二个301跳转的HTTP响应头信息中存在这样一个选项Set-Cookie:check=0,其他就没有什么特殊的了。

    这里需要发挥一下想象,我们访问的是n3xt5t3p,而最终跳转到的页面是n3xt5t3p/index.html,因为有两次跳转,也就是说在这中间还有一个页面。因为之前访问的都是php页面,所以我们猜测其中有一个index.php(是的,CTF比赛的时候就是需要大胆的去猜想,然后通过实际操作来进行验证)。访问http://www.ctfmisc.com/firstbl00d/n3xt5t3p/index.php,没有出现404错误,而是跳转到了index.html,实际结果表明index.php页面是存在的。

    结合上面的分析,可能需要Cookie中的check=1时,访问index.php才不会进行跳转。

    我们尝试一下用,burp截包,然后我们把Cookie字段的check=0改为check=1,然后点击Forward按钮将HTTP请求发出去,如图所示:

    此时,我们就可以在浏览器端看到进一步的提示信息了,提示信息如下:

    WORD is a common english word
    len(WORD) = 4
    md5(WORD + '_heetian') = '84323c9b4fdb2539b4fb69b82b0189e7'
    FLAG = md5(WORD)
    

    这里嗯!看到flag了md5(WORD),但是好像需要解密。利用python的hashlib库可以十分方便的进行MD5哈希值计算,对于4个字母的单词,我们可以通过暴力枚举的方式,方便而又快速的找到上面的Flag。将下面的内容保存为一个py文件,双击后等待一会就可以看到运算结果了。

    import hashlib
    import string
    def crackMd5(dst):
    dst = dst.lower()
    for a in string.lowercase:
    for b in string.lowercase:
    for c in string.lowercase:
    for d in string.lowercase:
    word = a + b + c +d + "_heetian"
    tmp = hashlib.md5(word).hexdigest()
    if dst == tmp:
    return word
    return None
    if name == "main":
    raw_input(crackMd5("84323c9b4fdb2539b4fb69b82b0189e7"))
    

    Python基于缩进来控制语句块,如果直接复制运行时提示错误,也可以访问C:MisccrackMd5.py来进行计算。计算的结果为misc,如图所示:

    这一类的题目不要以为得到了flag就轻松了,后面还有解密过程。思维要严谨,不能老是看题目表象,真题往往没那么容易得出答案。

    合天智汇:合天网络靶场、网安实战虚拟环境
  • 相关阅读:
    苹果一体机发射Wi-Fi
    iphone 屏蔽系统自动更新,消除设置上的小红点
    data parameter is nil 异常处理
    copy与mutableCopy的区别总结
    java axis2 webservice
    mysql 远程 ip访问
    mysql 存储过程小问题
    mysql游标错误
    is not writable or has an invalid setter method错误的解决
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
  • 原文地址:https://www.cnblogs.com/hetianlab/p/14622562.html
Copyright © 2011-2022 走看看