自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鸡蛋炒鸡蛋

髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。

  • 博客(147)
  • 收藏
  • 关注

原创 数据库基础

概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确性、有效性、完整性。约束描述关键字非空约束限制该字段的数据不能为nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一默认约束保存数据时,,如果未指定该字段的值,则采用默认值DEFAULT检查约束(8.0.16版本之后)保证字段值满足某一个条件CHECK外键约束。

2023-03-08 22:28:34 1946

原创 PowerShell攻击指南

什么是powershell?可以简单理解为cmd.exe的扩展。powershell具有灵活性和功能化管理windows系统的能力,powershell脚本文件后缀名是.ps1(数字1)Windows PowerShell是一种命令行外壳程序和脚本环境,它内置在每个受支持的windows版本中,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。

2023-03-03 03:06:00 6093 1

原创 022 C语言基础:C内存管理与C命令行参数

首先给出大佬的链接:https://zhuanlan.zhihu.com/p/272920885在计算机中,每个应用程序之间的内存是相互独立的,通常情况下应用程序 A 并不能访问应用程序 B,当然一些特殊技巧可以访问,但此文并不详细进行说明。例如在计算机中,一个视频播放程序与一个浏览器程序,它们的内存并不能访问,每个程序所拥有的内存是分区进行管理的。在计算机系统中,运行程序 A 将会在内存中开辟程序 A 的内存区域 1,运行程序 B 将会在内存中开辟程序 B 的内存区域 2,内存区域 1 与内存区域 2 之

2022-06-21 13:42:15 478

原创 021 C语言基础:递归,可变参数

递归是以自身相似的方式重复项目的处理过程。同样的,在编程语言中,在函数内部调用函数自身,称为递归调用。C 语言支持递归,即,一个函数可以调用自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入无限循环。递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘、生成斐波那契数列,等等。 有时,可能会碰到这样的情况,希望函数带有可变数量的参数,而不是预定义数量的参数。C 语言为这种情况提供了一个解决方案,它允许定义一个函数,能根据具体的需求接受可变数量的参数。下面的实例演示

2022-06-21 13:31:26 366

原创 020 C语言基础:C语言强制类型转换与错误处理

强制类型转换是把变量从一种类型转换为另一种数据类型。例如,如果您想存储一个 long 类型的值到一个简单的整型中,您需要把 long 类型强制转换为 int 类型。可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型。实例: 就是隐式的把值强制转换为相同的类型。编译器首先执行整数提升,如果操作数类型不同,则他们会被转换为下列层次中出现的最高层次的类型:常用的算术转换不适用于赋值运算符,逻辑运算符&&和||。让我们看看下面的实例来理解这个概念:在这里,c 首先被转换为整数,但是由于最后的值

2022-06-21 13:24:35 962

原创 019 C语言基础:C预处理

前面各章中,已经多次使用过#include命令。使用库函数之前,应该用#include引入对应的头文件。这种以#号开头的命令称为预处理命令。在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理、提前处理)。预处理主要是处理以#开头的命令,例如#include 等。预处理命令要放在所有函数之外,而且一般都放在源文件的前面。我们把 C 预处理器(C Preprocessor)简写为 CPP。所有的预处理器命令都是以井号(#)开头。它必须是第一个非空字符,为了增强可读性,预处理器指令应...

2022-06-20 17:01:46 310

原创 018 C语言基础:C文件读写

我们对文件的概念已经非常熟悉了,比如常见的 Word 文档、txt 文件、源文件等。文件是数据源的一种,最主要的作用是保存数据。在操作系统中,为了统一对各种硬件的操作,简化接口,不同的硬件设备也都被看成一个文件。对这些文件的操作,等同于对磁盘上普通文件的操作。例如,通常把显示器称为标准输出文件,printf 就是向这个文件输出,把键盘称为标准输入文件,scanf 就是从这个文件获取数据。常见硬件设备与文件的对应关系 所有的文件都是保存在磁盘上的,要载入内存才能处理,所有的数据必须写入文件(磁盘)才不会丢失。

2022-06-20 16:39:54 613

原创 017 C语言基础:位域和typedef

有些数据在存储时并不需要占用一个完整的字符,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用0和1表示足以,也就是用一个二进位。正式基于这种考虑,C语言又提供了一种叫做位域的数据结构。那么什么是位域呢?在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。例如:对于 n 和 ch,第一次输出的数据是完整的,第二次输出的数据是残缺的。第一次输出时,n、ch 的值分别是 0xE、0x24(‘$’ 对应的 ASCII 码为 0x24),换算成二进制是 1110、

2022-06-20 16:07:30 662 2

原创 016 C语言基础:C语言枚举类型

在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等。以每周七天为例,我们可以使用#define命令来给每天指定一个名字:#define命令虽然能解决问题,但也带来了不小的副作用,导致宏名过多,代码松散,看起来总有点不舒服。C语言提供了一种枚举(Enum)类型,能够列出所有可能的取值,并给它们取一个名字。 需要注意的两点是:枚举列表中的 Mon、Tues、Wed 这些标识符的

2022-06-20 15:55:30 269

原创 015 C语言基础:C结构体、共用体

前面的章节学习了数组,他是一组具有相同类型的数据的集合。但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄为整数,所在的学习小组为字符,成绩为小数,因为数据类型不同,显然不能用一个数组来存放。在C语言中,可以使用结构体来存放一组不同类型的数据。结构体的定义形式为:结构体是一种集合,里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称之为结构体的成员。像int、float、char等是由C语言本身提供的数据类型,不能

2022-06-20 15:49:14 211

原创 014 C语言基础:C字符串

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。空字符(Null character)又称结束符,缩写 NULL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。比如单词“hello”由于在末尾多了个"",所以字符数组的大小比单词"hello"的字符数多一个。依据数组初始化规则,可以把上面的语句写成以下语句: strcpy 函数由于不对数组边界进行检查,而非常容易造成各种缓冲区溢出的漏洞。这些漏

2022-06-20 15:28:29 186

原创 013 C语言基础:C指针

学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。通过上面的实例,我们了解了什么是内存地址以及如何访问它。接下来让我们看看什么是指针。 指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。就像其他变量或常量一样,在使用指针存储其他变量地址之前,对其进行声明。指针变量声明的一般形式为:在这里type是指针的

2022-06-20 15:19:42 551

原创 012 C语言基础:C数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量,比如 number0、number1、…、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、…、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。数

2022-06-18 18:47:20 588 2

原创 011 C语言基础:C作用域规则

任何一种编程中,作用域是程序中定义的变量所存在的区域,超过该区域变量就不能被访问。C 语言中有三个地方可以声明变量: 在某个函数或块的内部声明的变量称为局部变量。只能被该函数或该代码内部的语句使用。局部变量在函数外部是不可知的。 全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量。全局变量可以被任何函数访问。也就是说,全局变量在声明后整个程序中都是可用的。 函数的参数,形式参数,被当做该函数内的局部变量,他们会优先覆盖全局变量。 当局部

2022-06-18 18:30:43 139

原创 010 C语言基础:C函数

函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的。函数声明告诉编译器函数的名称、返回类型和参数。函数定义提供了函数的实际主体。C 标准库提供了大量的程序可以调用的内置函数。例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。函数还有很多叫法,比如方

2022-06-18 18:22:57 261

原创 009 C语言基础:C循环

有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 多次执行一个语句序列,简化管理循环变量的代码。下面是 for 循环的控制流:init 会首先被执行,且只会执行一次。这一步允许您声明并初始化任何循环控制变量。您也可以不在这里写任何语句,只要有一个分号出现即可。接下来,会判断 condition。如果为真,则执行循环主体。如果为假,则不执行循环主体,且控制流会跳转到紧接着 for 循环的下一条语句。在执行完 for 循环主体后,控

2022-06-18 18:02:55 133

原创 008 C语言基础:C判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。if…else语句一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。注意区分,和Python语法有区别: 允许测试一个变量等于多个值时的情况。每个值称为一个case,且被测试的变量会对每个swi

2022-06-18 17:51:24 248

原创 007 C语言基础:C运算符

运算符是一种告诉编译器执行特定的数字或逻辑操作的符号。 算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符 下表显示了 C 语言支持的所有算术运算符。假设变量 A 的值为 10,变量 B 的值为 20,则:实例:结果:区别:a++与++a,a++ 和 ++a的相同点都是给a+1,不同点是a++是先赋值再+1,而++a则是先+1再参赋值。 在C 语言中,位运算符主要是用于数值类型的二进制的运算。案例说明:假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下

2022-06-18 17:27:24 260

原创 006 C语言基础:C存储类

