[SWPUCTF 2021 新生赛]web方向(一到六题) 解题思路,实操解析,解题软件使用,解题方法教程

news2024/12/30 1:32:09

  题目来源

NSSCTF | 在线CTF平台因为热爱,所以长远!NSSCTF平台秉承着开放、自由、共享的精神,欢迎每一个CTFer使用。icon-default.png?t=O83Ahttps://www.nssctf.cn/problem

 

[SWPUCTF 2021 新生赛]gift_F12

这个题目简单打开后是一个网页

 我们一般按F12或者是右键查看源代码。接着我们点击ctrl+f后快速查找,根据题目给的格式我们搜索ctf即可看到flag,如下图所示。

或者是

接着根据题目所给的格式NSSCTF{}写入flag即可解出 ,这里给大家一个示例

NSSCTF{We1c0me_t0_WLLMCTF_Th1s_1s_th3_G1ft}

[SWPUCTF 2021 新生赛]jicao

知识点:网站请求的POST、GET方法,JSON

阅读源码了解到需要post值给id,get值给json,json_decode()可以对一串JSON进行解码,故需要构造payload为 {"x":"wllm"}之后:
方法一:使用HackBar进行/?id=wllmNB,然后post json
方法二:使用burp直接修改请求头

另:json

格式为

{"name": "John Doe", "age": 18, "address": {"country" : "china", "zip-code": "10000"}}

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON的值:
3.1 JSON的构成: ws 值
3.2值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。值中的字面值中的英文必须使用小写。
3.2.1对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成,如:引用JSON中的对象可以包含多个键值对,并且有数组结构,该语言正是一次实现过程内容的描述。
3.2.2数组是由方括号括起来的一组值构成,如:
[3, 1, 4, 1, 5, 9, 2, 6]
3.2.3 字符串与C或者Java的字符串非常相似。字符串是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
3.2.4数字也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。

解题方法如下:

这里大家在火狐浏览器右上角点击...然后点击扩展HackBar安装然后点击题目,接着点击检查,点击load URL加入?json={"x":"wllm"}  接着设置为Post data

将下面的值写入id=wllmNB然后点击Execule即可解出flag

 [SWPUCTF 2021 新生赛]easy_md5

题目如下

既要两变量个值不相同,又要两个变量md5值一样,
可以发现此时判断md5值是否一样用的是==,这是php的弱类型比较,
方法一: 可以使用带0e开头的数字穿进行传递参数,因为php会将0e开头的数字转化为0,故此时md5值相等,而两个变量值不相等;
方法二: 可以传递数组,如name[]=123,password[]=456,md5不能加密数组,故两个md5返回的都是null

另:若遇到===这样的强类型比较,方法一就失效了,方法二仍然有效,或者还可以使用软件fastcoll进行md5碰撞,生成两个字符串使得他们的md5值相同

另:0e开头的数字

s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a

 解题方法

选上面两个md5的值对撞即可得到flag

 [SWPUCTF 2021 新生赛]include

 题目:

 那我们就上传一个file,在搜索栏中 ?file 、?file=ture  、?file=false都可以试一下如下图所示:

 看到代码后发现是伪代码,这里我讲一下什么是伪代码:

1.什么是PHP伪协议?

PHP伪协议是PHP自己支持的一种协议与封装协议,简单来说就是PHP定义的一种特殊访问资源的方法。

有些伪协议成功执行需要allow_url_fopen和allow_url_include的支持。

allow_url_fopen On/Off 允许或禁止打开URL文件
allow_url_include On/Off 允许或禁止引用URL文件

2.什么时候用PHP伪协议?

文件包含!!!的时候,可能遇到的文件包含函数:
1、include
2、require
3、include_once
4、require_once
5、highlight_file
6、show_source
7、flie
8、readfile
9、file_get_contents
10、file_put_contents
11、fopen (比较常见)

1.常见的php伪协议

php://input

php://input 是个可以访问请求的原始数据的只读流,获取POST请求数据的协议

当enctype=”multipart/form-data” 的时候 php://input 是无效的。

php://input 伪协议 成功执行前提
php.ini 中的 allow_url_include设置为On

php://filter

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。

在利用上很多都是与包含函数结合使用,读入或者输出获取文件源码然后编码让其不执行从而输出

补充:

php伪协议
常见的php伪协议

(1)file:// 访问本地文件系统

2)http:// 访问HTTP(S)网址

3)ftp:// 访问FTP(S)URL

