ARP协议
概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
功能 地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定。地址解析协议是IPv4中必 ...
https协议
https安全协议的原理机制一、原理
1.密钥组件的协商阶段
2.进一步进行密钥交换,建立安全通讯
3.再一次建立,重新协商
二、过程123456sequenceDiagram client->>Server:SYN Server->>client:SYN/ACK client->>Server:ACK client->>Server:CLIENT HELLO
被动搜索
[toc]
搜集目标
IP地址段
域名信息
邮件地址
文档图片数据
公司地址
联系电话、传真密码
人员信息、职务
目标系统使用的技术架构
公开的商业信息
搜索用途
信息描述目标
发现目标
物理缺口
被动搜索一、利用搜索引擎收集信息1.利用谷歌引擎搜索可以通过特定语法,查询内容丰富的信息,或查到远程服务器的一些敏感信息,造成信息泄露
常用语法:(1)intitle:关键字:
语法含义:搜索网页标题中包含关键字的网页*
若查询一个以上关键字,用”allintitle”代替”intitle”
(2)inurl:关键字:
语法含义:搜索URL中包含关键字的网页
若查询一个以上关键字,用”allinurl”代替”inurl”
(3)site:关键字:
语法含义:在指定的站点搜索
如:联系方式 site:souhu.com
(4)filetype:关键字:
语法含义:搜索指定类型的文件,如doc、pdf
(5)intext:关键字:
语法含义:搜索网页网页正文中出现指定关键字的页面
(6)cache:关键字:
语法含义:指定在搜索引擎缓存中搜索
(7)link:关键字:
语法含 ...
主动搜索
[toc]
一、主动搜集的原理1.特点
直接与目标系统交互通信。
无法避免留下访问痕迹。
使用受控的第三方电脑进行探测,使用代理或已经被控制的机器,做好被封杀的准备。
扫描发送不同的探测,根据返回结果判断目标状态。
2.过程
识别存活主机,发现潜在的被攻击目标
输出一个IP地址列表,比如一个IP地址段IIP地址范围。
使用二、三、四层进行探测发现
二、OSI参考模型与TCP/IP五层模型
应用层:为应用程序或用户请求提供各种请求服务。OSI参考模型最高层,也是最靠近用户的一层,为计算机用户、各种应用程序以及网络提供接口,也为用户直接提供各种网络服务。
表示层:数据编码、格式转换、数据加密。提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
会话层:创建、管理和维护会话。接收来自传输层的数据,负责建立、管理和终止表示层实体之间的通信会话,支持它们之间的数据交换。该层的通信由不同设备中的应用 ...
sql注入
测试方法在发现有可控参数的地方使用sqlmap进行SQL注入的检查或者利用,也可以使用其他的SQL注入工具,简单点可以使用手工测试。推荐使用burpsuite的sqlmap插件
修复建议采用 sql 语句预编译和绑定变量,是防御sql的最佳方法
所有查询语句都使用是数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户变量嵌入sql语句中。
对进入数据库的特殊字符进行转义过滤,或者编码处理
确认每种数字的类型,比如数字型的数据必须是数字,数据库中的存储字段必须是int型
数据长度应该严格规定,能在一定程度上防止比较长的sql注入无法正确允许
网站每个数据层的编码统一,建议全部使用UTF-8,上下层编码不一致有可能导致一些过滤模型被绕过
严格限制网站用户的数据库权限,给用户提供仅仅满足其工作的权限,从而最大限度减少注入攻击
避免网站显示数据库错误信息,比如类型错误、字段不匹配等
mysql相关知识mysql是一种服务型数据库,进行统一管理
在mysql5版本之后,mysql默认在数据库中存放一个叫information_schema的库,这个库有很多表,重点是columns、t ...
sql手工注入
手工注入常规操作
判断是否存在注入,注入是字符型还是数字型
猜解SQL查询语句中的字段数
确定显示的字段顺序
获取当前数据库
获取数据库中的表
获取表中的字段名
查询到账户的数据
数字型注入和联合注入123456<?php $conn = mysqli_connect('127.0.0.1','root','root','test'); $res = mysqli_query($conn,"select username from user where id =".$_GET['id']); $row = mysqli_fetch_array($res); var_dump($row['username']); ?>
这段代码原本是用于根据用户输入的id,查询用户的信息。但是可以使用在语句中加入运算符的方法来测试这种注入是否存在
比如:测试id=1和id=2-1的结果是否相等
测试id=1时,查 ...
php反序列化
序列化:对象转化为数组或字符串等格式。
反序列化:将数组或字符串等格式转化为对象。
1 原理未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码执行,SQL注入、目录遍历等不可控后果。在反序列化过程中自动触发了某些魔法方法。当反序列化的时候就有可能触发对象中的一些魔术方法。
触发:unserialize函数的变量可控,文件中存在可利用的类,类中有魔术方法:
__construct(): 在对象构造时会自动调用,可以用于检查输入参数是否合法。
__destruct(): 在对象销毁时会自动调用,可以用于清理资源。
__wakeup(): 在 unserialize() 时会自动调用,可以用于恢复对象状态。
__invoke(): 当对象被当作函数调用时会自动调用,可以用于执行特定操作。
__call()、__callStatic(): 当调用不存在的方法时会自动调用,可以用于处理未定义的方法。
__get()、__set(): 当访问不存在的属性时会自动调用,可以用于处理未定义的属性。
__isset()、__unset(): 当检查属性是否存在或删除属 ...
wireshark
wireshark[toc]
简介是目前世界上最受欢迎的协议分析软件,可将捕获的各种各样的二进制数据翻译为人们易读和理解的文字和图标等形式,极大方便了对网络活动的检测和教学实验。
技巧(1)确定wireshark的物理位置。
如果没有一个准确的位置,启动wreshark后会花费很长时间捕获无关数据
(2)选择捕获地址。
一般都是Internet网络接口,这样才能捕获与网络相关的数据
(3)使用捕获过滤器。
可以避免产生过大捕获信息。
(4)使用显示过滤器
使过滤的数据包更细致。
(5)使用着色规则
(6)构建图表
(7)重组数据
模式普通模式只接受发给本机的包并传递给上层程序,其他包一律丢弃。
混杂模式接受所有经过网卡的数据包,包括不是发送给本机的包,不验证Mac地址。
界面1.过滤器(1)捕获过滤器是wireshark的第一层过滤器,确定捕获哪些包、舍弃哪些包
规则:1协议 方向 主机/端口
(1)protocol可能为http、https、ftp、udp、tcp、ipv4、ipv6、arp、icmp等协议,如果没说明,则默认为支持所有协议
(2)dirtection可能的值为src ...
sql基础
数据库一、什么是数据库安装在操作系统之上的软件,可以存储大量的数据。
作用:储存数据,管理数据。
二、数据库应用
所有程序和系统都会使用。(数据的记录与储存)
三、数据库类型1.分类
关系型数据库:采用关系模型(二维表)来组织数据结构的数据表【MySQL、Oracle、SQL_Server、DB2、SQLite】
非关系型:不采用关系模型组织数据结构的数据库【Redis、MongDB】
2.表的概念1.二维结构(行和列的组成)
2.字段(列),定义该列的名字以及这一列下面能放什么类型的数据
3.行,一行代表完整的数据记录
python正则表达式
[toc]
python正则表达式常用正则表达式操作符
操作符
说明
实例
.
表示任何单个字符
[]
字符集,对单个字符给出取值范围
[abc]表示a、b、c,[a-z]表示a到z的单个字符
非字符集,对单个字符给出排除范围
abc表示非a或b或c的单个字符
*
前一个字符的0次或无穷次扩展
abc*表示ab、abc、abcc、abccc等
+
前一个字符的1次或无限次扩展
abc+表示abc、abcc、abccc等
?
前一个字符的0次或1次扩展
abc?表示ab、abc
\
左右表达式各一个
abc\
def表示abc、def
{m}
扩展前一个字符m次
ab{2}c表示abbc
{m,n}
扩展前一个字符m至n次(含n)
ab{1,2}c表示abc、abbc
^
匹配字符串开头
^abc表示abc且在一个字符串的开头
$
匹配字符串结尾
abc$表示abc且在一个字符串的结尾
()
分组标记,内部只能使用\
操作符
(abc)表示abc,(abcldef)表示abc、def
\d
数字,等价于[0-9]
...






