现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇

现在位置:首页>独家> 正文

XDCTF2014 Writeup之Web和Crack篇

2014 /10/7 11:27

6,004

评论 8 条

0x01 Web20

什么,小P说来点彩头?先出个简单的,就WEB20吧。题目链接:WEB20hint > 大家不知道复活节要玩什么吗?(非前端题,请勿关注html注释、css、javascript等)

之前被HTML注释和小P的博客坑了很久 毫无头绪 还盯着图片看是否有隐写术之类。。。

折腾了一下然后去做后面的题目抢分去了 后来根据提示得知是考php彩蛋信息

?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 (PHP信息列表)

?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 (PHP的LOGO)

?=PHPE9568F35-D428-11d2-A769-00AA001ACF42 (Zend LOGO)

?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 (PHP LOGO 蓝色大象)

http://game1.xdctf.com:8081/H86Ki4NnCSVv/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

Your Flagflag-WhatisPhp-mtzeXAtcKA53

0x02 Web50

在业界都知道,哪一行都不好做,我们这一行也不例外,拿XSS来说,没两把刷子,你还能混得下去么,下面是某黑写的XSS编码神器,你值得拥有,但是为了版权问题,他在里面留了标记,找到标记,这神器就是你的!!牛x的你值得拥有........之前flag有点小BUG,现在已经修复了哦~

下载得到一个crx文件,拖到chrome的extensions里面看了下没啥标记,然后修改后缀为rar或zip解压。

想想也知道key不会这么快找到;这里没有再翻翻其他文件,也都没有发现flag,看下两个图片的EXIF信息,发现有XP注释!

(话说这题队友隔壁老王是直接用windows文件夹看到备注然后拿下提交,然后团队得分了。)

107 101 121 32 105 115 58 88 68 83 101 99 64 50 79 49 52

key is:XDSec@2014

0x03 Web70

大家都说XSS很不好玩,但是会玩的人就是很好玩,你觉得呢?呵呵

Jother编码提交exp和截图到邮箱得flag

XsSXD$3(201X@xiD@n

0x04 Web100

一开始做这道题就确定是隐写的方向了……直接用winhex打开一看,发现看不出什么名堂。

用steganabara和stegsolve看了一阵子随机图层,没发现什么隐藏信息。

于是回头继续看源代码……发现有注释提示

按照注释的路径尝试,发现是一个二维码,扫之……

扫出来是这么一个东西

阅读了一下文章,发现是将恶意代码隐藏在像素中躲避杀软……

然后用stegsolve的Data Extract功能,基于像素对比,一个个尝试,最终在red0上试出来了flag(虽然不知道原理,但觉得确实很好用,还有待进一步学习呐==)

0x05 Web200

自从小P告诉离休老干部le4f python怎么写网站以后,就一发不可收拾。这是le4f的新作:http://y0pk678.xdctf.com:8081/说明:本题flag形式为XDCTF{XXXX},填入XXXX内容即可。

http://y0pk678.xdctf.com:8081/help

http://y0pk678.xdctf.com:8081/read?file=readme

奇怪,为什么没全部显示出来

哦,我懂了些什么

哦,我懂了些什么

奇葩的码畜你不要卖萌了

这是newapp.py的说明文件

我猜你可能不知道还有第二行

我猜你可能不知道还有第二行

咦,怎么还有第三行

咦,怎么还有第三行

奇怪,为什么没全部显示出来

http://y0pk678.xdctf.com:8081/read?file=newapp.py

反复读取,拼接成完整的newapp.py

#!/usr/bin/env python

#coding=utf-8

__author__ = 'le4f.net'

import web

import random

urls = (

'/getflag', 'xdctf',

'/help', 'help',

'/read', 'read',

'.*','ctf'

)

def func(a):

if a == 'le4f.net':

flag = open("flagishere","r").readlines()[0].strip()

web.header('flag', flag)

return 'Nice Job!!!'

else:

pass

class help:

def GET(self)

try:

return "welcome to my first web.py project."

except:

pass

class xdctf:

def GET(self):

try:

web.input(_unicode=func(web.input(unabletoread = 'show me flag!!!!').get('unabletoread')))

return "flag is here?!!show me flag!!!!"

except:

pass

class ctf:

def GET(self):

try:

return "u may need help information."

except:

pass

class read:

def GET(self):

data = web.input(file = 'readme')

if data['file'].count('.') > 1:

f = 'readme'

else:

f = data['file'].replace('$','').replace('^','.').replace('*','').replace('\\','').replace('/','').replace('\"','').replace('\'','').replace('|','').replace(';','.').replace('<','').replace('>','').replace('&','').lower()

try:

print f

cont = open("./"+f,"r").readlines()

rand = random.randint(0,len(cont)-2)

return cont[rand]+'\n'+cont[rand+1]

except:

pass

else:

pass

if __name__ == "__main__":

app = web.application(urls, globals())

app.run()

根据代码发送一个get请求,在header中看到flag。

flagXDCTF{X1di4nUn1Vers1tySecT3AM}

0x06 Web150

最近,小黑在学习入侵技术的过程中得到一款功能十分强大的php木马,但是使用了一段时间发现,自己拿到的shell老是被别人登录,但刚开始学习的小黑,对php代码不是很熟悉,你能帮他分析下这代码吗?找到后门接收shell的密码作为key,不是后门密码哟........

下载下来发现是一个加密后的PHP。搜了一下,特征很像神盾php加密。

在网上找到一个PHP神盾的解密网站 http://blog.99tk.cn/decode#

上传解密,看到flag

XDSE@L0VEr2014

0x07 Web180

下载回来源码 看了数据库data.mdb里面没啥 然后发现了深度隐藏文件about.asp

是一个asp的大马 也找不到更好的办法了 就姑且认为这个版权的人就是我们要找到犯罪分子

<%@ LANGUAGE = VBScript.Encode %><%

Server.ScriptTimeout=999999999

UserPass="3895" '密码

mNametitle ="gh0st2014" ' 标题

Copyright="qq:2725629821" '版权

那么昵称就是gh0st2014,QQ很新,社工库里面肯定无收获,那么这题就是考一些常规的社工和信息收集了。

访问此人空间 提示

很简单 直接 gh0st2014猜进去 其实这里可是设计的难度大一点 贴近生活一点。

根据空间里面破碎的身份证和基本信息

性别: 男

年龄: 29

生日: 5月7日

星座: 金牛座

现居地:

中国 陕西 西安

推出此人身份证610121198505073895

然后登陆 获得key:Welcome@Xidan$@clov@r

0x08 Web250

小P闲暇时间开发了一个留言板,供浏览者与管理员进行交流,不过听说有点问题?地址:http://lsoyon.xdctf.com:8081/4CgtWuwdouSE/FLAG在管理员的cookie中。flag形如flag-xxxx。请自行测试确认能获得cookie,再点击提交审核,管理员会查看。管理员的浏览器是chrome最新版哦~提交审核后请不要删除你的留言,否则管理员看不到的哦~管理员2分钟看一次留言板,每次停留3秒。看过以后才能够再次提交审核。所以请测试真实通过后再提交。

于是尝试使用[script][/script]提交发现括号被过滤了,使用标签和HTML十进制编码成功绕过(这里正好用上前面题里的XSS神器: ),还蛮好用的)

成功弹出cookie

构造payload将cookie发到xss平台,却发现存在CSP协定……

然后就没有什么思路了….不知道其他队伍是怎么直接拿到cookie的 怎么搞定CSP的

我最后是做到后面的web270的时候,上传了shell,用菜刀连上后,上传了一个接收cookie的php。

也算是个YD的方法吧,哈哈,思路要开阔!

构造payload:

等了几分钟就收到管理员的cookie啦

0x08 Web270[1,2,3,4]

小P睡了一觉起来,发现黑客们都饥渴难耐,想日站想疯了。小P默默地看了看自己的网站:http://ph.xdctf.com:8082/感觉不知道放个什么程序比较好,而同服的另一个网站居然已经运营很久了:http://hlecgsp1.xdctf.com:8082/真不知道该怎么办……这是一个系列题目,分步骤给分。一共4个FLAG都在小P网站所在的服务器中。请黑客们不要破坏网站文件、数据库。一旦发现有阻碍比赛正常进行的现象,将会恢复服务器到最初状态。说明:4个flag都形如flag-xxxx

打开后发现时phpok的cms。

果断搜索下漏洞,发现有sql注入和文件上传。

文件上传的洞算出来时间戳跑文件名没有跑出来后果断换方法,尝试sql注入。

http://hlecgsp1.xdctf.com:8082/api.php?c=api&f=phpok&id=_project¶m[pid]=1%20UNION%20SELECT%201,concat(version(),%200x7e,%20user()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33

爆出管理员密码 登陆后台

找到文件管理,传个菜刀马

上大马 直接搜索flag

直接就得到3个flag,超级开心。

而在Web270[2]的flag中提示了第三个flag也在这台服务器上。

用菜刀访问/home/wwwroot时提示没有权限

用大马看下发现服务器设置了open_basedir

找一个能够bypass open_basedir的马上传,翻翻目录成功得到第三个flag,拿下了这题的firstblood!

web的题目就上面这些了,其中有3题我们是拿了一血的,哈哈。下面是破解类:

0x01 Crack100

逆向分析,获取key,题目tips:flag为44位,41位的请继续分析

PEiD查下,是.net程序。

用ILSpy打开,发现代码被混淆了。用de4dot脱下壳试试,发现加了.net reactor的壳

脱壳后就简单多了

比较坑的是

直接看这一段代码逆出来的是一个41位的flag,flag中还含有XDCTF2014,提交几次不对后,问了下管理员,管理员说要在仔细看看源码,可能忽略了一些步骤。

重新看代码后发现可能存在多个flag

由于smethod_1有关于base64的操作,使密文与明文的长度不同。

这道题拿到了1血,开心

0x02 Crack120

某天,小黑在某服务器上得到一个data文件,旁边有句挑衅的话“有种你就解开data中的数据”,小黑折腾了半天,没任何发现,但是推敲出,该目录下的另外一个文件,与data息息相关,你来试试?

题目给出了一个没有扩展名的文件和一个加密后的data。

打开没有后缀名的文件后发现里面多处出现.pyt,module,__name__字样,猜测这可能是一个pyc文件。

使用uncompyler.py反编译之~

这样有了源码逆起来就很简单啦,看不太懂的地方把它print出来看看基本也就明白了

运行下

这段不造什么时候才能进入,貌似要有连续127位相同?算啦,先不管了。

其余部分的逆算法很简单,如果是0x8?的话,表示有?个连续的1;如果是0x0?的话,则表示有?个连续的0。

运行后得到一个图片,flag就在图片上~

0x03 Crack150

这个是一个apk,找到key,题目

打开后发现是一个登陆界面,看下源码找到用户名和密码(buaa,123),成功登陆。

打开后发现界面与微信相似,里面有和一个人的聊天记录,打开看下叭

聊天中提到了前一阵子被媒体炒得很火的xxshenqi。

这是XXshenqi的部分源码。

果断翻下assets看看有没有什么有用的东西~

用UE看下图片数据,发现文件末尾附加了一个dex文件

提取出来转为jar报错

只好用notepad++打开看下

发现末尾有一段中文,将key md5编码后提交,成功通过: )

0x04 Crack180

ZZ发现土豪Ph在用SafeAccountSystem给Le4f打一笔退休金$23333,ZZ截断了支付过程的密文,打算捉弄一下他们把退休金打到自己账户Z2333上。密文点此处下载: http://game1.xdctf.com:8081/Z4l2Lu7XkNBa/crypt.txt支付系统的地址 game1.xdctf.com   端口,50008,请用nc连接(telnet不行)本题考点加密与解密,可是没这个分类,真拙计。本题flag形如xdctf{xxx},答案填入xxx即可。

创建ID后会被分配一个One-time-Password

丢到cmd5查询无果,继续测试Transfer of Account

发现send的信息中含有许多5位一组的AB数据,猜测为培根密码,尝试对其进行解密:

对这两串数据进行diff

发现差异节中包括前面题目生成的One-Time-Password

猜测b8c2b5c881f2b7f58a096a367a32be33为Ph的One-Time-Password

成功得到Flag

0x05 Crack300

逆向分析,比比谁更邪恶,题目

这道题不知道为什么,PEiD查不出壳,用IDA加载就报错,只能用OD分析了……略坑: (

先大概看下程序,401049处必须跳转,因此上面的两个字符串必须相同,得到0x40301F处应为XDCT

这里有一句检测断点的,到这里的时候别忘了改下标志位就好。

具体的分析过程就不详细写了,算法我用Python进行了模拟,发现需要对key进行枚举。

跑出来key是X@3!F,得到flag XDCTF{omgwtfjusthappenedtherethen}

2014.1010 SP小编更新:

官方Writeup

web20、web200、web250、crack180、web270 Writeuphttp://pan.baidu.com/s/1mg829zM

web50、web70、web100、web150、web180、crack100、crack150、crack200、exploit100、exploit200、exploit600、coding Writeuphttp://pan.baidu.com/s/1i39oMBr

本文由Q7和隔壁老王以及老王团队原创,首发在SecPulse安全脉搏上。

原创作者:Q7

SP地址:http://www.secpulse.com/archives/1153.html

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

推荐阅读更多精彩内容