声明
学习视频来自B站UP主 泷羽sec,如涉及侵权立刻删除文章 条记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自尊
渗透思绪流程:
信息收集–毛病扫描–毛病发掘–开始攻击–权限维持(持久化)–权限提升–免杀隐蔽–横向移动
–痕迹整理
对于思绪的学习,这一点也是须要不断学习、不断实践才气相识更多的
这节课主要用于学习一些常见的安全知识,用于相识网络安全领域,扩展自己的知识面,以便相识在举行学习渗透测试前的底子知识。对于每个技能名词以及发展的具体介绍,这边我主要使用ChatGPT相识。
编程语言
一样平常编程语言
C语言:一种通用的、面向过程的编程语言,广泛运用于嵌入式开发
C++:面向对象的编程语言,常用于游戏开发、高性能盘算等领域
Java:一种广泛使用的面向对象编程语言、具有跨平台性、应用于企业级应用开发等
Python(萌新推荐):简便易学,拥有丰富的库,实用于数据分析、人工智能、web开发等
Javascript:主要用于网页前端开发,也可用于服务器端开发(Node.js)
C#:由微软开发,主要用于windows平台上的应用开发
Php:用于web开发,得当编写服务器端脚本
Go:实用于网络编程和云运维等领域
Swift:苹果公司开发的编程语言,用于ios和macos应用开发
Kotlin:可于java互操作,主要用于Android开发
函数式编程语言
Haskell:纯函数式编程语言,以强大的类型体系和数学上的严谨性著称
Lisp(包括Common lisp、scheme等):以高度的灵活性和宏体系闻名
Clojure:运行在java虚拟机上的lisp方言,结合了函数式编程和java平台的上风
对于函数式编程语言,这里有个高阶函数须要相识,这里我用python形貌:
- def apply_operation(operation, numbers):
- """Applies the given operation to each number in the list."""
- return [operation(x) for x in numbers]
- # 定义一个简单的操作,例如求一个数的平方
- def square(x):
- return x * x
- # 定义一个数字列表
- numbers = [1, 2, 3, 4, 5]
- # 将求平方的操作应用于列表中的每个数字
- squared_numbers = apply_operation(square, numbers)
复制代码 在这个例子中,apply_operation 是一个高阶函数,它接受一个操作(这里是 square 函数)和一个数字列表作为参数。然后,它将这个操作应用于列表中的每个数字,并返回一个新的列表,此中包罗了每个数字的平方。当我们使用 square 函数和数字列表 [1, 2, 3, 4, 5] 调用 apply_operation 时,得到的结果是 [1, 4, 9, 16, 25]。
下面,在使用函数做为结果赋值给另一个函数的高阶函数应用:
- def create_multiplier(multiplier):
- """返回一个函数,该函数将其输入乘以给定的乘数。"""
- def multiplier_function(x):
- return x * multiplier
- return multiplier_function
- # 示例用法:
- # 创建一个函数,将其输入乘以 3
- multiply_by_three = create_multiplier(3)
- # 使用返回的函数来乘以一个数字
- result = multiply_by_three(10)
复制代码 在这个例子中,create_multiplier 是一个高阶函数,它接受一个乘数作为参数,并返回一个新的函数 multiplier_function。这个新函数接受一个参数,并将其与乘数相乘。当我们调用 create_multiplier(3) 时,它返回一个新函数,该函数将任何输入乘以 3。因此,当我们使用 multiply_by_three(10) 调用这个返回的函数时,结果是 30。
别的底子概览可以问GPT相识。
数据科学和机器学习领域
R:在统计分析和数据可视化方面应用广泛
Julia:设计用于高性能科学盘算和数据分析
Web全栈开发
Typescript:是JavaScript的超集,增加了静态类型查抄等特性,进步了大型项目的开发效率
具体js和ts的区别可以自行相识,js可以又欣赏器直接执行,ts是js的超集,须要编译
嵌入式开发
Assembly language:是一种汇编语言,用于对硬件举行底层控制
对于汇编语言,前期相识即可
软件步调
Web步调
前端、后端、数据库、服务器等构成
二进制步调
在抓包中可以使用Brupsuite抓包查察接口哀求转换成二进制
驱动步调
关于驱动步调设计操作体系级别的开发,这里大家知道网卡驱动、声卡驱动等就行了
上位机
上位机可以是硬件装备,也可以是软件步调,具体取决于体系的设计和需求。在嵌入式体系中,上位机软件通常是指运行在嵌入式操作体系上的应用步调,这些应用步调负责与下位机举行通讯,执行控制使命,并处置处罚数据。
脚本步调
裸板步调
裸板步调(Bare Metal Program)是指直接在盘算机硬件上运行的步调,不依赖于任何操作体系或尺度库。这些步调通常是用汇编语言或C语言编写的,可以直接访问和控制硬件资源,如CPU、内存、I/O端口等。
机器学习
量子盘算
工控步调
工控步调通常使用专门的编程语言和工具举行开发,如PLC(可编程逻辑控制器)编程语言、SCADA(监控与数据收罗)体系等
Bios步调
BIOS(Basic Input/Output System,基本输入输出体系)是盘算机硬件与操作体系之间的一个桥梁它负责在盘算机启动时初始化硬件装备,并提供基本的输入输出功能。
操作体系
非实时操作体系:
Ios
Mac
Linux
Windows
Android
实时操作体系
Wince
WinCE是微软开发的嵌入式操作体系,它对多种编程语言提供了支持。在WinCE上开发应用步调,C和C++是主流选择,主要是由于它们提供了高效的内存管理和接近硬件的操作能力,这对于资源受限的嵌入式体系来说尤为告急。
VxWorks
抢占式调度策略与非抢占式调度策略是操作体系中使命调度的两种基本方式,VxWords是一种高性能的实时操作体系,可以自行相识
Rt-thread
总结:一样平常实时操作体系主要夸大实时性,故主要用于嵌入式软件当中。
网络通讯
硬件设置
盘算机硬件
中央处置处罚器(cpu):盘算机的核心部件,负责执行指令和处置处罚数据。它的性能决定了盘算机的运行速率
内存:用于存储正在运行的步调和数据,它的容量和速率对盘算机的性能有很大影响
硬盘:用于长期存储数据,包括操作体系、应用步调、文件等。硬盘的容量和读写速率也是影响盘算机性能的告急因素
显卡:用于处置处罚图形和图像数据,它的性能决定了盘算机的图像处置处罚能力
主板:是盘算机的核心电路板,连接着各种硬件装备。
网络硬件
网络服务器:提供网络服务,如文件存储、电子邮件、webb服务等。
网络存储装备:用于存储网络中的数据,如网络附加存储(NAS)和存储区域网络(SAN)。它们提供了大容量、高可靠性的数据存储解决方案。
网络打印机:可以通过网络连接共享多台盘算机。
网络摄像头:用于视频监控和远程会议。
移动装备硬件
智能手机
平板电脑
可穿着装备
硬件发展趋势
小型化
高性能
智能化
互联互通
网络类型
局域网(LAN):覆盖范围小,一样平常在一个建筑物或校园内
城域网(MAN):覆盖范围大,一样平常在一个城市内
广域网(WAN):覆盖范围非常大,可以跨越地域和国家
网络协议
关于网络协议这里就很告急了,具体可以先相识常见协议以及协议的组成
比如http协议有哀求头,哀求体,哀求参与,响应相关等,具体协议可以自行百度相识
后续学习也可以学习盘算机网络原理建立知识体系
常见的协议有以下:
Tcp/ip:互联网的底子协议
这里协议常用且告急,使用wireshark工具抓包可以分析很多问题,再渗透测试中对于tcp/ip协议可能用到的场景如下:
以下是TCP/IP协议在网络安全和渗透测试中的一些应用:
网络安全:
防火墙和入侵检测体系(IDS):防火墙和IDS使用TCP/IP协议来监控网络流量,识别和阻止可疑或恶意的网络活动。
网络地址转换(NAT):NAT可以资助隐蔽内部网络布局,增加安全性。
虚拟专用网络(VPN):VPN使用TCP/IP协议来创建加密的隧道,掩护数据传输的机密性。
安全套接层(SSL/TLS):SSL/TLS协议用于在TCP/IP层之上提供加密的通讯,掩护数据不被窃听或篡改。
渗透测试:
扫描工具:渗透测试职员使用扫描工具(如Nmap)来扫描目的体系的TCP/IP端口,以发现潜在的毛病。
毛病利用:渗透测试职员可能会利用TCP/IP协议中的毛病,如TCP SYN洪水攻击、IP欺骗等,来测试目的体系的安全性。
网络流量分析:渗透测试职员会分析网络流量,以识别异常行为或潜在的攻击模式。
协议分析:渗透测试职员会分析TCP/IP协议的实现,以发现协议栈中的毛病。
HTTP:超文本传输协议,用于在web欣赏器和web服务器间传输超文本数据,如网页、视频、图片等
FTP:文件传输协议
这里可以使用专业的工具ftp举行文件上产,背面文件上传毛病也就利用该协议了
SMTP、POP3、IMAP:用于电子邮件的传输
网络装备
路由器
一种网络装备,用于连接多个网络,并在这些网络之间转发数据包,实际作用是放大wifi信号以及转接桥接作用,这里自己搭建以下最简单的网络拓扑也就相识比如一个家庭的网络
交换机
交换机(Switch)是一种网络装备,用于连接网络中的装备,并在这些装备之间转发数据帧
这里我们知道交换机是全双工通讯即可。后续可以学习一些网络拓扑相关的知识
网卡
吸收无线信号
无线接入点(AP)
这里我们须要相识无线接入点和无线路由器的区别,可自行gpt
网络安全
这里就很告急了,但是如今只须要相识底子即可,后续可以深入相识
防火墙
防火墙是一种网络安全体系,旨在监控和控制进出网络的数据流量。它可以根据预界说的安全规则允许或阻止数据包的传输。防火墙可以是硬件装备、软件步调或两者的组合,通常位于内部网络和外部网络(如互联网)之间。
对于实际渗透中,大家都知道任何网络拓扑中都一定会有防火墙,故后续须要深入相识,这里知识拓展下大家的知识面,就不做概述了
加密技能
加密技能有很多,解密在实际软件中经常遇到,比如登录暗码加密等,个人信息组合加密等,具体的加密算法可以自行gpt,在实际获取flag中,也可能遇到暗码相关问题,这时候就须要我们费经心机举行解密了,常见的有:
对称加密:使用雷同的密钥举行加密和解密。对称加密速率快,得当加密大量数据,但密钥分发和管理可能是一个挑战。常见的对称加密算法包括AES(高级加密尺度)、DES(数据加密尺度)和3DES(三重DES)。
非对称加密:使用一对密钥,即公钥和私钥。公钥用于加密数据,私钥用于解密。非对称加密解决了密钥分发的问题,由于公钥可以公开,而私钥保持私密。常见的非对称加密算法包括RSA、ECC(椭圆曲线加密)和Diffie-Hellman密钥交换。
身份认证
就举我们常见的:比如token、Session、Cookie,具体自行gpt
人工智能
内容和领域涉及面就很广了,如今写这篇条记有些知识我也不相识都是问的ai快速相识,关于人工智能这又是一个告急的方向,后续可以相识,遇到不懂的问题也可以问人工智能,比如gpt glm
机器学习-工作流程
关于人工智能相关的可以下来后相识,如今相识一些流程即可,每个领域都有独立的专业的知识
数据收集
数据预处置处罚
模型选择和训练
模型评估与优化
模型应用
深度学习
神经网络
关于神经网络可以在guthub找到一些开源的项目,并且相识一些python opencv相关的知识
这里简单介绍下:
神经网络(Neural Network)是一种模仿人脑神经元连接方式的盘算模型,广泛应用于机器学习、人工智能、深度学习等领域。神经网络由大量相互连接的神经元组成,这些神经元通过加权连接形成网络布局。每个神经元吸收来自其他神经元的输入信号,颠末加权求和后,通过激活函数产生输出信号。
1.前馈神经网络:信息从输入层单向通报到输出层,中间可以有多层隐蔽层。网络布局简单,盘算效率高,学习能力有限。
2.卷积神经网络:在图像识别、语音识别等领域表现良好,通过卷积操作提取图像特性,减少参数数目,进步盘算效率。
3.循环神经网络:实用于处置处罚序列数据,如语音、文本等,能够捕获时间序列中的依赖关系。
4.生成对抗网络:由生成器和判别器两部分组成,生成器生成数据,判别器判定数据真假,两者相互博弈,最终生成高质量的数据。
多层神经网络
多层网络神经网络,通常指的是多层感知机(Multilayer Perceptron, MLP),是一种前馈神经网络,由多个层组成,包括输入层、一个或多个隐蔽层以及输出层。每一层都由多个神经元组成,每个神经元都与下一层的所有神经元相连。多层网络神经网络在很多机器学习使命中表现出色,尤其是在分类和回归问题上。
关于神经网络具体相识大家可以在学习中去相识,我如今用的gpt则就是基于Transformer架构的语言训练模块,而底层就是种基于自留意力机制的深度神经网络模型
WEB步调
通常构成为前端-后端-数据库-服务器,而这里面每个都有很深入的技能栈,我们背面边学边相识,比如web渗透方向,那么我们是可以去写一个前端项目的,这里大家可以自行学习html css js,ts,vue,react、es6等,后端学习jsp,sping全家桶,mvc,servlet,java,python,flask,djano等,后续学习时可以自行相识,这些底子知识对于web渗透都是及其有用的。
语言及其毛病
HTML(点击挟制)
HTML(HyperText Markup Language,超文本标记语言)是一种用于创建网页的尺度标记语言。它是一种标记语言,而不是编程语言,用于告诉欣赏器如何显示网页上的内容。
示例:
- <!DOCTYPE html>
- <html>
- <head>
- <title>网页标题</title>
- </head>
- <body>
- <h1>一级标题</h1>
- <p>这是一个段落。</p>
- </body>
- </html>
复制代码 CSS(注入,xss)
CSS(Cascading Style Sheets,层叠样式表)是一种用于形貌HTML文档外观的样式表语言。它用于控制网页的布局、颜色、字体巨细和其他视觉表现。CSS使开发者能够将内容与表现分离,使得网页的维护和更新变得更加容易。
示例:
- selector {
- property: value;
- }
复制代码 内联css:
- <p style="color: red;">这是一个红色段落。</p>
- <head>
- <style>
- p {
- color: red;
- }
- </style>
- </head>
复制代码 外部样式表:
- <head>
- <link rel="stylesheet" type="text/css" href="styles.css">
- </head>
复制代码 JavaScript(xss分为dom型、反射型、存储型,点击挟制,哀求走私)
这个语言就很告急,是必须把握和学习的,具体学习自行相识
JavaScript是一种高级的、解释型的编程语言,它被广泛用于网页和网站的开发,能够使网页具有动态交互性。JavaScript与HTML和CSS一起,构成了网页开发的底子技能。
内联脚本:
- <button onclick="alert('Hello, World!')">Click me</button>
- <script>
- function myFunction() {
- alert('Hello, World!');
- }
- </script>
复制代码 外部脚本:
- <script src="script.js"></script>
复制代码 JavaScript还支持事件处置处罚,可以通过监听特定事件(如点击、鼠标移动、键盘输入等)来执行代码。例如,可以使用addEventListener方法来添加事件监听器。
- document.getElementById('myButton').addEventListener('click', function() {
- alert('Button clicked!');
- });
复制代码 这里就涉及DOM元素,具体可以具体学习下
代码库
JQuery
JQuery 是一个快速、小型且功能丰富的 JavaScript 库。它使 HTML 文档的遍历和操作、事件处置处罚、动画和 Ajax 交互变得更加简单。
示例:
- $(document).ready(function(){
- // 选择所有段落元素并设置背景颜色
- $("p").css("background-color", "yellow");
- // 当用户点击按钮时,显示一个弹窗
- $("#myButton").click(function(){
- alert("Hello, world!");
- });
- });
复制代码 Bootstrap
Bootstrap是一个由Twitter公司的设计师Mark Otto和Jacob Thornton互助开发的前端框架,基于HTML、CSS和JavaScript。
示例:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Bootstrap Test</title>
- <!-- Bootstrap CSS -->
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
- </head>
- <body>
- <!-- Navbar -->
- <nav class="navbar navbar-expand-lg navbar-light bg-light">
- <a class="navbar-brand" href="#">My Website</a>
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
- </button>
- <div class="collapse navbar-collapse" id="navbarNav">
- <ul class="navbar-nav">
- <li class="nav-item active">
- <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="#">Features</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="#">Pricing</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="#">Contact</a>
- </li>
- </ul>
- </div>
- </nav>
- <!-- Content -->
- <div class="container mt-4">
- <h1>Welcome to My Website</h1>
- <p>This is a simple Bootstrap test page.</p>
- </div>
- <!-- Bootstrap JS and dependencies -->
- <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"></script>
- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
- </body>
- </html>
复制代码 Elementui
Element UI 是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。它提供了一套丰富的 UI 组件,可以资助开发者快速构建美观、易用的用户界面。Element UI 遵照 Vue 的设计原则,提供了响应式布局、组件化开发等特性,使得开发者可以轻松地构建单页应用步调(SPA)。
示例:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Element UI Test</title>
- <!-- 引入 Element UI 样式 -->
- <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
- <!-- 引入 Vue -->
- <script src="https://unpkg.com/vue/dist/vue.js"></script>
- <!-- 引入 Element UI 组件库 -->
- <script src="https://unpkg.com/element-ui/lib/index.js"></script>
- </head>
- <body>
- <div id="app">
- <el-form ref="form" :model="form" label-width="80px">
- <el-form-item label="活动名称">
- <el-input v-model="form.name"></el-input>
- </el-form-item>
- <el-form-item label="活动区域">
- <el-select v-model="form.region" placeholder="请选择活动区域">
- <el-option label="区域一" value="shanghai"></el-option>
- <el-option label="区域二" value="beijing"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="活动时间">
- <el-col :span="11">
- <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker>
- </el-col>
- <el-col class="line" :span="2">-</el-col>
- <el-col :span="11">
- <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker>
- </el-col>
- </el-form-item>
- <el-form-item label="即时配送">
- <el-switch v-model="form.delivery"></el-switch>
- </el-form-item>
- <el-form-item label="活动性质">
- <el-checkbox-group v-model="form.type">
- <el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
- <el-checkbox label="地推活动" name="type"></el-checkbox>
- <el-checkbox label="线下主题活动" name="type"></el-checkbox>
- <el-checkbox label="单纯品牌曝光" name="type"></el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="特殊资源">
- <el-radio-group v-model="form.resource">
- <el-radio label="线上品牌商赞助"></el-radio>
- <el-radio label="线下场地免费"></el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="活动形式">
- <el-input type="textarea" v-model="form.desc"></el-input>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="onSubmit">立即创建</el-button>
- <el-button>取消</el-button>
- </el-form-item>
- </el-form>
- </div>
- <script>
- new Vue({
- el: '#app',
- data() {
- return {
- form: {
- name: '',
- region: '',
- date1: '',
- date2: '',
- delivery: false,
- type: [],
- resource: '',
- desc: ''
- }
- };
- },
- methods: {
- onSubmit() {
- console.log('submit!');
- }
- }
- });
- </script>
- </body>
- </html>
复制代码 代码库
Vue
Vue.js 是一套用于构建用户界面的渐进式 JavaScript 框架。与别的大型框架差别的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关凝视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与当代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
示例:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>Vue.js Test</title>
- <!-- 引入 Vue -->
- <script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
- </head>
- <body>
- <div id="app">
- <h1>{{ count }}</h1>
- <button @click="increment">增加</button>
- <button @click="decrement">减少</button>
- </div>
- <script>
- new Vue({
- el: '#app',
- data: {
- count: 0
- },
- methods: {
- increment() {
- this.count++;
- },
- decrement() {
- this.count--;
- }
- }
- });
- </script>
- </body>
- </html>
复制代码 react
React 是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发并维护。它遵照组件化的设计理念,允许开发者将复杂的 UI 分解为可复用的组件。React 的主要特点包括:
例如写一个计时器的组件示例:
- // Counter.js
- import React, { useState } from 'react';
- const Counter = () => {
- const [count, setCount] = useState(0);
- const increment = () => {
- setCount(count + 1);
- };
- return (
- <div>
- <p>You clicked {count} times</p>
- <button onClick={increment}>Click me</button>
- </div>
- );
- };
- export default Counter;
复制代码 测试:
- // Counter.test.js
- import React from 'react';
- import { render, fireEvent } from '@testing-library/react';
- import Counter from './Counter';
- test('Counter increments when clicked', () => {
- const { getByText } = render(<Counter />);
- const countElement = getByText(/you clicked \d+ times/i);
- const button = getByText(/click me/i);
- expect(countElement).toBeInTheDocument();
- expect(countElement).toHaveTextContent('You clicked 0 times');
- fireEvent.click(button);
- expect(countElement).toHaveTextContent('You clicked 1 times');
- fireEvent.click(button);
- expect(countElement).toHaveTextContent('You clicked 2 times');
- });
复制代码 angular
Angular 是一个由 Google 维护的开源前端 Web 框架,用于构建单页应用步调(SPA)。它基于 TypeScript,是 JavaScript 的一个超集,提供了静态类型查抄、类和接口等特性,从而进步了代码的可维护性和可读性。这个框架的代码可以学完js后学习ts再来相识
后端
毛病:信息泄漏、xss、csrf、ssrf、反序列化、sql注入、命令注入、跨域注入、访问控制等
后端语言:
Php
PHP(Hypertext Preprocessor,超文本预处置处罚器)是一种开源的服务器端脚本语言,用于网页开发,可以嵌入HTML中使用。PHP的语法借鉴了C语言、Java和Perl,易于学习和使用。PHP主要用于动态网页开发,可以处置处罚表单数据、与数据库交互、生成动态内容等。
示例:
- <?php
- echo "当前时间是: " . date("Y-m-d H:i:s");
- ?>
复制代码 Java
Java是一种广泛使用的高级编程语言,由Sun Microsystems(现为Oracle Corporation的一部分)在1995年首次发布。它被设计为一种面向对象的语言,具有“一次编写,随处运行”的特点,这意味着Java代码可以在任何支持Java虚拟机(JVM)的平台上运行,而无需举行任何修改。
示例:
- public class HelloWorld {
- public static void main(String[] args) {
- System.out.println("Hello, World!");
- }
- }
复制代码 Python
Python是一种高级编程语言,以其简便、易读和易学而著称。它由Guido van Rossum于1989年创建,并在1991年首次发布。Python的设计哲学夸大代码的可读性和简便性,特别是使用空格缩进来表示代码块,而不是使用大括号或关键词。
示例:
Golang
Go(通常称为Golang)是一种由Google开发的开源编程语言,于2009年首次发布。Go的设计目的是结合Python等动态语言的易用性和C/C++等静态语言的性能,同时简化多核和网络编程的复杂性。
示例:
- package main
- import "fmt"
- func main() {
- fmt.Println("Hello, World!")
- }
复制代码 C/C++
C语言是一种广泛使用的高级编程语言,它最初由Dennis Ritchie在1972年设计,用于编写UNIX操作体系。C语言以其简便、高效和接近硬件的特点而闻名,被广泛应用于体系编程、嵌入式体系、操作体系、编译器、网络协议栈等领域。
C++ 是一种高级编程语言,由 Bjarne Stroustrup 在 1983 年开始开发,并于 1985 年首次发布。C++ 是 C 语言的扩展,它保留了 C 语言的所有特性和库函数,同时增加了很多新的特性和库,如类、对象、继续、多态、模板、异常处置处罚等。
C示例:
- #include <stdio.h>
- int main() {
- printf("Hello, World!\n");
- return 0;
- }
复制代码 C++示例:
- #include <iostream>
- int main() {
- std::cout << "Hello, World!" << std::endl;
- return 0;
- }
复制代码 nodejs
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时情况,用于构建快速、可扩展的网络应用步调。它由 Ryan Dahl 在 2009 年首次发布,旨在提供一种简单、高效的方式来构建网络服务器和应用步调。
示例:
- const http = require('http');
- const server = http.createServer((req, res) => {
- res.writeHead(200, {'Content-Type': 'text/plain'});
- res.end('Hello, World!\n');
- });
- server.listen(3000, () => {
- console.log('Server running at http://localhost:3000/');
- });
复制代码 ruby
Ruby 是一种动态、反射性、面向对象的脚本语言,最初由 Yukihiro “Matz” Matsumoto 在 1995 年创建。它的设计哲学是“尽可能让步调员快乐”,因此 Ruby 语言非常注重简便和优雅。
示例:
puts “Hello, World!”
语言都是相通的,这里我先学的java,再学的python、在学php即可
语言也有毛病,比如php就会有反序列化毛病,sql注入、命令注入等
数据库
数据库有sql注入、xss、命令注入等毛病
关系型数据库
Mysql
MySQL是一个关系型数据库管理体系,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理体系之一,被广泛用于Web应用步调的数据库。
下面写一些crud的sql语句:
创建数据库:CREATE DATABASE 数据库名;
选择数据库:USE 数据库名;
创建表:CREATE TABLE 表名 ( 列名1 数据类型, 列名2 数据类型, ... );
插入数据:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
查询数据:SELECT 列名1, 列名2, ... FROM 表名;
更新数据:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件;
删除数据 ELETE FROM 表名 WHERE 条件;
删除表 ROP TABLE 表名;
删除数据库 ROP DATABASE 数据库名;
添加列:ALTER TABLE 表名 ADD 列名 数据类型;
更多的sql语句可以自行相识
其他关系型数据库:
Sqlserve、Access、Postgresql
非关系型数据库
MongoDB
MongoDB 是一个基于文档的 NoSQL 数据库,它由 MongoDB Inc. 开发,旨在为当代应用步调提供高性能、可扩展性和灵活性。MongoDB 的设计理念是“document-oriented”,这意味着它将数据存储为雷同于 JSON 的文档,而不是传统关系数据库中的行和列。
以下是一些常见的json语句
连接到数据库:use 数据库名
创建聚集:db.createCollection("聚集名")
插入文档:db.聚集名.insertOne({字段1: 值1, 字段2: 值2, ...})
插入多个文档:db.聚集名.insertMany([{字段1: 值1, 字段2: 值2, ...}, {字段1: 值1, 字段2: 值2, ...}, ...])
查询文档:db.聚集名.find({字段1: 值1, 字段2: 值2, ...})
其他更多的语句具体可以自行相识
Redis
Redis 是一个开源的使用 ANSI C 编写的高性能、支持网络、可基于内存亦可持久化的日志型、键值对存储数据库,并提供多种语言的 API。它通常被称为数据布局服务器,由于值(value)可以是字符串(String),哈希(Hash),列表(List),聚集(Set),有序聚集(sorted set)等类型。
以下是一些常见redis语句
连接到 Redis 服务器:redis-cli -h host -p port -a password
设置键值:SET key value
获取键值:GET key
删除键:DEL key [key ...]
其他更多语句可以自行相识
其他非关系数据库
Couchdb
Neo4j
服务器步调
中间件:
中间件(Middleware)是介于应用步调和操作体系之间的软件,它提供了一种方法,使得应用步调可以互相通讯和共享数据。中间件通常用于分布式体系中,资助差别的软件组件或应用步调举行通讯和和谐。
Apache
apache的中间件有很多,比如Apache Linkis、Apache Httpd、Apache ShardingSphere等
Nginx
Nginx(发音同“engine-x”)是一款轻量级的Web服务器/反向署理服务器及电子邮件(IMAP/POP3)署理服务器,并在一个BSD-like 协议下发行。由俄罗斯的步调设计师Igor Sysoev所开发,最初是为相识决C10K问题。这个问题是指当Web服务器同时处置处罚成千上万个哀求时,会出现的问题。Nginx以其高性能、稳固性、丰富的功能集、简单的配置和低资源消耗而闻名。具体配置自行相识,配置在前端中非常常用
Iis
Internet Information Services(IIS)是由微软公司开发的一种Web服务器软件,主要用于在Windows操作体系上提供Web服务。IIS支持多种网络服务,包括Web服务、FTP服务、SMTP服务和NNTP服务,广泛应用于网页欣赏、文件传输、新闻服务和邮件发送等方面,具体配置自行相识
Tengine
Tengine是一个由淘宝发起并开源的高性能Web服务器项目,基于Nginx举行二次开发。它主要针对大访问量网站的需求,添加了很多高级功能和特性,旨在打造一个高效、稳固、安全、易用的Web平台。Tengine的性能和稳固性已经在大型网站如淘宝网、天猫、优酷、全球速卖通、Lazada、阿里云等得到了验证。
Tomcat
Tomcat是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,广泛应用于中小型体系和并发访问用户不多的场所。它是开发和调试JSP步调的首选工具。Tomcat由Apache软件基金会开发,支持最新的Servlet和JSP规范,技能先辈、性能稳固,深受Java爱好者的喜爱。
Weblogic
WebLogic是美国Oracle公司出品的一个基于JAVAEE架构的中间件,主要用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
毛病:信息泄漏、文件上传、文件解析、目次遍历、访问控制
脚本步调
脚本性语言
Lua
Php
Go
Python
JavaScript
脚本通俗理解就是可以直接看见它的源代码,比如欣赏器中f12在调试器可以看见代码,脚本性语言可以写一些脚本性的木马
这里必学的是js、php、python
Macro(宏病毒)
Bat(内网渗透)
Powershell(内网渗透)
Cad lisp(脚本病毒)
AUtoit3(脚本病毒)
Bios步调(bios病毒)
总结:想要成为高级红队,还是得多学多相识,学的越多才会知道懂的越少
所谓能力就是懂得多,知识面广,且能快速解决问题,最后送给看到这里的大家一句话:
实践是检验真理的唯一尺度
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |