山东省第五届网络安全竞赛

2017-10-19  本文已影响0人  Sund4y

第一题 栅栏密码

五栏解密成功得到flag

第二题

一张图片 很明显是摩斯电码拉长了,修改图片高度得到摩斯电码

摩斯电码解密得到flag

第三题

    打开是一串字符串EzkuM0yGAzA2n3WbEaOJEHuOFmuOpN==看起来是base64,但是解密时错误,猜测是经过变换了,常见的变换看不出来有什么变化的就是rot了,试试rot13再base64得到flag

第四题   js(未解)

第五题  算法逆向 

function encode( $str = '' ){

$strrev = strrev( $str );

$string = '';

for( $i=0; $i < strlen($strrev);$i++ ){

$char = substr( $strrev, $i, 1 );

$ordChar = ord( $char ) + 1;

$char = chr( $ordChar );

$string = $string.$char;

}

$string = base64_encode( $string );

$string = strrev( $string );

$string = str_rot13( $string );

return $string;

}

字符串是   ==jEgWTn8kJrRyRFBuKJLuzH1LmDTAzs

先是字符串逆置,然后逐个字符ascii加1,再经过base64加密,再逆置,再rot13加密,逆序加密过程就得到了flag

第六题(未解决)

Crypt-命运石之门

第七题

LINUX逆向,先是strings看了一下,输出了where is flag? 用IDA看一下也是代码很少,只有main函数有点可疑,

看到了好几个奇怪的数字,右键转换字符串看到了flag字样。。。。


应该flag是从右向左看FLAG -409849uio2jklsj4kl

第八题(未解)

又是一个linux逆向

第九题(未解)

又是一个linux逆向

第十题 (未解)

一个creakme

第十一题

日志分析,打开文件是sql注入日志文件,应该存在盲注组成flag,把日志中的url编码转一下方便阅读

从下面可以看到查询的是char_db下的flag表

CONV函数是转换数字进制,比如CONV(5,16,2)=101,是把5从16进制转换为二进制,这里可以看到字段名也是flag


经过大佬的提醒才知道日志时间顺序被打乱了,这里是基于时间注入的,把时间排序之后看起来就有头绪了

附上排序脚本

这样得出来是时间对应的字符位置比如['13:15:17']['4']说明这个字符第四个位置的二进制值等于1,相同时间取最后一个值,比如

['13:15:17']['2']

['13:15:17']['3']

['13:15:17']['4']

['13:15:17']['5']

['13:15:17']['6']

['13:15:17']['7']

这样的就取7,也就是这个字符的第七个位置的二进制值是1,和其他位置拼起来转换二进制,相应位置改为1,再逆序就得到flag的二进制了


第十二题


做完事情要把屁股擦干净,这题没有思路,最后看了writeup才知道原来是编辑完vi文件之后有备份,只用ls是看不到全部文件的,要用ls -al

最后vi -r .me.swp看到了flag


第十三题流量包

题目没有提示,先过滤了http包,看了几个响应包得到flag

第十四题 流量包(未解)

第十五题

磁盘恢复,winhex打开文件,看到flag

第十六题

DR notepad++打开搜索flag得到flag

第十七题 好基友

打开是jpg图片,binwalk分析看到zip文件,解压得到flag

第十八题 

打开是jpg图片,详细信息看到flag

第十九题  

损坏的gif图片,修复头文件得到flag

第二十题

   打开时docx文档,改成zip解压缩得到flag.xml,看到flag

第二十一题  

加密压缩包,提示银行卡密码,6位数字字典得到密码,解压出来是docx文档,全选右键->字体->把隐藏属性去掉得到flag

第二十二题  

字符统计,简陋的脚本

s=input_raw("")

l=range(len(s))

for i in range(len(s)):

l[i]=s[i]

for j in range(len(s)):

count=1

for k in xrange(j+1,len(s)):

if l[j]==' ' or l[k]==' ':

pass

elif  l[j]==l[k]:

count+=1

l[k]=' '

if l[j]!=' ':

print l[j],"    ",count

第二十三题   

打开题目是一个hint.txt的文档,是很多的坐标值,还有一个mp3文件,先看看hint是什么吧,用python的Image模块把图画出来

得到一个二维码,扫描结果是  MP3stego的密码在1000-1300之间。已经给了mp3密码的范围了,剩下的就是跑字典解密码了

写个脚本破解

第二十四题 

  F12看源码得到flag

第二十五题   

一串串的数字,刚开始没明白什么意思,后来google了一下,看到实验吧有类似的题,而解题步骤就是writeup上的步骤,题目要求是求其中在一条线上(行、列、两个对角线)连续四个数的乘积的最大值,这里是实验吧writeup 

http://www.atomsec.org/%E7%BC%96%E7%A8%8B/%E8%A5%BF%E6%99%AE%E5%AD%A6%E9%99%A2ctf%E7%BC%96%E7%A8%8B%E9%A2%98%E4%B9%8B%E8%80%83%E8%80%83%E4%BD%A0%E7%9A%84%E7%A8%8B%E5%BA%8F%E5%8A%9F%E5%BA%95/

写个脚本跑一下就很简单了


第二十六题  

手机九键得到flag

第二十七题  

名字是flag.exe,winhex打开看起来是vim输入方式

本来以为是照这样的方式输入得到flag,谁知道flag就是最后这一串字符。。。。。不按套路出牌

第二十八题  

解压打开就是flag

第二十九题    

看了图片没有什么思路,看了writeup是google了这个图片,学习一下

第三十题  

打开是流量包,导出看到有一个zip包 ,导出保存,文件名是birthday,有加密,那就是8位数密码了,爆破解出图片,右键详细信息看到flag

上一篇下一篇

猜你喜欢

热点阅读