buuctf web 前5题
目录
一、[极客大挑战 2019]EasySQL
总结:
二、[极客大挑战 2019]Havefun
总结:
三、[HCTF 2018]WarmUp
总论:
四、[ACTF2020 新生赛]Include
总结:
五、[ACTF2020 新生赛]Exec
总结:
一、[极客大挑战 2019]EasySQL
EasySQL,根据题目盲猜是sql注的题目

检查源码发现传参方式为GET


随意输入用户名和密码,发现有回显
预测后端代码应为:
<?php
//连接mysql
$servername="localhost";
$username="root";
$password="root";
$dbname="mydata";
.
.
.
$username=$_GET['username'];
$password=$_GET['password'];
$sql=select * from users where username='$username' and password='$password';
$ result=query($sql);
.
.
.
?>
根据数据库查询规则,使用万能密码
admin ' or 1=1 #
ps:select * from users where username='admin' or 1=1#' and password="";
admin后的 ' :为了和前面的 ' 形成闭合
or 1=1:形成查询永真条件
#:将后面条件注释掉


总结:
sql注入万能密码:admin ' or 1=1 #
二、[极客大挑战 2019]Havefun

打开网址查看源码,发现一段注释的内容
<!--
$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
echo 'Syc{cat_cat_cat_cat}';
}
-->
GET请求通过URL请求参数,可以在URL后面添加参数,以“?”作为分隔符,参数之间用“&”符号链接。
解释:GET传参cat。输出cat。如果cat=dog。输出一串类似flag的东西。

总结:
GET请求通过URL请求参数,可以在URL后面添加参数,以“?”作为分隔符,参数之间用“&”符号链接。
简单php代码。
三、[HCTF 2018]WarmUp

打开网址,检查以源码。发现隐藏页面source.php

转到source.php可以看到一段php代码
<?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist = ["source"=>"source.php","hint"=>"hint.php"];if (! isset($page) || !is_string($page)) {echo "you can't see it";return false;}if (in_array($page, $whitelist)) {return true;}$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}$_page = urldecode($page);$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])&& is_string($_REQUEST['file'])&& emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}
?>
先来查看一下,hint.php里的内容

ffffllllaaaagggg这里flag被复写了四次,可以猜测flag被放在4到5个根目录下,即写成../../../../ffffllllaaaagggg或../../../../../ffffllllaaaagggg
再对上面php代码进行逐行分析:
<?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page)//创建一个函数{$whitelist = ["source"=>"source.php","hint"=>"hint.php"]; //增加白名单,包含source.php和hint.phpif (! isset($page) || !is_string($page)) {//$page不为空或NULL(!isset($page))或(||)不为字符串(!is_string($page))echo "you can't see it";return false;}if (in_array($page, $whitelist)) {//in_array的意思是判断page里是否包含白名单里的内容,即是否包含(source.php或hint.php)return true;}$_page = mb_substr($page,0,mb_strpos($page . '?', '?'));/*这里mb_substr返回字符串的一部分mb_substr(需返回字符串(类型:sting),从哪个数字代表的位置开始(类型:int),截取长度(类型:int))mb_strpos(要被检查的字符串,要搜索的字符串)最终返回要被检查字符串的位置(类型:int)综合来看就是mb_strpos函数,检索$page中?的位置,并返回?所在的位置数,mb_substr函数将从0开始,到?位置的$page字符串返回到型变量$_page*/if (in_array($_page, $whitelist)) {return true;}/*in_array(被搜索的值,搜索的数组,类型)经过上面的截取代码,$_page是否存在source.php或hint.php,如果存在就返回true*/$_page = urldecode($page);/*进行一次url解码,将%3F解码为?所以这里将?写做%3F也无法实现绕过*/$_page = mb_substr($_page,0,mb_strpos($_page . '?', '?'));if (in_array($_page, $whitelist)) {return true;}//这一部分解释同上echo "you can't see it";return false;}}if (! empty($_REQUEST['file'])//判断文件不能为空&& is_string($_REQUEST['file'])//并且,传入参数为字符串&& emmm::checkFile($_REQUEST['file'])//并且,调用函数(白名单)要过白名单检测,过了之后,即可看到包含了flag的文件) {include $_REQUEST['file'];exit;} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";}
?>
构造playload(1)=http://ip/?file=souce.php?../../../../ffffllllaaaagggg
playload(2)=http://ip/?file=souce.php?../../../../../ffffllllaaaagggg
playload(3)=http://ip/?file=hint.php?../../../../../ffffllllaaaagggg
分别进行尝试