存储类用来定义C程序中变量、函数的范围(可见性)和生命周期。这些说明符放置在它们所修饰的类型之前。 auto存储类是所有局部变量的默认存储类,下面的实例定义了两个带有相同存储类的变量,可以理解为这两行等价,auto只能用在函数内,即auto只能修饰局部变量。 先看一段非人类的解释:register存储类用于定义存储在寄存器中而不是RAM中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个字节),且不能对它应用一元的’&'运算符(因为它没有内存位置)是不是一脸懵逼?要明白上面的话,首先要明

2022-06-18 11:25:33 333

原创 005 C语言基础:C变量与常量

变量其实只不过是程序可操作的存储区的名称。C中每个变量都有特定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。变量的名称可以有字母,数字,下划线字符组成。必须以字母或者下划线开头。C是区分大小写的。变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表,如下所示:在这里,type 必须是一个有效的 C 数据类型,可以是 char、w_char、int、float、double、bool

2022-06-10 09:55:49 200

原创 004 C语言基础:C数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C中的类型可以分为以下几种; 为了得到某个类型或某个变量在特定平台上的准确大小,可以使用sizeof运算符。表达式sizeof(type)得到对象或类型的存储字节大小。下面演示获取int类型的大小:补充: 列出了关于标准浮点类型的存储大小、值范围和精度的细节:头文件float.h定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。下面的实例将输出浮

2022-06-10 09:34:49 136

原创 003 C语言基础:C程序结构与基本语法

C程序主要包括以下部分:预处理指令函数变量语句&表达式注释第一个C程序代码:编译,执行C程序接下来让我们看看如何把源代码保存在一个文件中,以及如何编译并运行它。下面是简单的步骤: C 程序由各种标记组成,标记可以是关键字、标识符、常量、字符串值,或者是一个符号。例如,下面的 C 语句包括五个标记: 在C程序中,分号是语句结束符,也就是说,每个语句必须以分号结束。它表明一个逻辑实体的结束。 C标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 ​A-Z​ 或​a

2022-06-09 19:12:12 189

原创 002 C语言基础:C 环境设置

如果想要设置 C 语言环境,需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。 这将用于输入您的程序。文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 、sublime、vscode(推荐)和 vim/vi。文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/vi 可用于 Windows 和 Linux/UNIX 操作系统上。vscode拥有多平台支持,W

2022-06-09 18:58:06 131

原创 001 C语言基础:C简介

C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。在 1978 年,布莱恩·柯林汉(Brian Kernighan)和丹尼斯·里奇(Dennis Ritchie)制作了 C 的第一个公开可用的描述,现在被称为 K&R 标准。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。 C 语言是

2022-06-09 18:24:21 160

原创 067 渗透测试实战,靶机 DC-5

文章目录一:环境准备二:nmap扫描三:御剑扫描网站一:环境准备下载:点我下载之后完成安装,过程详情请参考,063 渗透测试实战,靶机 DC-1需要抓包软件bp,文件的下载安装可以参考我的 前面的内容 :047 Burp Suite的详细安装与使用打开DC-5,建议把虚拟机升级到15.5.7,我之前的虚拟机做这个dc靶机实验的时候经常电脑蓝屏。 二:nmap扫描扫描局域网主机号nmap -sP 192.168.100.0/24 -oN nmap.sP扫描端口号nmap

2022-05-27 16:33:50 1528 5

原创 066 渗透测试实战,靶机 DC-4

文章目录一:环境准备一:环境准备下载:点我下载之后完成安装,过程详情请参考,063 渗透测试实战,靶机 DC-1打开DC-4

2022-04-29 17:03:44 479

原创 065 渗透测试实战,靶机 DC-3

文章目录

2022-04-27 22:10:01 954

原创 064 渗透测试实战,靶机 DC-2

文章目录一:环境准备二:flag1三:flag2四:flag3五:flag4六:flag5一:环境准备下载:点我下载之后完成安装,过程详情请参考,063 渗透测试实战,靶机 DC-1打开DC-2打开Kalinmap 扫描局域网主机nmap -sP 192.168.100.0/24 -oN nmap.sP确定主机之后,对主机进行端口扫描:nmap -A 192.168.100.8 -p 1-65535 -oN nmap.A发现开放了80和7744端口号。开放了80端口号,所以这时候

2022-04-23 18:15:01 1071

原创 063 渗透测试实战,靶机 DC-1

