声明
学习视频来自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描述:
defapply_operation(operation, numbers):"""Applies the given operation to each number in the list."""return[operation(x)for x in numbers]# 定义一个简单的操作,例如求一个数的平方defsquare(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]。
下面,在使用函数做为结果赋值给另一个函数的高阶函数应用:
defcreate_multiplier(multiplier):"""返回一个函数,该函数将其输入乘以给定的乘数。"""defmultiplier_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/[email protected]/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-inputtype="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/[email protected]/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 classHelloWorld{
public static void main(String[] args){
System.out.println("Hello, World!");}}
Python
Python是一种高级编程语言,以其简洁、易读和易学而著称。它由Guido van Rossum于1989年创建,并在1991年首次发布。Python的设计哲学强调代码的可读性和简洁性,特别是使用空格缩进来表示代码块,而不是使用大括号或关键词。
示例:
print("Hello, World!")
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");return0;}
C++示例:
#include <iostream>int main(){
std::cout <<"Hello, World!"<< std::endl;return0;}
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 条件;
删除数据:
DELETE FROM 表名 WHERE 条件;
删除表:
DROP TABLE 表名;
删除数据库:
DROP 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病毒)
总结:想要成为高级红队,还是得多学多了解,学的越多才会知道懂的越少
所谓能力就是懂得多,知识面广,且能快速解决问题,最后送给看到这里的大家一句话:
实践是检验真理的唯一标准
版权归原作者 文人sec 所有, 如有侵权,请联系我们删除。