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

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

作者: tmdsb38 | 来源:发表于2015-10-31 20:02 被阅读295次

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

    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看了一阵子随机图层,没发现什么隐藏信息。

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

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

    扫出来是这么一个东西

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

    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

    相关文章

      网友评论

          本文标题:现在位置: 首页 > 独家 > 正文 XDCTF20

          本文链接:https://www.haomeiwen.com/subject/dyzfhttx.html