(中间有靶机到期自动销毁的情况,截图的网址有变化)Q^Q
总论:
mb_strpos和mb_substr截取内容,碰到?就截止,所以我们只需要输入/?file=source.php?即可绕过白名单检测
四、[ACTF2020 新生赛]Include
进入网页,打开源码,只有tips有提示

点击tips,跳转到/?file=flag.php,还是什么也没有

根据题目(include)提示,可以猜测flag在/?file=flag.php页面中,但是被注释了,所以我们就要想办法获取网页的源码。
所以这里可以想到要构造php伪协议
PHP伪协议也是php支持的协议和封装协议。
常见的有
- file:// 访问本地文件系统
- php:// 访问各个输入/输出流
- data:// 数据
- zip:// 压缩流 不过有些伪协议需要allow_url_fopen和allow_url_include的支持
php://
- php:// 访问各个输入/输出流I/O streams在CTF中经常使用的是php://filter和php//input
- php://filter用于读取源码php://input用于执行php代码。
php://filter伪协议
php://filter/参数=转换过滤器
参数:
1.resource=<要过滤的数据流>
2.read=<读链的过滤器>
3.write=<写链的过滤器>
4.<;两个链的过滤器>转换过滤器:
1.convert.base64-encode & convert.base64-decode<等同于base64_encode()和base64_decode(),base64编码解码>
2.convert。quoted-printable-encode & convert.quoted-printable-decode<quoted-printable 字符串编码解码>
php://input读取POST数据
说明
可以访问请求的原始数据的只读流。即可以直接读取到POST上没有经过解析的原始数据。 enctype=”multipart/form-data” 的时候 php://input 是无效的
参数可以同时使用,两两之间使用 / 隔开
本题构造的伪协议格式:
/?file=php://filter/read=convert.base64-encode/resource=flag.php
得到一串base64编码

将base64编码解码

总结:
php伪协议,获取网页源码,用于获取简单的被注释掉的重要信息
伪协议构造格式中的一种:
/?file=php://filter/read=convert.base64-encode/resource=flag.php
五、[ACTF2020 新生赛]Exec
打开靶机看到ping,先输入网址127.0.0.0进行测试


可以看到执行ping命令有回显


而单独输入查询命令时没有回显,由于ping命令可以与管道符连用,先尝试用管道符连接ls


连接ls发现有回显,尝试用cd逐层发打开文件





打开到第三层的时候,出现了flag,我们只要cat一下flag即可


既然ls命令可以用,我们不妨大胆一点
直接cat /flag