4)php:// 访问各个输出输入流

5)zlib:// 处理压缩流

6)data:// 读取数据

7)glob:// 查找匹配的文件路径模式

8)phar:// PHP归档

9)rar:// RAR数据压缩

php://filter 的使用:


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

php://filter 伪协议组成:
read=<读链的筛选列表>
resource=<要过滤的数据流>
write=<写链的筛选列表>
php://filter/read=处理方式(base64编码,rot13等等)/resource=要读取的文件

read 对应要设置的过滤器:
常见的过滤器分字符串过滤器、转换过滤器、压缩过滤器、加密过滤器
其中convert.base64-encode ,convert.base64-decode都属于 转换过滤器

zip://与bzip2://与zlib://协议

zip:// 等属于压缩流的协议,通过直接压缩普通文件为zip文件,再通过zip:// 协议读取,可以直接执行php代码。压缩后的zip文件可以随意修改后缀也不影响zip://协议读取。(注意是如phpinfo.txt直接压缩为zip,而不是文件夹压缩zip)

压缩及协议访问格式:

压缩文件为.zip后缀
zip://绝对路径/phpinfo.zip%23phpinfo.php
压缩文件为.bz2后缀
compress.bzip2://绝对路径/phpinfo.zip/phpinfo.php
压缩文件为.gz后缀
compress.zlib://绝对路径/phpinfo.zip/phpinfo.php

data://

data://伪协议可以通过请求提交的php代码数据配合文件包含函数可以达到代码执行效果。

data://伪协议 成功执行前提
php.ini设置allow_url_include 与allow_url_open都为On。

data://协议的格式是: data://数据流封装器,相应格式数据

 根据题目我们发现有include_once函数;
include_once():在脚本执行期间包含并运行指定文件。该函数和include 函数类似,两者唯一的区别是 使用该函数的时候,php会加检查指定文件是否已经被包含过,如果是,则不会再被包含。

于是我们进行伪造:

php://filter/convert.base64-encode/resource=flag.php

 即可得到一串字符,这里给大家补充一下base64的概念

Base64编码和解码的基本概念

  • 编码:将二进制数据转换为ASCII字符的文本格式。Base64编码使用64个字符(A-Z, a-z, 0-9, +, /)来表示数据。
  • 解码:将Base64编码的文本转换回原始的二进制数据。

最后我们base64解码即可获得flag

[SWPUCTF 2021 新生赛]easy_sql 

我们打开题目

 上面写了wllm是参数,那么这个题给参数可能是让我们sql注入。

https://download.csdn.net/download/m0_73951999/89721502icon-default.png?t=O83Ahttps://download.csdn.net/download/m0_73951999/89721502

这里给一个链接点进去就可以看到这道题怎么解sql的了。

这位大佬写的解题思路非常清晰,所以这里我就不过多赘述。

[SWPUCTF 2021 新生赛]easyrce 

题目如下:

解题思路如下:

我们可以发现是用的是exec()函数,无回显,并且是GET请求。

这里给大家补充一下知识,我们进入前看到标题REC这里给大家说一下

REC题目,常用的几个系统命令执行函数
system();
passthru();
exec();
shell_exec();
popen();
proc_open();
pcntl_exec();

这些都是php通过系统命令来查看文件内容比如我举个例子system("ls");这种通常在没有任何限制的情况下可以查看所有文件,但是题目肯定会设计一些困难,比如说不给你输入空格、=、#、&等这种特殊字符常常被限制,那么一般怎么绕过呢,我们可以这样子,空格在php执行中(不考虑版本的情况下)可以使用%20来代替,比如说system("ls /"); 时可以改为system("ls%20/"),a[]=1时可以改为a[]%=1,而#号可以使用%23来代替。(这里大家注意一下字符输入的时候一定一定要对,不然不会有反应甚至404)

好了回归正题,我们可以开始解了,根据上面已知的信息,我们可以先写一个?url=system("ls");发现是index.php那可能是让我们确定一下路径我们可以这样子写?url=system("ls /");

?url=system("ls20%/");我们也试一下

可以发现没问题, 然后我们看到的这些所有文件了

我们仔细看一下哪个像flag很明显是flllllaaaaaaggggggg,那么我们就要去这个路径下面的文件才能找到flag ,这里我们要使用cat或者是tac,这个我解释一下,这些都是查看的意思,简单来说就是通过执行cat或者是tac路径下的文件你们我们接下来如图所示,解题方法如下:

第一种通过?url=system("cat /f*");通过f*指针查找有关f的

第二种 ?url=system("cat20%/fflllllaaaaaaggggggg");替换空格也可以得到flag

第三种 ?url=system("cat20%/fflllllaaaaaaggggggg");

 第四种?url=system("cat20%/fflllllaaaaaaggggggg");

其实还有很多方法解出大家都可以试一下,这里我给大家拓展一下怎么用蚁剑做这道题

下面是中国蚁剑的资源:

https://download.csdn.net/download/m0_73951999/89724306icon-default.png?t=O83Ahttps://download.csdn.net/download/m0_73951999/89724306

GET请求url,看到eval就是蚁剑连接,但是它要POST请求才行,那就直接用一句话木马连接它

也就是利用eval这句话然后改成GER改成POST后面url改成传入的参数

像我这样子添加数据即可 node5.anna.nssctf.cn:26152/?url=eval($_POST['a']);然后在点击进去

点击fflllllaaaaaaggggggg文件后发现flag

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

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

相关文章

AWTK 如何用 OpenGL 绘制图形

在有 GPU 的情况下&#xff0c;AWTK 使用 OpenGL 绘制图形。但是你会发现&#xff0c;如果自己在 paint 事件中使用 OpenGL 绘制图形&#xff0c;图形是无法显示的。原因是&#xff0c;AWTK 采用 nanovg 绘制图形&#xff0c;而 nanovg 并不是在绘制时立即执行的&#xff0c;而…

Visual Studio Code:让你的工作效率飞升的秘密武器

在现代软件开发环境中&#xff0c;效率已成为每个开发者追求的目标。而在众多编程工具中&#xff0c;Visual Studio Code&#xff08;简称VS Code&#xff09;凭借其强大的功能、轻量的界面和高度的可定制性&#xff0c;成为了全球开发者的首选。无论你是编写前端代码、后端服务…

分享MSSQL、MySql、Oracle的大数据批量导入方法及编程手法细节

1&#xff1a;MSSQL SQL语法篇&#xff1a; BULK INSERT [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM data_file [ WITH ( [ [ , ] BATCHSIZE batch_size ] [ [ , ] CHECK_CONSTRAINTS …

WIN11 ESP32 IDF + VSCODE 环境搭建[教程向]

前言 目录 前言 安装ESP32-IDF VSCODE插件安装 编译测试 很多时候我们想学习一门新的技能&#xff0c;需要使用全新的开发环境&#xff0c;很多时候我们会在安装环境这个环节卡住很久&#xff0c;这里简单介绍一下ESP32VSCODE环境搭建。 安装ESP32-IDF https://dl.espre…

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)

概率DP&#xff1a; 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率&#xff08;采用顺推&#xff09; 从 初始状态推向结果&#xff0c;同一般的DP类似&#xff0c;只是经历了概率论知识的包装。 老题&#xff1a; 添加链接描述 题意&#xff1a; 袋子里有w只白鼠&am…

热度DA!《黑神话:悟空》专题合集|4K电影及天命人资料免费领取!

热度DA&#xff01;《黑神话&#xff1a;悟空》专题合集&#xff5c;4K电影及天命人资料免费领取&#xff01; 前言《黑神话&#xff1a;悟空》专题合集 前言 《黑神话&#xff1a;悟空》正式全球解锁上线&#xff0c;这一中国首款 “3A” 游戏的发布&#xff0c;瞬间点燃了无…

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman&#xff1a;来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场&#xff08;NeRF&#xff09;的表征能力从单目视频中重建人体。最近的工作提出将变形…

【Netty】netty中都是用了哪些设计模式

对于工程师来说&#xff0c;掌握并理解运用设计模式&#xff0c;是非常重要的&#xff0c;但是除了学习基本的概念之外&#xff0c;需要结合优秀的中间件、框架源码学习其中的优秀软件设计&#xff0c;这样才能以不变应万变。 单例模式 单例模式解决的对象的唯一性&#xff0…

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX&#xff1a;点亮项目的璀璨粒子之光 一&#xff0c;前言二&#xff0c;资源包内容三&#xff0c;免费获取资源包 一&#xff0c;前言 在创意的世界里&#xff0c;每一个细节都能决定一个项目的独特魅力。今天&#xff0c;要向大家介绍一款令人…

B端产品经理的流程设计思维

