【Web】NewStarCTF Week1 个人复现

目录

①泄露的秘密

②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.1secret=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.hqwc.cn/news/217480.html

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

相关文章

C语言--不创建第三个变量,实现对两个数字的交换

我们先来看一下&#xff0c;创建临时变量交换两个数字。 #include<stdio.h> {int a2;int b3;int tmp0;printf("before:a%d b%d\n",a,b);tmpa;ab;btmp;printf("after:a%d b%d\n",a,b);return 0; } 图解&#xff1a; 运行结果&#xff1a; 再看一下不…

平衡树 - splay

相比于之前的普通平衡树进行左旋右旋来比&#xff0c;splay的适用性更高&#xff0c;使用更广泛。 核心函数rotate、splay函数&#xff0c;其它的根据需要进行修改。 int n, m; struct Node {int s[2], p, v, cnt; // 左右儿子、父节点、值、出现数量int size, flag; // 子树大…

RK3568驱动指南|第八篇 设备树插件-第73章 设备树插件使用实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

为什么要隐藏id地址?使用IP代理技术可以实现吗?

随着网络技术的不断发展&#xff0c;越来越多的人开始意识到保护个人隐私的重要性。其中&#xff0c;隐藏自己的IP地址已经成为了一种常见的保护措施。那么&#xff0c;为什么要隐藏IP地址&#xff1f;使用IP代理技术可以实现吗&#xff1f;下面就一起来探讨这些问题。 首先&am…

flask依据现有的库表快速生成flask实体类

flask依据现有的库表快速生成flask实体类 在实际开发过程中&#xff0c;flask的sqlalchemy对应的model类写起来重复性较强&#xff0c;如果表比较多会比较繁琐&#xff0c;这个时候可以使用 flask-sqlacodegen 来快速的生成model程序或者py文件&#xff0c;以下是简单的示例&a…

安捷伦E4404B频谱分析仪,100 Hz 至 6.7 GHz

E4404B是安捷伦ESA-E系列频谱分析仪&#xff0c;它是一款能够适应未来发展需求的中高端频谱分析仪解决方案。该系列在频谱分析仪的测量速度、动态范围、精度和功率分辨能力等方面&#xff0c;都为类似价位的产品树立了性能标杆。其灵活的平台设计使得研发、制造和现场服务工程师…

提高工作效率的宝藏网站和宝藏工具(高级版)

一、参考资料 亲测&#xff1a;你这些网站都不知道&#xff0c;哪来时间去摸鱼&#xff1f; 提高工作效率的宝藏网站和宝藏工具&#xff08;基础版&#xff09; 二、好用的网站 HelloGitHub - 开源项目平台 HelloGitHub 是一个分享有趣、 入门级开源项目的平台。 希望大家能…

Kafka系列 - 生产者客户端架构以及3个重要参数

整体架构 整个生产者客户端由两个县城协调运行&#xff0c;这两个线程分别为主线程和Sender线程&#xff08;发送线程&#xff09;。 主线程中由KafkaProducer创建消息&#xff0c;然后通过可能的拦截器&#xff0c;序列化器和分区器之后缓存到消息累加器&#xff08;RecordAc…

Python+Appium自动化测试-编写自动化脚本

一&#xff0c;连接测试手机&#xff0c;获取测试机及被测APP配置 配置信息如下&#xff1a; {"platformName": "Android","platformVersion": "10","deviceName": "PCT_AL10","appPackage": "c…

【送书福利-第二十八期】《从概念到现实:ChatGPT和Midjourney的设计之旅》

&#x1f60e; 作者介绍&#xff1a;我是程序员洲洲&#xff0c;一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号&#xff1a;程序员洲洲。 &#x1f388; 本文专栏&#xff1a;本文…

动态规划学习——子序列问题

目录 ​编辑 一&#xff0c;最长定差子序列 1.题目 2&#xff0c;题目接口 3&#xff0c;解题思路及其代码 一&#xff0c;最长定差子序列 1.题目 给你一个整数数组 arr 和一个整数 difference&#xff0c;请你找出并返回 arr 中最长等差子序列的长度&#xff0c;该子序列…

yolov5利用yaml文件生成模型

一、yolov5的yaml文件构成 yaml文件如下图 不论是backbone还是head&#xff0c;每一行都由一个列表组成&#xff0c;列表里面有四个元素&#xff0c;另外&#xff0c;还有两个参数depth和width。在搭建模型的时候&#xff0c;会利用每一行的信息生成一个模块&#xff0c;并按照…