文档章节

CTF实验吧让我进去writeup

o
 osc_a22drz29
发布于 2019/03/26 23:28
字数 521
阅读 13
收藏 0

精选30+云产品,助力企业轻松上云!>>>

初探题目

<!-- more -->

两个表单,我们用burp抓包试试 这时候我们发现Cookie值里有个很奇怪的值是source,这个单词有起源的意思,我们就可以猜测这个是判断权限的依据,让我们来修改其值为1,发送得到如下显示:

代码审计

发现爆出了源代码,让我们来审计一下

$flag = "XXXXXXXXXXXXXXXXXXXXXXX";
$secret = "XXXXXXXXXXXXXXX"; // This secret is 15 characters long for security!

$username = $_POST["username"];
$password = $_POST["password"];

if (!empty($_COOKIE["getmein"])) {
    if (urldecode($username) === "admin" && urldecode($password) != "admin") {
        if ($COOKIE["getmein"] === md5($secret . urldecode($username . $password))) {
            echo "Congratulations! You are a registered user.\n";
            die ("The flag is ". $flag);
        }
        else {
            die ("Your cookies don't match up! STOP HACKING THIS SITE.");
        }
    }
    else {
        die ("You are not an admin! LEAVE.");
    }
}

setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7));

if (empty($_COOKIE["source"])) {
    setcookie("source", 0, time() + (60 * 60 * 24 * 7));
}
else {
    if ($_COOKIE["source"] != 0) {
        echo ""; // This source code is outputted here
    }
}

我们如果需要获得flag,需要满足一下条件: 1.Cookie中getmein的值不能为空 2.username必须为admin和password不能为admin 3.Cookie中的getmein必须等于md5($secret.urldecode($username.$password)) 满足这三个条件才可获得flag,可是我们无法得知$secret的值为多少 setcookie("sample-hash", md5($secret . urldecode("admin" . "admin")), time() + (60 * 60 * 24 * 7)); 发现下面有行代码是这样写的,将输出的md5($secret . urldecode("admin" . "admin"))作为cookie输出,结合前面的数据包我们可以知道输出的值为571580b26c65f306376d4f64e53cb5c7 可是这串md5是由$secret+'adminadmin'转md5而得到的,如果我们在password输入admin将不满足前面所需的三个条件

死局转生

我们知道常见的md5是16位的,而这里的md5正是16位,我们的$secret是十五位的,加上'adminadmin'就变成25位了,很明显这里的md5肯定会出现重复,所以我们可以哈希长度拓展攻击绕过这个死局 这里附两个讲述具体原理的链接: http://www.freebuf.com/articles/web/69264.html https://www.cnblogs.com/p00mj/p/6288337.html

在Kali下用hashpump操作 最好我们构造数据包,把生成的数据发送即可获得flag

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
CTF干货合集

CTF练习平台 http://hackinglab.cn/ 网络信息安全攻防学习平台 http://captf.com/ ctf题目 http://oj.xctf.org.cn/ XCTFOJ练习平台 http://ctf.3sec.cn/ Jlu.CTF http://www.baimaoxueyuan.c......

osc_a9b6fe4t
2019/06/22
3
0
开启CTF大门

如何开始你的CTF比赛之旅 http://www.freebuf.com/articles/others-articles/36927.html http://blog.idf.cn/2015/02/ctf-field-guide/ CTF领域指南 https://ctftime.org/event/list/upcomin......

osc_n86o8vc0
2018/08/01
0
0
[心得]近两个月的学习目标

从开学到现在已经过了1个月19天了,在这段时间内总共写了21篇博文。其中有些整理的还是不错的,但是有些东西还是没有消化完,因为有些记录的东西,因为自己太菜了,目前还用不到~ 近期学校开...

osc_xtydmasf
2019/09/19
1
0
CTF长久练习平台

0x01 XCTF(攻防世界) 攻防世界是ctf爱好者很喜欢的一个平台,不仅是界面风格像大型游戏闯关,里面的各类题目涵盖的ctf题型很广,还分为新手区和进阶区两块; 并且可以在里面组队,做一道题...

osc_j89isia8
2019/10/25
4
0
网络安全与CTF在线学习资源网站

http://www.sec-wiki.com/skill/ 安全技能(里面渗透逆向编程都有介绍) http://blog.knownsec.com/KnownsecRDChecklist/ 知道创宇研发技能表v3.0 综合学习平台: http://edu.gooann.com/ 谷安...

osc_y8w65yuq
01/17
7
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)

点击上方“陶陶技术笔记”关注我 回复“资料”获取作者整理的大量学习资料! 一、背景 在我上一篇文章《Spring Cloud开发人员如何解决服务冲突和实例乱窜?》中提到使用服务的元数据来实现隔...

zlt2000
2019/09/06
0
0
Linux下diff命令用法详解

大家好,我是良许。 我们在平时工作的时候,经常要知道两个文件之间,以及同个文件不同版本之间有何异同点。在 Windows 下,有 beyond compare 这个好用的工具,而在 Linux 下,也有很多很强...

osc_th8jvcw7
35分钟前
7
0
万变不离其宗之UART要点总结

[导读] 单片机开发串口是应用最为广泛的通信接口,也是最为简单的通信接口之一,但是其中的一些要点你是否明了呢?来看看本人对串口的一些总结,当然这个总结并不能面面俱到,只是将个人认为...

osc_kyehmyzk
36分钟前
7
0
kafka的认识、安装与配置

认识Kafka 花费越少的精力在数据移动上,就能越专注于核心业务 --- 《Kafka:The Definitive Guide》 认识 Kafka 之前,先了解一下发布与订阅消息系统:消息的发送者不会直接把消息发送给接收...

osc_wy8nhxhn
38分钟前
0
0
使用pandas进行数据处理——DataFrame篇

  今天是pandas数据处理专题的第二篇文章,我们一起来聊聊pandas当中最重要的数据结构——DataFrame。   上一篇文章当中我们介绍了Series的用法,也提到了Series相当于一个一维的数组,只...

开源仔
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部