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

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

XDCTF2014 Writeup之Web和Crack篇

2014 /10/7 11:27

6,004

评论 8 条

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第1张图片

0x01 Web20

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第2张图片

之前被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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第3张图片

Your Flagflag-WhatisPhp-mtzeXAtcKA53

0x02 Web50

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第4张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第5张图片

(话说这题队友隔壁老王是直接用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很不好玩,但是会玩的人就是很好玩,你觉得呢?呵呵

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第6张图片

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第7张图片

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第8张图片

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

XsSXD$3(201X@xiD@n

0x04 Web100

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第9张图片

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

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第10张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第11张图片

扫出来是这么一个东西

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第12张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第13张图片

然后用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}

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第14张图片

0x06 Web150

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

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第15张图片

上传解密,看到flag

XDSE@L0VEr2014

0x07 Web180

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第16张图片

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第17张图片

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

Server.ScriptTimeout=999999999

UserPass="3895" '密码

mNametitle ="gh0st2014" ' 标题

Copyright="qq:2725629821" '版权

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第18张图片

访问此人空间 提示

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第19张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第20张图片

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

性别: 男

年龄: 29

生日: 5月7日

星座: 金牛座

现居地:

中国 陕西 西安

推出此人身份证610121198505073895

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第21张图片

0x08 Web250

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第22张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第23张图片

成功弹出cookie

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

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

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第24张图片

构造payload:

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第25张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第26张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第27张图片

爆出管理员密码 登陆后台

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第28张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第29张图片

上大马 直接搜索flag

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第30张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第31张图片
现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第32张图片
现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第33张图片

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

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第34张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第35张图片

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

0x01 Crack100

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第36张图片

PEiD查下,是.net程序。

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第37张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第38张图片

脱壳后就简单多了

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第39张图片

比较坑的是

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第40张图片

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第41张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第42张图片

这道题拿到了1血,开心

0x02 Crack120

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

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

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

使用uncompyler.py反编译之~

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第43张图片

运行下

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第44张图片

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第45张图片

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第46张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第47张图片

0x03 Crack150

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第48张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第49张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第50张图片

这是XXshenqi的部分源码。

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第51张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第52张图片

提取出来转为jar报错

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第53张图片

只好用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即可。

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第54张图片

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第55张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第56张图片

对这两串数据进行diff

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

猜测b8c2b5c881f2b7f58a096a367a32be33为Ph的One-Time-Password

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第57张图片

成功得到Flag

0x05 Crack300

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第58张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第59张图片

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第60张图片

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

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

现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇_第61张图片

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

你可能感兴趣的:(现在位置: 首页 > 独家 > 正文 XDCTF2014 Writeup之Web和Crack篇)