CTF-安全杂项(十二)

声明:以下CTF题均来自网上收集,在这里主要是给新手们涨涨见识,仅供参考而已。需要题目数据包的请私信或在下方留言。

                             23.Only one file(来源:实验吧)

1.关卡描述


                                                

 

2.解题步骤


分析:

把文件改成zip后缀解压:

下载附件解压后,78个无后缀的文件名有规律排序的小文件,再加上这题叫“OnlyOneFile”,所以很正常的想法就是合成一个大文件,以下是python代码:

# -*- coding: utf8 -*-
import os

def foo():
	#读取所有文件名并排序
	FileList=[]
	FileNames=os.listdir(r'onlyOneFile')
	for fn in FileNames:
		if len(fn)==3:
			FileList.append(fn)
	FileList.sort()
	
	s=""
	path=r"onlyOneFile\%s"
	for fn in FileList:
		s+=open(path %fn,'rb').read()
	#xaa的8950 4e47是PNG头部
	f=open('onefile.png','wb')
	f.write(s)
	f.close()
	pass

if __name__ == '__main__':
	foo()
	print 'ok'

为了那句“听说linux很好用”,我提供一个linux合并多个文件的命令

cat onlyOneFile/* >onefile.png

事实上这个命令只会按文件名升序那样去合并,如果文件名不规范的我还是建议用py来写,当然有更好的命令可以一起交流:

        生成了一个png后,首先,查看十六进制数里面会不会隐藏了什么字符串,其次用Stegsolve.jar查看图片是不是隐藏了什么,很可惜都没什么发现。再出动神器binwalk,发现png后面都是zlib compress格式,但还是懵逼。之后再使用文件恢复工具foremost查看也没发现什么。
       中间折腾了很多,包括图片上油画的名字,《雅典学派》(The School of Athens),但都没用。

     最后的突破口是文件头部里面有一个字符串是写着Adobe Fireworks CS5,说明这个png是用 Fireworks 制成的,(科普君:FireWorks本身存储的源文件就是.png的格式,使用了额外的数据块(Chunk)来放元数据,所以如果打开FireWorks的源文件,是可以再次编辑的),处于懵逼态的我赶忙下载了一下FireWorks CS5,打开一看,立见分晓。

         FireWorks打开后,背景中有2个位图,单看第2个就很像一个二维码,很可惜,扫描没用。这个二维码看起来非常奇怪,感觉就是“白块黑底”,而正常的二维码是“黑块白底”,所以对图片进行反色,就是一个正常的二维码,扫描下就得到flag。(在FireWorks中进行反色的步骤是“滤镜”→“调整颜色”→“反转”)

        当然把二维码保存下来然后利用windows的画图工具 -- ctrl+shift+i进行反转,也是一样的。

另存---扫码:

CTF{L1nUx_1s_G00d}

                           24.2015RCTF(misc50)(来源:实验吧)

1.关卡描述


2.解题步骤


分析:

     题目要求我们下载一个文件,根据提示,好像是Ngnix的log,但是我没研究过这个,所以也不懂,下载下来以后,使用notepad++或者winhex打开,发现是RAR文件:

更改格式后打开,发现了真正的log文件:

是不是很熟悉,用过sqlmap的同学一看就知道,这就是跑sqlmap时的日志文件,其中包含了,爆表名,爆字段名,爆字段内容等所有语句,我们要找flag,直接ctrl+F,查找flag,发现如下语句

     省略了后面的好多。。因为实在太长。拖进urldecode里面,url解码。我选出部分解码后的代码你们看看

url解码------>http://tool.chinaz.com/tools/urlencode.aspx

       从这些里面发现了什么,发现sqlmap正在通过二分法爆flag表的flag字段内容,这就简单了,我们找到类似于!=82这样的地方,这个地方就代表着每一位爆出来的字符的ascii码,一共有三十个。

[82,79,73,83,123,109,105,83,99,95,65,110,64,108,121,83,105,115,95,110,71,49,110,120,95,83,105,109,125,5]

     最后一个的5有点不确定,因为我当时url解码只拖了这么多东西,不过不影响flag,因为那是一个多余的字符,我们把这些
转换为字符,我用python简单的写了一个转换,可以参考一下。

ROIS{miSc_An@lySis_nG1nx_Sim}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值