嚯!这也行!直接一步到位,所以我前面在干嘛……
ps:补充一下管道符的用法
| :按位或,直接执行后面的语句
& :按位与,前面后面的都要执行,不管真假
|| :逻辑或,相当于or
&& :逻辑与,相当于and; :作用与&相同,前后都会执行
总结:
ping命令后可跟管道符,管道符的用法。
相关文章:
buuctf web 前5题
目录 一、[极客大挑战 2019]EasySQL 总结: 二、[极客大挑战 2019]Havefun 总结: 三、[HCTF 2018]WarmUp 总论: 四、[ACTF2020 新生赛]Include 总结: 五、[ACTF2020 新生赛]Exec 总结: 一、[极客大挑战 2019]…...
stable diffusion实践操作-提示词-人物服饰
系列文章目录 stable diffusion实践操作-提示词 文章目录 系列文章目录前言一、提示词汇总1.1 人物服饰11.2 人物服饰2 前言 本文主要收纳总结了提示词-人物服饰。 一、提示词汇总 1.1 人物服饰1 耳饰帽子内裤内衣上身饰品手部[月牙耳环][头顶光环][丁字裤][胸罩][披风][太…...
Tomcat加载静态资源--防止SpringMVC拦截
最简洁方式:使用API 在配置文件下写配置类SpringMvcSupport,并且让SpringMVC扫描到此文件夹ComponentScan({"com.itheima.controller","com.itheima.config"}) SpringMvcSupport配置类如下 Configuration public class SpringMvcS…...
【AI数字人】如何基于ER-NeRF自训练AI数字人
文章目录 环境配置前期准备数据预处理音频预处理训练bug测试度量标准用指定的声音进行推理参考ER-NeRF,能够以更小的模型尺寸和更快的速度训练合成逼真的3D talking portrait。 环境配置 ER-NeRF项目开源于两个月前,相比于两年前的AD-NeRF,使用更新版本的tensorflow和各种…...
多目标应用:基于多目标哈里斯鹰优化算法(MOHHO)的微电网多目标优化调度研究MATLAB
一、微网系统运行优化模型 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、多目标哈里斯鹰优化算法MOHHO 多目标哈里斯鹰优化算法(Multi-Objective Harris Hawks Optimizer&#…...
[运维|中间件] 东方通TongWeb忘记密码后修改密码
参考文献 Tongweb忘记密码处理办法 修改密码 以下步骤将thanos用户密码修改为 thanos123.com 编辑twusers.properties文件 vim /path/to/TongWeb7.0/conf/security/twusers.properties将thanos的内容修改为默认的密码信息: thanos3d6391e41e9c4319$3$6774c6fc9…...
无涯教程-Android Mock Test函数
本节介绍了与 Android 相关的各种模拟测试。您可以在本地计算机上下载这些样本模拟测试,并在方便时离线解决。每个模拟测试均随附一个模拟测试键,可让您验证最终分数并为自己评分。 Mock Test I Mock Test II Mock Test III Mock Test IV Q 1 -什么是Android? A -A…...
保留网络[02/3]:大型语言模型转换器的继任者”
一、说明 在这项工作中,我们提出保留网络(RETNET)作为基础架构大型语言模型的结构,同时实现训练并行, 推理成本低,性能好。我们从理论上推导出这种联系 复发与关注之间。然后我们提出保留机制 序列建模&…...
微信小程序-生成canvas图片并保存到手机相册
wxml页面 <button class"rightbtn bottomBtnCss" catch:tap"canvasImg"><image src{{imgUrl}}/images/mine/jspj-icon.png class"restNumImg"></image><text class"btnText">生成图片</text></but…...
设计模式8:代理模式-动态代理
上一篇:设计模式8:代理模式-静态代理 目录 如何理解“动态”这两个字?动态代理简单的代码实例一个InvocationHandler代理多个接口有动态代理,为什么还要用Cglib代理? 如何理解“动态”这两个字? “动态”…...
tcp字节传输(java)-自定义包头和数据识别
1、背景 tcp传输的时候会自动拆包,因此服务端接收的数据段可能跟客户端发送过来的数据段长度不一致,比如客户端一次发送10000个字节。但是服务端接收了两次才接收完整(例如第一次接收6000字节,第二次接收4000字节)。但…...
pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java
使用用具PyCharm 2023.2.1 1:pyspark 系统找不到指定的路径, Java not found and JAVA_HOME environment variable is not set. Install Java and set JAVA_HOME to point to the Java installation directory. 解决方法:配置正确环境变量…...
UE4 Physics Constraint Actor 实现钟摆效果
放入场景,然后将一个球体放入场景 选择小球 将小球改为Movable 选择模拟物理,并将小球移除平衡点 就实现了...
UE4/UE5 动画控制
工程下载 https://mbd.pub/o/bread/ZJ2cm5pu 蓝图控制sequence播放/倒播动画: 设置开启鼠标指针,开启鼠标事件 在场景中进行过场动画制作 设置控制事件...
Springboot整合shiro
导入依赖 <!-- 引入springboot的web项目的依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency> <!-- shiro --><depende…...
阻塞/非阻塞、同步/异步(网络IO)
1.阻塞/非阻塞、同步/异步(网络IO) 【思考】典型的一次 IO 的两个阶段是什么? 数据就绪 和 数据读写 数据就绪 :根据系统 IO 操作的就绪状态 阻塞 非阻塞 数据读写 :根据应用程序和内核的交互方式 同步 异步 陈硕:在处理 IO …...
为什么大家会觉得考PMP没用?
一是在于PMP这套知识体系,是一套底层的项目管理逻辑框架,整体是比较抽象的。大家在学习工作之后,会有人告诉你很多职场的一些做事的规则,比如说对于沟通,有人就会告诉如何跟客户沟通跟同事相处等等,这其实就…...
AVR128单片机 USART通信控制发光二极管显示
一、系统方案 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 void port_init(void) { PORTA 0xFF; DDRA 0x00;//输入 PORTB 0xFF;//低电平 DDRB 0x00;//输入 PORTC 0xFF;//低电平 DDRC 0xFF;//输出 PORTE 0xFF; DDRE 0xfE;//输出 PO…...
为什么5G 要分离 CU 和DU?(4G分离RRU 和BBU)
在 Blog 一文中,5G--BBU RRU 如何演化到 CU DU?_5g rru_qq_38480311的博客-CSDN博客 解释了4G的RRU BBU 以及 5G CU DU AAU,主要是讲了它们分别是什么。但是没有讲清楚 为什么,此篇主要回答why。 4G 为什么分离基站为 RRU 和 BBU…...
Python中的数据输入
获取键盘输入 input语句 使用input()可以从键盘获取输入,使用一个变量来接收 print("你是谁?") name input() print(f"我知道了,你是{name}")# print("你是谁?") name input("你是谁&…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
