SAE作CTF平台

作者: 时间: 2016-09-22 评论: 暂无评论

0x00 前言

前天搭了一个CTF练习平台,准备对校内的朋友开放,可能后面还会用于举办校内赛之类的,平台搭建可以看CTFd搭建CTF平台

平台搭建好了之后就需要上传一些题目了,就想起先用Sina的SAE来弄一些web题,因为在自己服务器上弄难免会存在一些安全问题,且SAE有定量免费速度还快,安全问题更无需担心,部署也方便,对于小型CTF练习平台来说,完全足够了。

0x01 注册&生成应用

首先访问SAE:http://sae.sina.com.cn/,注册登录后,创建应用:

Create_App.png

根据自己的要求选择,云空间另外收费,标准环境可以有五个实例。这里我选择PHP标准环境:

info.png

之后进入应用,这里会有两个选择,Git或者SVN,因为我平常都是用Git,所以这里我选择了Git(注意选择后无法更改):

git.png

0x02 配置&上传文件

进入代码管理,可以看到相应的配置信息和命令,里面也有相关的Git和官方文档帮助,不懂的可以去看看。首先先新建文件夹或者直接clone一个下来,这边我用了git clone -o sae这个命令,这其实是两条命令合起来的(clone后新建一个叫sae的远程仓库):

git clone -o sae https://git.sinacloud.com/jmuctf
#等价于
git clone https://git.sinacloud.com/jmuctf
git remote add sae https://git.sinacloud.com/jmuctf

然后新建文件,addcommitpush后搞定,这边master:1master分支版本1,这个具体的自行查看官方文档或者相应的git文档,这里基本不需要用到。

init_upfile.png

最后访问下应用,可以看到我们刚刚上传的index.php的内容

index.png

这里可以看到对于未实名认证的会强行在推送到客户端的时候加上一段令人讨厌的JS代码。去认证下分分钟解决。

saeNags.png

但我就是不愿去实名,于是我丢了一个注释给它。

comment.png

clear.png

到此差不多了,之后只需要写好题丢到平台上就可以了,可以一起来玩玩,也可以甩几个题过来让新伙伴们玩一玩。

暂时还没有正式推行,平台就挂载我的子域名下,等后面看看怎么个打算。

CTFd搭建CTF平台

作者: 时间: 2016-09-20 评论: 暂无评论

CTFd搭建CTF平台

0x00 前言

搭个CTF平台,看能不能带动一下学校的CTF参与度。

一个下午都在搭这个平台:O 抓瞎摸索,最后成功用Apache+mod_wsgi也算是功德圆满了。

进入正题:

  • 系统: CentOS release 6.8 (Final)
  • Apache: Apache/2.2.15 (Unix)
  • Mysql: Ver 14.14 Distrib 5.1.73
  • Python: 2.7.10

0x01 下载项目&环境配置

git clone https://github.com/isislab/CTFd.git

根据文档4个大步骤:

Install:

  1. ./prepare.sh to install dependencies using apt.
  2. Modify CTFd/config.py to your liking.
  3. Use python serve.py in a terminal to drop into debug mode.
  4. Here are some deployment options

apache和mysql的搭建我不再赘述,python系统自带是2.6,我升到2.7,可参见这里,记得还要装下PyMySQL

阅读全文»

2016西安“华山杯”部分Writeup

作者: 时间: 2016-09-11 评论: 暂无评论

2016西安“华山杯”部分Writeup

Web


打不过~

删掉disabled="true",加上type="submit",随便提交一个,抓包,发现返回的header头里有

Str: OGM0MzU1NTc3MTdhMTQ4NTc4ZmQ4MjJhYWVmOTYwNzk=

base64解一下再解个md5就拿下了。

系统管理

发现有提示:

<!-- $test=$_POST['username']; $test=md5($test); if($test=='0') -->

乌云有篇文章谈php弱类型的有说到,0e12353...这样的字符串等于,也就是说,我们要找到一个字串的md5是这样的形式,主义0e后面要全是数字才可以。写个脚本爆破一下子就拿到了:

md5.png

脚本代码在这里,5层循环简单粗暴

提交byGcY,提示user.php,访问得到新提示

$unserialize_str = $_POST['password']; $data_unserialize = unserialize($unserialize_str); if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???') { print_r($flag); }

是一个序列、反序列的问题,自己本地构造一下:

$t=array(
    'pass'=>'???',
    'user'=>'???'
);
$x=serialize($t);
print $x;
print gettype($x);

最后得到所要的a:2:{s:4:"pass";s:3:"???";s:4:"user";s:3:"???";}

最后到首页去连带之前的byGcY用户名一起提交,就拿下了。

序列和反序列下面还有一题,等下提供一些资料。

阅读全文»

i春秋-“百度杯”CTF部分Writeup

作者: 时间: 2016-09-03 评论: 暂无评论

i春秋-“百度杯”CTF

code

似曾相识有没有 XD
访问?jpg=index.php,base64解一下,拿了一下index.php源码,发现phpstorm写的

index.php.png

index-source.png

扫一下目录发现workspace.xml,从里面得知flagfl3g_ichuqiu.php

dir.png

阅读全文»

Git泄露

作者: 时间: 2016-07-27 评论: 暂无评论

一个Git泄露的例子引起的Git再学习和Git泄露利用

0x01 Git泄露

X-NUCA 7月Web赛前指导的题目里遇到了这样一个站:

git-folder-disclosure.png

网站存在git泄露,.git文件被无意上传

index of git.png

默默打开我的Github,然后一脸懵逼...

阅读全文»