MISC-MISCall No cON Name CTF Quals 2014


No cON Name CTF Quals 2014年的一道CTF安全杂项题-MISCall的Writeup。

赛题概览

NoConName 2014 Quals: MISCall

环境

  • Linux
  • Python

考察点

  • Linux 基础
  • Git 基础
  • Python 基础

题目描述

No hints :( just go and get the flag.
翻译:没有提示,不要怂,就是干~~ (手动斜眼)

附件

ctf

Writeup

首先看下是什么文件

$ file ctf
ctf: bzip2 compressed data, block size = 900k

其实这里Ubuntu已经智能的识别出这个是一个bz2后缀结尾的文件了,从文件图标即可看出:

是一个bzip2的压缩文件,解压他再看是什么文件

$ mv ctf ctf.bz2
$ bzip2 -d ctf.bz2
$ file ctf
ctf: POSIX tar archive (GNU)

是一个tar文件,继续解压:

$ mv ctf ctf.tar
$ tar -xf ctf.tar

一个新的目录被创建

ctf@ubuntu:~/Desktop$ ls
ctf  ctf.tar
ctf@ubuntu:~/Desktop$ cd ctf/
ctf@ubuntu:~/Desktop/ctf$ ls
flag.txt
ctf@ubuntu:~/Desktop/ctf$ cat flag.txt
Nothing to see here, moving along...

文件夹里面的flag.txt是假的,查找隐藏文件看看:

ctf@ubuntu:~/Desktop/ctf$ ls -la
total 16
drwxr-xr-x 3 ctf ctf 4096 Jul 24  2014 .
drwxr-xr-x 3 ctf ctf 4096 Jan 12 08:22 ..
-rw-r--r-- 1 ctf ctf   37 Jul 24  2014 flag.txt
drwxr-xr-x 8 ctf ctf 4096 Jul 24  2014 .git

里面是一个git文件夹,看来这里是考我们git的基础知识。
关于git的教程,不懂的话可以百度:廖雪峰git教程

查看git的提交记录

ctf@ubuntu:~/Desktop/ctf$ git log
commit bea99b953bef6cc2f98ab59b10822bc42afe5abc
Author: Linus Torvalds 
Date:   Thu Jul 24 21:16:59 2014 +0200

    Initial commit

在这里看不到什么,只有一个提交与我们已经看到的文件。 但是repo有点太大了,如果只包含这个,所以这里还有其他的东西隐藏起来。 两个明显的位置是分支和储藏。
查看存储,并列出来

ctf@ubuntu:~/Desktop/ctf$ git stash list
stash@{0}: WIP on master: bea99b9 Initial commit
ctf@ubuntu:~/Desktop/ctf$ git stash show
 flag.txt | 25 ++++++++++++++++++++++++-
 s.py     |  4 ++++
 2 files changed, 28 insertions(+), 1 deletion(-)

来恢复这些文件:

ctf@ubuntu:~/Desktop/ctf$ git stash apply
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   s.py

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   flag.txt

可以看到flag.txt已经被修改了,同时还有一个s.py脚本。

看看脚本内容,运行看看:

ctf@ubuntu:~/Desktop/ctf$ cat s.py
#!/usr/bin/env python
from hashlib import sha1
with open("flag.txt", "rb") as fd:
    print "NCN" + sha1(fd.read()).hexdigest()
ctf@ubuntu:~/Desktop/ctf$ python s.py
NCN4dd992213ae6b76f27d7340f0dde1222888df4d3

拿到flag

NCN4dd992213ae6b76f27d7340f0dde1222888df4d3

总结

多注意细节,基础要扎实,这里来解读一下这个s.py脚本

#!/usr/bin/env python
from hashlib import sha1
with open("flag.txt", "rb") as fd:
    print "NCN" + sha1(fd.read()).hexdigest()

Python 摘要算法
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
具体参考:hashlib-廖雪峰


文章作者: 国光
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 国光 !
 上一篇
MySQL 手工注入之常见字符串函数 MySQL 手工注入之常见字符串函数
在手工注入中常常需要一次查询多个结果,这里字符串函数就派上用场了,参考了lcamry大神的文章,然后在此基础上记录了一些自己的想法。 手工注入字符串常用函数三个老朋友: concat() group_concat() concat_ws(
2018-01-15
下一篇 
Hexo博客无法搜索的终极解决方法 Hexo博客无法搜索的终极解决方法
以前在Hexo的next主题上遇到了搜索框无法加载出来的问题,已经一系列分析查找,终于完美的解决了Hexo博客的next主题的搜索问题,同理其他Hexo主题解决方法大致相同。这个标题用到了终极有点标题党的感觉了,但是为了SEO我是豁出去了~
2017-12-27
  目录