回首入行产品经理也已多年&#xff0c;做的项目也由C到B&#xff0c;由前到后都已涉及&#xff0c;辗转跨行仍觉互联网学海无涯&#xff0c;还是需要保持输出。思前想后还是决定聊一聊在过往服务多家大型集团的工作经历中十分重要&#xff0c;但却普遍不被视为产品经理必备能力…

Spring-循环依赖

预备知识 循环依赖开关(方法) - AbstractAutowireCapableBeanFactory#setAllowCircularReferences 单例工程(属性) - DefaultSingletonBeanRegistry#singletonFactories获取早期未处理Bean (方法) - AbstractAutowireCapableBeanFactory#getEarlyBeanReference早期未处理Bean…

项目实战系列: 家居购项目 第一部分

家居购项目 &#x1f400;Java后端经典三层架构&#x1f407;MVC模型&#x1f407;开发环境搭建&#x1f407;会员注册&#x1f349;前端JS校验&#x1f349;后端实现 &#x1f407;会员登陆 &#x1f400;Java后端经典三层架构 分层对应包说明web层com.zzw.furns.web/servlet/…

【PyQt6 应用程序】直播素材视频循环生成

在现代内容创作中,视频素材的生成和处理变得越来越重要,尤其是在直播、视频剪辑等场景中。对于需要长期、持续生成内容的用户来说,如何有效地利用现有的视频素材,生成长时间播放且无明显重复感的视频片段,是一个亟待解决的问题。 本教程将详细讲解如何使用 PyQt6 来实现一…

tabBar设置底部菜单选项以及iconfont图标

tabBartabBar属性:设置底部 tab 的表现 ​ ​ ​ ​ 首先在pages.json页面写一个tabBar对象,里面放入list对象数组,里面至少要有2个、最多5个 tab, 如果只有一个tab的话,H5(浏览器)依然可以显示底部有一个导航栏,如果没有,需要重启后才有,小程序则报错,只有2个以上才可以…

欧拉系统安装 NVIDIA 显卡驱动

1、安装显卡驱动编译工具 yum install gcc make kernel-devel 2、安装显卡驱动依赖包 yum install vulkan-loader 可选安装项&#xff0c;不安装该系统包时会出现以下警告提示&#xff0c;但不影响安装和使用。 3、安装 NVIDIA GPU 驱动 生产环境建议选择 .run 格式的驱动…

Java线程池和Executor框架-面试与分析

线程池 什么是线程池&#xff1f;为什么要用线程池&#xff1f; 在Java并发框架中&#xff0c;线程池时使用最多的东西&#xff0c;几乎所有需要异步并发执行任务的程序都可以使用线程池。 使用线程池带来的好处&#xff1a; 降低资源消耗。通过重复利用已创建的线程降低线程…

基于Java语言的充电桩系统+充电管理平台+云快充协议+云快充协议1.5+桩直连协议+云快充协议源码

介绍 云快充协议云快充1.5协议云快充协议开源代码云快充底层协议云快充桩直连桩直连协议充电桩系统桩直连协议 软件架构 1、提供云快充底层桩直连协议&#xff0c;版本为云快充1.5&#xff0c;对于没有对接过充电桩系统的开发者尤为合适&#xff1b; 2、包含&#xff1a;启…

文心一言功能新升级:读文档、懂翻译、能识图

9月4日&#xff0c;百度文心一言官网显示&#xff0c;在向全社会开放一周年之际&#xff0c;文心一言进行了功能最新全面升级&#xff0c;同时在周年期间为新老会员增加1个月专业版免费使用体验。 据了解&#xff0c;针对网页版用户需求&#xff0c;文心一言实现了创作内容更加…

Linux-进程管理【重点】

前言 Linux操作系统在虚拟机VM上的安装【CentOS版本】-CSDN博客 Linux-(系统启动、用户管理)-CSDN博客 Linux-实用指令-CSDN博客 Linux-【组管理、权限管理、定时任务调度】-CSDN博客 进程管理 在linux中&#xff0c;每个执行的程序都成为一个进程&#xff0c;每一个进程都…

玩转Python Turtle库,实现满屏飘字的魔法!

前言 本文将教你如何使用Python的Turtle库&#xff0c;通过简单的编程实现满屏飘字的炫酷效果。无需复杂的编程知识&#xff0c;跟着我们的步骤&#xff0c;你也可以成为编程小达人&#xff01; 效果展示 开发过程 一、准备工作 首先&#xff0c;确保你的电脑上已经安装了Py…