HappyCTF WriteUp

刚刚搭建好的博客,第一篇就拿来写WP吧。正好熟悉一下MarkDown的语法。闲话不多说,进入正题。

Web题目

成绩

虽然不是很好,还是放张图纪念一下。
成绩

签到题

给了一个网址,发现访问不了,扫描端口,发现8888端口开放,使用:
curl -I 9.9.9.9:8888

windows使用VPN连接后使用nmap遇到的问题:

你不是蜘蛛

打开题目链接,显示“你不是蜘蛛”,访问robots.txt,在访问其中的文件路径即可得到flag

管理员的愤怒

打开题目链接,显示成功连接数据库,查看robo.txt

再访问dbadmin获取phpmyadmin账号密码

将获取的账号密码登录phpmyadmin即可获得flag

无权查看

打开题目链接,显示forbidden!查看源代码发现index.php.bak

访问获得源代码

构造user和password参数

情报在哪里

题目是一个阿童木爱好者站

使用awvs扫描得到download.php

题目又提示目标文件名为passwd,所以构造参数将文件下载下来

使用strings passwd查看,并将最后那串base64解码即得flag

upload

题目就是让我们上传一个一句话木马上去,当然只允许图片格式文件上传

设置代理,将我们的木马命名成1.gif上传,用Burpsuite抓包,将文件后缀改成1.php即可得到flag

mail


一开始是这么想的:只要字符串captcha的md5值前4位等于da8e,domain填上邮箱即可获得flag。但是刷新后,等号后面就不是da8e了,而且每刷新一次,就更换一次。没思路,等看完大佬们的WP再更新

未上线的聊天室


没思路。。。

刮刮乐

题目:

在flag区右键审查元素,然后一直刷新界面,发现canvas偶尔会变一次,在变的那次刮开即可得到flag

魔法商城


这题考察逻辑漏洞

包罗万象

可以上传文件,还限制了文件类型,可以上传zip

所以我们将一句话木马压缩成zip上传得到返回路径

把url改成9.9.9.22/index.php?url=zip://文件地址,使用菜刀连接即可得到flag

Register

1
2
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php

session_start();

require('config.php');

foreach($_POST as $key => $value){
$$key = (trim((string)$value) != '')?trim((string)$value):null;
}

$conn = mysql_connect($server,$dbusr,$dbpwd);

if($conn === false){
die('Connect Failed.');
}

mysql_select_db($dbname);

if(isset($_SESSION['uid'])){

$token = getToken($_SESSION['uid']);

echo "Your token is {$token}<br>\n";

}elseif(isset($customid) && isset($password)){

if(strlen($customid) < 6 || strlen($password) < 6 || strlen($customid) > 11 || strlen($password) > 30){
die('1:Error.');
}

if(!is_numeric($customid)){
die('2:Error.');
}

register($customid, $password);

$_SESSION['uid'] = getuid($customid);

header('location: ./index.php?'.time());
}else{
echo <<<EOD
<form action="index.php" method="post">
CustomID: <input type="text" name="customid" maxlength="11"><br>
Password: <input type="password" name="password" maxlength="30"><br>
<input type="submit" value="register"><br>
</form>
EOD;
}

mysql_close($conn);

function register($customid, $password){
$password = md5($password);
$token = md5(mt_rand());
mysql_query("insert into z_users(`customid`, `password`) values('{$customid}','{$password}')");
$result = mysql_query("SELECT LAST_INSERT_ID()");
$rows=mysql_fetch_row($result);
$uid = $rows[0];
mysql_query("insert into z_extra(`uid`, `data`) values('{$uid}','{$token}')");
}

function getuid($customid){
$result = mysql_query("select * from z_users where customid = '{$customid}' order by id desc");
if($result){
$row = mysql_fetch_array($result);
return $row['id'];
}
return 0;
}

function getToken($id){
$result = mysql_query("SELECT data from z_extra where uid = {$id}");
$rows = mysql_fetch_row($result);
return $rows[0];
}

echo "<h4>Source: </h4>";

show_source(__FILE__);

?>

Web3

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

ini_set('session.serialize_handler', 'php');

require("./class.php");

session_start();

$obj = new foo1();

$obj->varr = "phpinfo.php";

?>

这是foo1的析构函数

我的博客

title简直误导我。。。


该网站存在文件包含漏洞

查看源码获得flag:

新闻网站


没做出来

绕过看门狗

题目和上一题一样,多了安全狗。通过大小写绕过关键字即可得到flag,由于比赛时手工注入,未截图

Be allowed?


用Burpsuite抓包,添加X-Forwarded-For: localhost

然后就不会了。。。

admin123456

过滤任何字符,小写字母自动转换成大写字母

网页源代码如下

第三个空白页


查看源代码:

访问http://9.9.9.32/?way=AHAHAH,出现如下页面:

使用Burpsuite抓包,添加X-Forwarded-For: 127.0.0.1即可获得flag

运维失误

古老的留言板

2048

jshunt


这题很懵逼,无缘无故拿了一血,之后整场比赛没人做出来(有bug)

iphone6


使用chrome,按F12选择iPhone6刷新页面,查看即可

又是空白页

misc、crypto题目

这是什么

下载下来是一个apk,本来以为是安卓逆向的,结果并不是

明显jsfuck,复制到控制台运行即可:

粽子的来历

题目给了四个损坏的压缩文件

用winhex打开发现有奇怪之处

将其全改成FF,可得到一首诗,他们的行间距不一样

将行距大的设为1,小的设为0,即可得到100100100010,其md5即是flag

大白


图片感觉像是被截取了一半,查看属性:

高度256对应16进制为100,使用winhex打开图片,找到100改成200即可看到flag:

rar

使用Advanced RAR Password Recovery破解即可:

ningen

使Ziperello破解即可:

萌萌哒的八戒

猪圈密码:

文件中的秘密

这题源图片不见了,截别人的wp来用:

隐藏的钥匙

题目是一张图片,使用记事本打开搜索flag,然后base64解密即可得到flag

题目忘了

下载下来是一个不正常的图片,使用strings 这是什么.jpg查看

将最后两行的HTML编码保存在文本编辑器中,并保存为flag.html,打开即可:

=========================== 未完,待更新 ===============================

文章作者: Mochazz
文章链接: https://mochazz.github.io/2017/07/04/happyctf/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mochazz's blog