文章目录一:准备阶段二:flag1三:flag2四:flag3五:flag4六:flag5一:准备阶段DC-1下载与安装下载:点我安装:下载之后进行解压,得到.ova文件右键选择VMware打开,选择路径,导入虚拟机,若出现下图情况,先点击取消,然后把vmware正处于开启状态的虚拟机关闭或者选择挂起。再重新选择路劲,导入虚拟机,若还是出现下图内容,则点击重试即可。安装完成点击编辑虚拟机二:flag1三:flag2四:flag3五:flag4六:flag5...

2022-04-23 00:13:30 3083

原创 062 反序列化漏洞

文章目录一:概述二:PHP中的序列化与反序列化三:序列化Demo四:反序列化注入,案例说明一:概述先了解什么是序列化?简单来说,把对象转化为可传输的字节序列过程称为序列化。那么反序列化就是?把字节序列还原为对象的过程称为反序列化。百度百科上的解释:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。 在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 二:PHP中的序列化

2022-04-21 15:13:08 1812

原创 061 python实现EXP

文章目录一:概述二:环境准备三:requests库3.1:发送get请求3.2:相关方法3.3:相关操作3.3.1:定制头部3.3.2:超时3.3.3:GET传参一:概述python编写EXP,以web漏洞为主exp 漏洞利用工具1、能够看懂别人写的exp,并修改2、能自己写exp基础环境python3核心模块requests模块说明 requests是使用Apache2 license 许可证的http库 用python编写,比urllib2模块更简洁 requests支持http

2022-04-20 19:26:28 5377

原创 060 MSF(metasploit)

文章目录基本命令,图片演示info 查看模块的详细信息setshow optionsexploitback 返回主目录exit 退出源代码┌──(root💀kali)-[/usr/share/metasploit-framework]└─# msfconsole .~+P``````-o+:.

2022-04-09 17:27:53 747

原创 059 提权与反弹shell

文章目录一:权限提升概述二:windows提权2.1: 启动项提权2.2:系统漏洞提权2.2.1:笔记2.2.2:实验一:权限提升概述水平权限提升(越权)同级账户间切换身份,比如有ABC三个用户,AB是普通用户只能自己发帖,然后只能删除自己的贴,C是管理员能删除所有人的帖子,然后突然A可以删除B的帖子了,这就是越权。垂直权限提升普通用户获得了管理员的权限web用户直接提权成管理员用户  二:windows提权前提:基于webshell提权,也就是说目标机器存在大马文

2022-04-07 01:04:45 6579

原创 058 业务逻辑漏洞

文章目录一:概述二:黑客攻击的目标三:业务安全测试流程3.1:测试准备3.2:业务调研3.3:业务建模3.4:业务流程梳理3.5:业务风险点识别3.6:开展测试3.7:撰写报告四:万能密码五:业务数据安全5.1:商品支付金额篡改5.2:前端JS限制绕过验证5.3:请求重放测试5.4:业务上线测试5.5:商品订购数量篡改六:dami支付漏洞,让你一夜暴富七:密码找回安全7.1:验证码客户端回显测试7.2:验证码暴力破解7.3:Response状态值修改测试7.4:Session覆盖7.5:弱Token设计缺陷

2022-04-01 07:31:51 955

原创 057 SSRF

文章目录

2022-03-31 21:56:04 681 3

原创 056 CSRF跨站请求伪造

文章目录概述:概述:跨站请求伪造(cross site request forgery,csrf)是一种攻击,它强制终端用户在当前对其身份验证后的web应用程序上执行非本意的操作。可以这么理解:CSRF是跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性。攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品

2022-03-28 18:10:14 3471

原创 055 文件包含

文章目录

2022-03-25 19:07:35 3888

原创 054 webshell介绍与文件上传漏洞

文章目录

2022-03-24 03:09:46 7486 2

原创 053 OS命令注入与DVWA靶场搭建及命令注入

文章目录

2022-03-11 10:52:00 3046 2

原创 052 php代码注入

文章目录一:RCE概念二:PHP代码注入原理以及成因三:漏洞的危害四:相关的函数和语句4.1:eval()4.2:assert()4.3:preg_一:RCE概念RCE:远程代码执行英文全称:remote command/code execute  二:PHP代码注入原理以及成因PHP代码执行(注入)(web方向)是指应用程序过滤不严,用户可以通过请求将代码注入到应用中执行。代码执行类似于SQL注入漏洞。sqli是将sql语句注入到数据库中执行,而代码执行则是可以把代码注入

2022-03-10 16:00:26 2205 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除