NSSCTF-Web题目6

server/2024/9/24 0:57:46/

目录

[NISACTF 2022]checkin

1、题目

2、知识点

3、思路

[NISACTF 2022]babyupload

1、题目

2、知识点

3、思路

[SWPUCTF 2022 新生赛]1z_unserialize

1、题目

2、知识点

3、思路


[NISACTF 2022]checkin

1、题目

2、知识点

010编辑器的使用、url编码

3、思路

打开题目,得到源码

审计代码,题目需要我们上传两个变量的内容,根据题目输入,结果没有出现flag,题目有提示,复制源码,用010Editor打开

发现多了很多内容,难怪会没有出现flag

我们将需要上传的内容的16进制加上%重新上传

第一个参数的内容是正常的,构造出来的payload为

http://node5.anna.nssctf.cn:26298/?ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6%55%67%65%69%77%6F%E2%81%A9%E2%81%A6%63%75%69%73%68%69%79%75%61%6E=%E2%80%AE%E2%81%A6%20%46%6C%61%67%21%E2%81%A9%E2%81%A6%4E%31%53%41%43%54%46

得到flag:NSSCTF{09918f4c-0337-4344-84a3-33c306a12e9e}


[NISACTF 2022]babyupload

1、题目

2、知识点

php代码审计、os.path.join()函数

3、思路

打开题目,上传一个文件,发现上传不了

正常的文件都上传不了,右键查看源代码

发现有一个页面,访问该页面,下载一个www.zip包,打开里面的python程序,发现是代码

对代码进行审计

那这就有点意思了,正常文件都是有后缀名的,有. 的,要怎么绕过呢?

往下翻,发现os.path.join()函数

os.path.join()

作用:用于拼接文件路径,可以传入多个路径,传入文件时,

如果没有以“/”开始的参数,函数会自动加上,

如果是以“/”为开始的参数,函数会从最后一个"/"开始拼接,之前的全部舍弃。 

同时存在以‘’./’与‘’/’’开始的参数,以‘’/’为主,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。

只存在以‘’./’开始的参数,会从”./”开头的参数的上一个参数开始拼接。

一般flag都是命名为flag文件,放在根目录下,我们可以上传一个文件,改名为/flag,利用os.path.join()这个函数

注意要放包

得到flag:NSSCTF{9485af6f-488e-46a9-91cc-e7b879c23d00}


[SWPUCTF 2022 新生赛]1z_unserialize

1、题目

2、知识点

php反序列化

3、思路

审计代码

__destruct()

会将对象被调用完后进行销毁,也就是代码执行完后执行

->用来引用一个类的属性(变量)、方法(函数)

$a = $this->lt;

将lt的值赋给变量a
$a($this->lly);

加入a是一个函数,想当于a(lly)

所以,我们可以构造系统执行命令,system(cat /flag)

system()赋给$lt,cat /flag给$lly,这样就可以得到flag了,POC如下

<?php
class lyh{
    public $url = 'NSSCTF.com';
    public $lt='system';
    public $lly='cat /flag';
}
$poc=new lyh();
echo serialize($poc);
?>

POST方式上传nss参数的内容

得到flag:NSSCTF{b17cd668-888d-4a73-8881-8e2c2120ea87}


这篇文章就写到这里,哪里不足的或者不懂的欢迎批评指出


http://www.ppmy.cn/server/48387.html

相关文章

PQ法与牛顿法潮流计算5节点MATLAB程序

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 潮流计算&#xff1a; 潮流计算是根据给定的电网结构、参数和发电机、负荷等元件的运行条件&#xff0c;确定电力系统各部分稳态运行状态参数的计算。通常给定的运行条件有系统中各电源和负荷点的功率、枢纽…

【C语言】07.函数

一、概念 C语言的函数&#xff0c;有些翻译为&#xff1a;子程序&#xff0c;子程序这种翻译更加准确⼀些。 C语言中的函数就是⼀个完成某项特定的任务的⼀小段代码。这段代码是有特殊的写法和调用方法的。 C语言的程序其实是由无数个小的函数组合而成的&#xff0c;也可以说&…

动手学深度学习—序列数据与语言模型

动手学深度学习—序列数据与语言模型 序列模型 时序模型中&#xff0c;当前数据跟之前观察到的数据相关 统计工具 处理序列数据需要统计工具和新的深度神经网络架构&#xff1a; 问题的提出&#xff1a;围绕着如何有效估计 &#xff1a; P ( x t ∣ x t − 1 , … , x 1 ) P\…

代码随想录算法训练营第五十五 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离

583. 两个字符串的删除操作 https://programmercarl.com/0583.%E4%B8%A4%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%88%A0%E9%99%A4%E6%93%8D%E4%BD%9C.html class Solution { public:int minDistance(string word1, string word2) {vector<vector<int>> d…

Qt Graphics View Framework 使用教程

欢迎来到 Qt Graphics View Framework 的世界&#xff01;本教程将引导您了解这一强大工具的基础知识&#xff0c;并教您如何开始使用它来创建丰富的 2D 图形界面。无论您是编程新手还是经验丰富的开发者&#xff0c;本教程都将帮助您快速上手。 基本概念 Qt Graphics View F…

实用小工具-python esmre库实现word查找

python esmre库实现word查找 前言&#xff1a; 在文本中匹配特定的字符串&#xff0c;一般可以用普通的字符串匹配算法&#xff0c;KMP算法&#xff1b; python中提供了一个库&#xff0c;esmre, 通过预先将字符串存到esm对象中&#xff0c;利用这些字符串从候选的字符串中进行…

node.js学习

node.js学习实操及笔记 温故node.js&#xff0c;node.js学习实操过程及笔记~ node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记 为什么学node.js 可以让别人访问我们编写的网页为后续的框架学习打下基础&#xff0c;三大框架vue react angular离不开node.js …

车载诊断架构 - 引导诊断

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…