网络空间安全基础(待续)hellomq

1)计算机安全:通常采取适当行动保护数据和资源,使它们免受偶然或恶意动作的伤害;

2)数据的完整性:数据所具有的特性,即无论数据形式做何变化,数据的准确性和一致性均保持不变;

5)风险评估:一种系统的方法,用于标识出数据处理系统的资产,对这些资产的威胁以及该系统对这些威胁的脆弱性;

6)威胁:一种潜在的计算机安全违规;

7)脆弱性:数据处理系统中的弱点或纰漏;

8)风险:特定的威胁利用数据处理系统中特定的脆弱性的可能性;

9)主体:能访问客体的主动实体;

10)客体:一种实体,对该实体的访问是受控的;

11)敏感信息:由权威机构确定的必须受保护的信息,因为该信息的泄露、修改、破坏或丢失都会对人或事产生可预知的损害;

13)加密:数据的密码变换,加密的结果是密文,相反的过程称为解密;

14)单向加密:一种加密技术,它只产生密文,而不能将密文再生为原始数据;

15)明文:不利用密码技术即可得出语义内容的数据;

16)密文:利用加密产生的数据,若不使用密码技术,则得不到其语义内容;

17)私有密钥:一种密钥,为拥有者专用于解密操作的位串,简称私钥;

18)公开密钥:一种密钥,任意实体都可用它与相对应的私钥拥有者进行加密通信,简称公钥;

21)隐蔽通道:可用来按照违反安全策略的方式传送数据的传输信道;

22)病毒:一种在用户不知情或未批准下,能自我复制或运行的程序,病毒往往会影响到受感染设备的正常运作,或是让设备被控制而不自知,进而盗窃数据或者利用设备作其他用途;

23)蠕虫:一种独立程序,它可通过数据处理系统或计算机网络传播自身;

24)特洛伊木马:一种后门程序,用来盗取目标用户的个人信息,甚至是远程控制对方的计算机进行加壳制作,然后通过各种手段传播或骗取目标用户执行该程序,以达到盗取密码等数据资料的目的;

1)信息安全三要素:机密性、完整性、可用性;

2)PDR模型:

检测(Detection,D):利用各类工具检查系统可能存在的可导致黑客攻击、病毒泛滥的脆弱性,即入侵检测、病毒检测等;

响应(Response,R):对危及安全的事件、行为、过程及时做出响应处理,杜绝危害的进一步蔓延扩大,力求将安全事件的影响降到最低;

3)P2DR模型:

策略(Policy,P):是模型的核心,意味着网络安全要达到的目标,决定各种措施的强度;

防护(Protection,P):安全的第一步,包括制定安全规章(以安全策略为基础执行安全细则)、配置系统安全(配置操作系统、安装补丁等)、采用安全措施(安装和使用防火墙、VPN等);

检测(Detection,D):检测是对上述二者的补充,通过检测发现系统或网络的异常情况,发现可能的攻击行为;

响应(Response,R):发现异常或攻击行为后系统自动采取的行动,目前的入侵响应措施比较单一,主要是关闭端口,中断连接,中断服务等;

4)P2DR2模型:策略、防护、检测、响应、恢复(Restore);

5)P2OTPDR2模型:策略、防护、操作(Operation)、技术(Technology)、人(People)、检测、响应、恢复;

6)MAP2DR2模型:管理(Management)、审计(Audit)、策略、防护、检测、响应、恢复;

7)纵深防御战略(DefenseinDepth):人、技术、操作

一个典型的密码系统由明文、密文、密钥、密码算法组成

1)密码算法从功能上可以分为加/解密算法、签名算法、摘要算法(散列算法)、鉴别算法等;从密码结构上可以分为不使用密钥的算法(散列算法)和使用密钥的算法(对称密钥算法和非对称密钥算法);

2)用五元组(M,C,K,E,D)来表示密码系统,M为明文空间、C为密文空间、K为密钥空间、E表示加密算法、D表示解密算法;

1)对称分组密码的加解密过程

2)典型对称分组密码算法

DES:该算法提取64位密钥中的56位作为有效密钥,对64位明文分组进行加密;

2DES、3DES:分别称为二重DES,三重DES,将DES算法进行扩展,加(解)密算法不变,只是采用了不同的密钥完成多次加解密;

IDEA:属于一种专利算法,使用128位的密钥,对64位的明文分组进行加密;

AES:高级加密标准,分组长度可为128位,192位,256位,密钥长度可为128位,192位,256位;

3)对称分组密码的模式

对称分组密码只能加密固定长度的分组,但是实际中需要加密的明文长度可能会超过分组长度,所以需要对对称分组密码算法进行迭代,将很长的一段明文全部加密,迭代的方式称为模式;

5种对称分组密码模式:

ECB:电子密码本(ElectronicCodebook,ECB)模式,最简单的加密模式,该模式下明文消息被分成固定大小的块(分组),每个块被单独加密且使用相同的加密算法,可以进行并行计算,缺点是安全性较差,加密前明文数据量需要填充到块大小的整数倍;

CBC:密码块链(CipherBlockChaining,CBC)模式,常用的加密模式,该模式下明文加密后的数据进行异或(XOR)运算,然后再进行加密,这样每个密文块依赖该块之前的所有明文块,每条消息都具有唯一性,缺点是加密是连续的,不能并行处理,明文数据量必须填充到块大小的整数倍;

CFB:密码反馈(CipherFeedback,CFB)模式,该模式下将前一个分组的密文加密后和当前分组的明文进行异或运算生成当前分组的密文;

OFB:输出反馈(OutputFeedback,OFB)模式,该模式将分组密码转换成同步流密码,可以根据明文长度先独立生成相应长度的流密码;

CTR:计数器(Counter,CTR)模式,该模式下将分组密码转换成流密码,通过加密"计数器"的连续值来产生下一个密钥流块;

1)DES算法是一种对称分组加密算法,明文分组长度为64位,密钥长度也为64位,由于密钥的第8,16,24,32,40,48,56,64位为奇偶校验位,所以密钥的实际长度为56位,更长的明文被分为64位的分组来处理;

2)DES算法的加密过程:

IP变换:明文A(64位)通过IP变换表对当前的64位明文分组进行变换操作;

迭代:将经过IP变换后的数据,分为两个32位的数据,分别是L0和R0,R0作为下一迭代的L1,同时K1和R0通过f函数进行处理,最后与L0进行异或运算,输出结果作为R1,按照以上逻辑迭代16次。

IP-1变换(IP逆变换)和密文输出:将完成16次迭代后的64位数据按照IP-1进行变换,变换结果即为输出的密文;

3)IP变换:将长度为64位的明文数据,按照IP变换表的数值进行排序;

4)密钥:用于在16次迭代过程中参与数据处理,每一轮迭代输入的密钥均不相同,即通过算法的变换处理,将输入的64位密钥变换成16个不相同的子密钥;

分组密码是将明文数据按照规定长度进行分组处理,而流密码是在密钥和算法的作用下,对明文的每一位或每一字节进行处理;流密码技术也称为序列密码技术,属于“一次一密”的密码体制;

1)RC4属于典型的流密码算法,也是一种对称加密算法,该算法不是对明文进行分组处理,而是以字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密;

2)RC4算法简单,运行速度快,密钥长度可变;

3)RC4算法的关键变量:密钥流,状态向量S,临时向量T,密钥K;

4)RC4算法流程:

//1.初始化S和Tfori=0to255doS[i]=i;T[i]=K[imodkeylen];//2.初始排列Sfori=0to255doj=(j+S[i]+T[i])mod256;swap(S[i],S[j]);//3.产生密钥流forr=0tolendo//r为明文长度,r字节i=(i+1)mod256;j=(j+S[i])mod256;swap(S[i],S[j]);t=(S[i]+S[j])mod256;k[r]=S[t];由于RC4算法加密采用的是异或运算,因此一旦子密码序列出现了重复,密文就有可能被破解;

1)非对称密码体制(公钥密码体制,双钥密码体制):加密密钥与解密密钥不相同的密码体制,公开的密钥称为公钥,保密的密钥称为私钥;

2)公钥密码体制可用于进行数字签名和密钥交换保护,通信双方可以通过公开的途径得到对方的公钥,然后利用公钥将后续用到的对称加密的密钥加密后发送给对方,对方即可利用自己的私钥解密后得到对称加密的密钥,然后利用此密钥进行对称加密,从而实现保密通信;

3)公钥密码体制的优点:通信时只保密私钥,不需要时常更换公钥/私钥对,大型网络中密钥分配和管理简单;

4)公钥密码体制的缺点:算法复杂,运算速度慢;

公钥加密,私钥解密;

1)加/解密流程

(1.消息接收端系统,产生一对用于加密和解密的密钥,如图中的接收者B;

(2.B将公钥予以公开,私钥则被保密;

(3.发送者A向接收者B发送消息m时,使用接收者B的公钥加密m;

(4.接收者B收到密文c后,用自己的私钥解密;

发送者A产生私钥和公钥,用私钥加密;接收者B用A产生的公钥解密;

3)双重加/解密模型

发送者A用自己的私钥加密,用于提供数字签名,再用接收者B的公钥二次加密;解密时,接收者A先用私钥,再用发送者B的公钥对密文进行两次解密;

是迄今为止理论上最为成熟完善的公钥加密算法之一,既可用于加密,又可用于数字签名、身份认证和密钥管理;

1)基本思想:两个大素数p和q相乘得到的乘积n比较统一计算,但从乘积n分解出这两个大素数p和q很困难;

2)实现步骤:

//1.计算密钥对:公钥(e,n),私钥(d,n)

选取两个位数相近的大素数p和q;

计算n=pxq;

计算欧拉函数(n)=(p-1)x(q-1);

随机选取一个正整数e,满足e与欧拉函数(n)互质,即e与欧拉函数(n)的最大公约数是1

计算正整数d,满足dxe=1mod欧拉函数(n);密钥对:公钥(e,n),私钥(d,n),用户销毁p和q;

//2.加密解密

加密过程:输入明文M,公钥(e,n);输出密文C=M^emodn;

解密过程:输入密文C,私钥(d,n);输出明文M=C^dmodn;

3)RSA算法的优点:密钥管理简单、便于数字签名、可靠性较高;

4)RSA算法的缺点:算法复杂,加解密速度慢,难于用硬件实现;

散列函数根据目标明文生成具有相同长度的、不可逆的散列值(消息摘要),散列函数不可逆,通常用于检测文件或报文是否被修改;

MD5算法对输入任意长度的消息进行运算,产生一个128位的消息摘要,也称为指纹;

1)MD5算法实现过程:

分组填充:将输入数据划分为512位的分组,且每一分组又被划分为16个32位的子分组。如果输入信息的长度对512取余后的结果不等于448,就需要填充使得对512求余的结果等于448。填充的方法是填充一个1和若干个0.

记录信息长度:用64位来存储填充前信息长度,这64位附加在第一步处理结果的后面,此时信息长度为Nx512+448+64=(N+1)x512;

装入标准幻数(4个整数):标准幻数的物理顺序是A=0x01234567,B=0x89ABCDEF,C=0xFEDCBA98,D=0x76543210;

然后,将每组的4个32位子分组进行一系列的移位、与、或等运算后,将算法输出的4个32位子分组合并后生成一个128位散列值,作为MD5算法的最终输出;

SHA家族的5个算法分别是SHA-1,SHA-224,SHA-256,SHA-384,SHA-512,后4个并称为SHA-2算法,最受欢迎的是SHA-2算法;

1)SHA算法抗击穷举法攻击和密码分析攻击的强度高于MD5算法;

2)SHA算法的速度要比MD5算法的速度慢;

3)MD5算法使用小字节序(little-endian)方式,SHA算法使用大字节序(big-endian)方式;

1)数字签名是公钥密码体制的一种应用,包含签名过程(使用私钥进行加密)和验证过程(接收者或验证者使用公钥进行解密);

2)签名的产生必须使用发送者独有的一些信息以防仿造和否认;签名的产生、识别、验证应较为容易;伪造已经签过名的信息,或对已知的消息构造一假冒的签名在计算上都是不可行的;

3)常见的数字签名算法有:RSA算法,数字签名算法(DSA),椭圆曲线数字签名算法(ECDSA),其中大多数SSL数字证书、代码签名证书、文档签名以及邮件签名都采用RSA算法;

密钥管理技术包括密钥的产生、存储、装入、分配、保护、丢失、销毁等,主要任务是保证能在公用数据网上安全地传递密钥。

1)密钥的产生和分配:好的密钥一般是由自动处理设别产生的随机位串,需要一个可靠的随机数生成器;

2)密钥的存储和备份

3)密钥的撤销与销毁

一种更换密码的机制尽量减少密钥被暴露的可能性;

1)对称密码体制的密钥分配:通过密钥分配中心(KDC)来管理和分配密钥;

2)公钥密码体制中的密钥分配:有以下形式(公开宣布;公布公钥目录;公钥管理机构分发;公钥证书分发);

PKI能为所有网络应用透明地提供采用加密和数字签名等密码服务所必需的密钥和证书管理,实现和管理不同实体之间的信任关系;

PKI采用证书管理公钥,通过可信任机构CA,把用户的公钥和其他标识信息捆绑在一起,用来在网络上验证用户的身份,主要任务是在开放环境中为开放性业务提供数字签名服务;

1)数字证书:由CA采用公钥加密技术将主题的公钥信息和身份新信息捆绑后进行数字签名的一种权威电子文档,用于证明某一主体的身份和公钥合法性(真实性和完整性);

2)PKI的组成:可信任机构(CA)、注册机构(RA)、证书库、证书申请者、证书信任方共五大部分组成;完成的PKI系统还必须具有密钥备份与恢复系统,证书作废系统、应用程序接口(API)等基本组成部分;

3)PKI体系标准规范:包括ASN.1基本编码规范、X.500目录服务、PKIX系列标准以及PKCS系列标准;

4)PKI提供的服务:机密性服务、完整性服务、身份认证服务、不可否认性服务;

1)网络上明文传输的风险:信息窃听风险(第三方可以获取通信内容)、信息篡改风险(第三方可以篡改通信内容)、身份冒充风险(第三方可以冒充他人身份参与通信);

2)传输层安全(TLS)协议和安全套接层(SSL)协议,目的是为互联网通信提供安全及数据完整性保障;

3)SSL/TLS协议主要用于使用超文本传输安全协议(HTTP)的通信中,为使用HTTP协议的通信提供保护,SSL协议主要用于解决HTTP明文传输的问题,TLS是SSL协议的升级版;

4)TLS协议使用以下3种机制为信息通信提供安全传输:隐秘性(所有通信都通过加密后进行传播)、身份认证(通过证书进行认证)、可靠性(通过校验数据完整性维护一个可靠的安全连接);

PGP是一个能为邮件和文件存储过程提供认证业务和保密业务的软件;

1)虚拟专用网(VirtualPrivateNetwork,VPN)是一种采用了隧道技术、加密技术、密钥管理技术、身份认证技术等在公共网络上构建临时的、安全的逻辑网络的技术,VPN能实现数据的保密传输、身份验证、数据完整性保护;

2)按隧道协议分类:二层(数据链路层)隧道VPN,如PPTPVPN、L2TPVPN等,三层(网络层)隧道VPN,如IPSecVPN;

3)按应用类型分类:远程接入VPN(实现远程客户端到网关的安全连接);点对点VPN(实现网关到网关的安全连接);端到端VPN(实现终端到终端的VPN安全连接);

4)常用的VPN:SSLVPN(工作在传输层和应用层之间,为HTTP服务提供安全通信机制);IPSecVPN(使用加密的安全服务确保在Internet上进行安全通信);

5)IPSecVPN组成:互联网密钥交换(IKE)、认证报头(AH)、封装安全载荷(ESP)等;其中ESP提供数据机密性、完整性验证、数据源身份认证能力;

1)大型动态应用系统可分为web前端系统、分布式服务器管理系统、分布式存储系统、缓存系统、数据库集群系统和负载均衡系统等子系统;

2)web应用体系架构可简化为web客户端、传输通道、web服务器、web应用程序和数据库等组成部分;

但是该体系结构存在以下脆弱性:

1.web客户端的脆弱性

2.web服务器的脆弱性

3.web应用程序的脆弱性

4.HTTP的脆弱性

5.Cookie的脆弱性

6.数据库安全的脆弱性

1)开源web应用安全项目(OWASP)Top10重点在于为广大企业组织确定一组最严重的风险;

2)2013年排名前10的漏洞有:注入攻击漏洞,失效的身份认证和会话管理,跨站脚本攻击漏洞,失效的访问控制,敏感信息泄露,应对攻击防护不足,跨站请求伪造漏洞,使用含有已知漏洞的组件,未受有效保护的API;

1)WebSphere远程代码执行漏洞(CVE-2019-4279):攻击者可发送精心构造的序列化对象到服务器,最终导致在服务器上执行任意代码;

3)Redis拒绝服务攻击漏洞(CVE-2017-15047):攻击者可利用该漏洞造成拒绝服务(越边界数组索引和应用程序崩溃);

4)Struts2框架漏洞:攻击者可以利用该漏洞进行远程执行代码、DoS攻击、路径遍历、跨站脚本攻击等危险操作;

5)Joomla!系列漏洞:SQL注入漏洞,可使攻击者访问或修改数据,将低权限用户提升为更高权限的用户;

6)DedeCMS系列漏洞:有任意代码执行安全漏洞,文件上传漏洞,文件删除漏洞,SQL漏洞等;

7)ApacheTomcat远程代码执行漏洞

8)JBoss的Java反序列化命令执行漏洞

1)IE浏览器防护策略:

设定IE安全级别;

过滤恶意网页;

添加站点到信任区域;

2)OWASPTop10漏洞防护策略:

使用安全的API,完全避免使用解释器或提供参数化界面的API;

一套单一强大的认证和会话管理控制系统;

针对XSS攻击,为避免服务端XSS,应根据数据将要置于的HTML的上下文对所有的不可信数据进行恰当的转义;

预防失效的访问控制,采用检查访问的方法;

针对安全配置错误,采用能在组件之间提供有效的分离和安全性的强大应用程序架构;

针对敏感信息泄露,加密数据的存储,并使用合适的标准算法和强大的密钥;

针对攻击防护不足的缺陷,检测攻击、响应攻击、快速增打补丁;

针对CSRF攻击,使用成熟框架的CSRF防护方案;

针对有漏洞的组件风险,利用工具记录客户端和服务器以及它们的依赖库的版本信息;

为保护API的安全,确保客户端和API之间通过安全通道进行通信,确保有强安全级别的认证模式,做好安全加固、权限控制;

通常指SQL注入攻击

1)SQL含义:结构化查询语言(StructedQueryLanguage,SQL),用于存取数据以及查询、更新、管理关系数据库系统;

2)SQL注入攻击原理:编写web应用程序时,没有对用户提交数据的合法性进行判断;

其中在第2步中,通常用SQL语句进行查询,若不检查输入数据的有效性,攻击者可用精心构造的数据库查询代码攻击网站,这就是SQL注入攻击原理;

3)SQL注入攻击本质:攻击者在用户可控参数中注入恶意SQL语句,破坏原有SQL语句,而服务器对用户输入的数据没有过滤或者过滤不严格,把攻击者提交的恶意SQL语句当作语句的一部分代入数据库中进行执行,导致执行了额外的SQL语句,从而达到攻击数据库的目的;

4)SQL攻击成因:由两个条件叠加造成:

1.用户能够控制输入,并使用字符串拼接的方式构造SQL语句;

2.服务器未对用户可控参数进行足够的过滤便将参数内容拼接到SQL语句中;

//SQL攻击示例$id=$_GET['id'];$sql="select*fromuserswhereid=$idlimit0,1";$result=mysql_query($sql);//$id在后面没有经过任何过滤直接拼接到SQL语句中,然后在数据库中执行SQL语句//如果用户输入index.phpid=1and1=1,则拼接后的SQL语句会返回正常的结果,即$sql="select*fromuserswhereid=1and1=1limit0,1";//如果用户输入index.phpid=1and1=2,则拼接后的SQL语句会返回不正常的结果,即$sql="select*fromuserswhereid=1and1=2limit0,1";5)SQL注入攻击分类:

1.根据数据库执行结果,分为联合查询类,报错注入类,布尔盲注类,延时注入类;

2.根据注入点的数据类型,分为数字型注入和字符型注入;

3.根据数据提交的方式,分为Get注入、Post注入、Cookie注入、HTTP头部注入等;

4.其他注入类型有堆叠查询类、宽字节注入类、base64注入类、读写文件类、搜索型注入等;

7)自动化SQL注入工具:常用的有Sqlmap、Havij、Safe3SQLInjector、NBSI、BSQLHacker、Pangolin等;

1)XSS攻击简介(跨站脚本攻击):XSS全称Cross-SiteScripting,本应缩写为CSS,但与层叠样式表(CSS)重名,所以缩写为XSS;

XSS攻击是攻击者利用网站漏洞将恶意代码(HTML或JS代码)注入网页,当用户访问该网页时,就会执行其中的恶意代码;

XSS攻击的攻击对象是浏览器,属于被动攻击,需要用户主动触发;

2)XSS攻击的分类

1.反射型XSS攻击:攻击的JS代码在web应用的参数中,如搜索框等,主要用于将恶意代码附加到URL中,诱使用户点击该恶意URL,执行JS代码;

此类XSS攻击不需要用户单击特定URL就能执行跨站脚本,攻击者事先将恶意的JS代码上传或存储到含有漏洞的服务器中,只要有用户访问这个包含有持久型XSS攻击的页面,恶意的JS代码就会在用户的浏览器中执行,执行后的JS代码会储存在数据库中;

文档对象模型(DOM)使得程序和代码可以动态访问和更新文档的内容、结构、样式;

//基于DOM的XSS攻击示例"/>

vartext=document.getElementById("text");varprint=document.getElementById("print");print.innerHTML=text.value;//获取text的值,并且输出在print内,这是导致XSS攻击的主要原因//然后构造攻击载荷即可127.0.0.0/php/1.phpname=">3)XSS攻击方式

1.利用XSS攻击进行Cookie窃取:Cookie是由服务器提供的存储在客户端的数据,将信息持久化保存在客户端,用于识别用户身份、保存会话状态;

输入过滤:检查、过滤、转义用户的任何输入,查看是否包含<、>等特殊字符或alert关键字;

输出编码:在变量输出到HTML页面时,可以使用编码或转义的方式来防御XSS攻击;

1)CSRF简介:跨站请求伪造攻击(Cross-Siterequestforgery,CSRF),跨站点的请求+请求是伪造的;

CSRF攻击即被攻击者的浏览器被迫向目标站点发起了伪造的请求,这个过程会带上被攻击者的身份验证标识(Session)以通过目标站点的验证;

CSRF的核心是身份认证,攻击的重点是伪造更改状态的请求,而不是盗取数据等操作,因为攻击者无法查看对伪造请求的响应;

3)防御CSRF攻击:

使用POST请求代替GET请求:POST请求相对GET请求来讲安全性更强一些,但是不能保证绝对的安全;

使用验证码:用户提交请求时需要在表单中填写一个图片上的随机字符串等验证码;

使用请求令牌:在HTTP请求中以参数的形式加入一个随机产生的请求令牌,比如cookie令牌、一次性令牌等,在服务器中建立一个拦截器验证该令牌,如果请求无令牌或令牌不正确,则认为是CSRF攻击而拒绝该请求;

1)SSRF攻击简介:服务器请求伪造(ServerSiderequestforgery,SSRF)攻击是一种由攻击者构造形成由服务器发起请求的一种安全漏洞;

SSRF攻击目标一般是从外网无法访问的内部系统,正因为它是由服务器发起,所以能够请求到与外网隔离的内部系统;

SSRF形成原因大多是由于服务器提供了从其他服务器应用获取数据的功能,且没有对目标地址做过滤与限制;

//SSRF攻击示例2)SSRF攻击常见危害

可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的Banner信息等;

攻击运行在内网或本地的应用程序;

对内网web应用进行指纹识别,通过访问默认文件(如Readme.txt等)实现攻击;

攻击内外网的web应用,主要是使用GET请求就可以实现的攻击;

利用File协议读取本地文件等;

4)SSRF攻击常见绕过技巧:

利用特殊域名绕过:例如xip.io网站可把任何带有xip.io的网址解析成任意网址,利用127.0.0.1.xip.io进行访问,实际访问的仍然是127.0.0.1;

利用封闭式字母数字:

5)防御SSRF攻击:

限制请求的端口为HTTP常用的端口,如80,443,8080等;

禁用不需要的协议,仅仅允许HTTP和HTTPS;

过滤返回信息,验证远程服务器对请求的响应;

统一错误信息,避免用户可以根据错误信息来判断远程服务器端口状态;

将某些内网IP地址加入黑名单,避免其被用来获取内网数据;

1)文件上传漏洞简介:上传文件时,如果未对上传的文件进行严格的验证和过滤,就容易造成文件上传漏洞;

恶意上传行为可能导致网站甚至整个服务器被控制,恶意的脚本文件又被称为webshell,是网页后门,也是命令解释器,能查看服务器目录、服务器中文件、执行系统命令等;

//文件上传攻击代码示例2)文件上传攻击的危害:上传的任意文件就是危害(包括恶意脚本,.exe程序等);如果web服务器所保存的上传文件的可写目录具有执行权限,那么可以直接上传后门文件,导致网站沦陷;如果攻击者通过其他漏洞进行提权操作,拿到系统管理员权限,那么可能直接导致服务器沦陷,那么服务器下其他网站都会被攻击者控制;

3)文件上传攻击发生的原因:

web服务器开启了文件上传功能,并且上传API对外开放(web用户可以访问);

web用户对目标目录具有可写权限,甚至具有执行权限;

上传的文件可以执行,也就是web服务器可以解析上传的脚本文件,无论脚本文件以什么形式存在;

服务器配置不当,开启了PUT方法;

4)常见的文件上传攻击:

1.前端检测绕过:网页前端调用JavaScript函数,对上传的文件扩展名进行检测,这种简单的防御非常容易绕过,如先通过前端检测,再使用burpsuite类抓包工具对上传文件扩展名进行修改即可成功上传webshell;

2.文件扩展名检测绕过:网页后端编写检测规则,检测上传文件的扩展名,如果采用黑名单的防御方式,便可以绕过,例如后端代码中列举出不允许上传的扩展名,利用黑名单中没有列举的扩展名进行上传,既能通过检测,又可以被服务器解析,或利用中间件文件解析漏洞进行上传绕过;

3.MIME类型检测绕过:如果网页后端防御方式是通过检测MIME类型进行防御,该类型通过HTTP请求包中的Content-Type字段来表示文件的MIME类型,上传webshell文件时,通过抓包工具抓取数据请求包,将Content-Type字段修改为允许上传的类型,便可成功上传;

4.能直接上传ASP文件的漏洞:如果网站有上传页面,就要警惕直接上传ASP文件的漏洞,例如某网站有的upfile.asp存在上传页面,该页面对上传文件扩展名过滤不严,导致攻击者能直接上传ASP文件;

5.00上传的漏洞:攻击者利用“抓包嗅探""Ultraedit"和“网络军刀”等工具伪造IP数据包,突破服务器对上传文件名、路径的判断,巧妙上传.asp、.asa、.cgi、.cdx、.cer、.aspx类型的木马;

6.图片木马上传的漏洞:有的网站在后台管理中可以恢复/备份数据库,这会被攻击者用来进行图片木马入侵;

7.添加上传类型的漏洞:攻击者如果获取后台管理员账号、密码,然后进入后台添加上传类型,在上传页面中就能直接上传木马;

5)文件上传攻击的防范:阻止非法文件上传(扩展名白名单、文件头判断)、阻止非法文件执行(存储目录与web应用分离、存储目录无执行权限、文件重命名、图片压缩等);

文件上传攻击的最终成因是:目录过滤不严格,攻击者可能建立畸形目录;文件未重命名,攻击者可能利用web容器解析漏洞;

1)文件包含简介:把可重复使用的函数写入单个文件,在使用该函数时直接调用此文件,无需再次编写函数;

2)文件包含漏洞的特点:无视文件扩展名读取文件,只要被包含文件的文件内容符合php语法规范,任何扩展名都可以被当作php脚本解析;

include函数:找不到被包含文件时会产生警告(E_WARNING),但不影响后续语句的执行;

require函数:找不到被包含文件时会产生致命错误(E_COMPILE_ERROR),直接退出程序,后续语句都不再执行;

4)利用文件包含漏洞

读取敏感文件:利用文件包含功能读取服务端本地敏感文件,本地文件没有使用php,但是会显示文件内容,造成敏感信息泄露,如系统版本,数据库配置,php配置信息、linux用户信息等;

对于不需要文件包含功能的网站系统,建议直接关闭本地文件包含及远程文件包含函数;

对于需要文件包含功能的系统,可以将需要包含的文件具体指出,避免给用户开放可以输入文件包含的接口;

对于在上传文件过程中利用敏感字符构架恶意上传的,可以在URL中过滤敏感字符来进行安全防御;

当服务器收到一个HTTP请求时,中间件首先需要决定如何处理这个请求,服务器获得所请求页面的扩展名后,会在服务器中寻找可以处理这类扩展名的应用程序,如果寻找到则交给对应应用程序进行处理,如果找不到则返回客户端或返回错误,此过程为文件解析;

1)IIS文件解析漏洞:在处理含有特殊符号的文件路径时可能会出现文件解析漏洞;

/test.asp/test.jpg。目录名中包含“.asp”,则该目录下的所有文件都会被IIS6.0当作ASP脚本文件解析执行;

test.asp;.jpg。向服务器上传一个名为"test.asp;.jpg"的文件,虽然该文件真正的扩展名是".jpg",但由于含有特殊符号“;”,该文件仍会被当作ASP脚本解析执行;

2)Apache文件解析漏洞:属于错误配置漏洞

3)Ngnix文件解析漏洞

在/etc/php5/fpm/pool.d/www.conf的配置文件中,关于security.limit_extensions参数有一个配置,;security.limit_extensions=.php.php3.php4.php5,该配置被注释,默认状态下只允许解析执行扩展名为".php"的文件,如果在配置过程中将该参数值置为空,则表示允许任意扩展名的文件被当作php脚本文件解析,就造成了Ngnix文件解析漏洞;

4)文件解析漏洞的防御

IIS6.0的防御需要升级,IIS5.1,IIS7.5均无此漏洞;

Apache和Ngnix文件解析漏洞需要修改配置文件;

序列化:将程序创建的对象状态信息转换为可被永久存储或传输的过程;

反序列化:将序列化结果恢复为对象的过程;

1)PHP反序列化漏洞:PHP采用serialize()函数进行序列化操作,采用unserialize()函数进行反序列化操作,序列化的结果为可读的JSON数据;如果我们能控制JSON数据,应用程序就可能在反序列化过程中产生非预期的对象,从而执行某种操作;

2)Java反序列化漏洞

敏感信息泄露途径主要有:默认账户、后台/服务对外开发、目录列表、错误信息、GIT/SVN信息泄露;

1)渗透测试定义:渗透测试(PenetrationTesting)是一种通过模拟攻击的技术与方法,挫败目标系统的安全控制措施并获得控制访问权的安全测试方法。

网络渗透测试一种依据漏洞与后门已经发现的安全漏洞,模拟攻击者的攻击方法对网站应用、服务器系统和网络设备进行非破坏性质的攻击性测试。

后门:commonvulnerabilitiesandexposures,CVE;

2)渗透测试的必要性:新系统可能存在未知的风险;未雨绸缪;专业的渗透测试后,即使是系统未被攻破,也可以以此证明先前实行的防御是有效的;专业的渗透测试可以有效评估系统的安全状况,并提出合理的改进方案;

3)渗透测试的原则:选择不影响业务系统正常运行的攻击方法进行的测试;符合规范和法律要求;

进行渗透测试前要对重要数据进行备份,需要对原始系统生成镜像环境,然后对镜像环境进行测试;明确测试范围;

1)黑盒测试:安全审计员在不清楚被测单位的内部技术构造的情况下,从外部评估网络基础设施的安全性;

2)白盒测试:安全审计员可以获取被测单位的各种内部资料甚至不公开资料,所以渗透测试员的视野更开阔;

3)灰盒测试:介于白盒和黑盒之间,是基于对测试对象内部细节有限认知的软件测试方法,可分为以下六种:

主机操作系统渗透测试;数据库系统渗透测试;应用系统渗透测试;网络设备渗透测试;内网渗透测试;外网渗透测试;

1)开源安全测试论(OSSTMM)

2)信息系统安全评估框架(ISSAF)

3)开放式web应用程序安全项目(OWASP)

4)web应用安全联合威胁分类(WASC-TC)

5)渗透测试执行标准(PTES)

分为七个阶段:

1)前期交互阶段:与客户进行交互讨论,确定渗透测试的范围、目标、限制条件、服务合同细节等;

2)信息收集分析阶段:通过信息收集来有针对性地制定模拟攻击测试计划,提高模拟攻击成功率,降低攻击测试对系统正常运行造成的不利影响;

3)威胁建模阶段:在信息收集分析阶段所获取到的信息,标识出目标系统上可能存在的安全漏洞与脆弱点;

4)漏洞分析阶段:根据前面几个阶段获取的信息来分析和理解哪些攻击途径是可行的;

5)渗透攻击阶段:针对目标系统存在的漏洞实施深入研究和测试的渗透攻击,从而获得管理员权限;

6)后渗透攻击阶段:漏洞利用成功后的攻击,标识出关键的基础设施,寻找客户组织最具有价值和尝试进行安全保护的信息和资产,并需要演示出能够对客户造成最重要业务影响的攻击途径;

7)报告阶段:用报告文档呈现渗透测试过程中做了哪些工作以及如何实现等操作,分为权限维持和内网渗透;

权限维持:提升权限及保持对系统的访问,在漏洞利用阶段得到的权限如果不是系统最高权限,应该进行提权;

内网渗透:利用获取到的服务器对其所在的内网环境进行渗透,进一步获取目标组织的敏感信息;

1)内网渗透简介:内网只有组织工作人员才能访问的专用网络,一般组织内部IT系统提供的大量信息和服务是无法从互联网获得的,最简单的形式是使用LAN和WAN技术建立内网;

2)windows域控:设立一个管理员,由其统一管理计算机,这套体系称为一个域,域控制器充当了管理员的角色,任何加入域的计算机都需要服从管理员的管理;

根域:网络中创建的第一个域,对其他域具有最高管理权限;

域树:由多个域组成,形成一个连续的名字空间,域树中的域层次越深级别越低,一个"."代表一个层次,例如tree1.tree.com级别比tree.com低;

域林:创建根域时默认建立一个域林,该域林是整个林的根域,域名也是林的名称;

DNS:DNS可以建立一个IP地址与域名的关系,是windows域工作的关键;

域控制器:负责域中计算机和用户的验证工作与安全维护;

信任关系:信任是在域之间建立的关系,可以使一个域中的用户与其他域中的域控制器进行身份验证;

1)windows信息收集:

操作系统信息收集:常用命令systeminfo来显示有关计算机及其操作系统的详细配置信息;

网络信息收集:ipconfig:显示所有当前TCP/IP网络配置值并刷新动态主机配置协议(DHCP)和DNS配置;route:显示并修改本地IP路由表中的条目;arp:显示和修改地址解析协议缓存中的条目;netstat:显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统计信息、IPv6统计信息;netshare:管理共享资源;netuse:将计算机连接到共享资源或将计算机与共享资源断开链接,或显示有关计算机连接的信息;

敏感文件收集:包括hosts文件、回收站文件、IIS信息收集等;

凭证收集:收集的凭证包括但不限于:windowshash、浏览器密码、cookie、远程桌面密码、VPN密码、WLAN密码、IIS服务器密码、FTP服务器密码等;

THE END
1.逻辑回归实际应用例子mob64ca140d2323的技术博客Estimator:估计器是一种算法,用于DataFrame转换。例如,学习算法是一种估计器,它训练一个DataFrame并生成一个模型。 pipeline:管道将多个变压器和估计器链接在一起,以指定一个ML工作流。 二、spark ml实现 尝试用spark ml实现广告点击预测,训练和测试数据使用Kaggle Avazu CTR 比赛的样例数据,下载地址:https://www.kaghttps://blog.51cto.com/u_16213670/12852502
2.“信息安全”课程习题及参考答案网络信息安全doc什么是序列密码和分组密码? 序列密码是一种对明文中的单个位(有时对字节)运算的算法。分组密码是把明文信息分割成块结构,逐块予以加密和解密。块的长度由算法设计者预先确定。 简述公开密钥密码机制的原理和特点? 公开密钥密码体制是使用具有两个密钥的编码解码算法,加密和解密的能力是分开的; http://read.cucdc.com/cw/62655/104021.html
3.软考系统架构设计师教程学习笔记第十一章系统架构设计师认证的方法归结为3大类:知道什么、拥有什么、是什么。 是什么,是一种基于生物识别技术的认证。 1.用户名和口令认证,三种简单的认证方式:明文传送、单向散列、单向散列函数和随机函数。 2.使用令牌认证,密钥存储于令牌中。 令牌是一个可以加密存储并运行相应加密算法的设备,完成对用户必须拥有某物的验证。 https://www.educity.cn/rk/1776400.html
4.信息安全技术(第4期,进行中)超星尔雅学习通网课答案3、【填空题】PGP加密系统中采用的公钥加密算法是 算法,用于生成报文摘要的单向散列函数算法(Hash算法)可以采用 算法,对称加密算法可以采用 算法。4、【填空题】PGP加密系统不仅可以对邮件进行加密,还可以对 、 等进行加密。5、【简答题】在使用PGP加密系统时,如果没有对导入的其他人的公钥进行签名并赋予完全信任http://xuzhou.ehqc.cn/html/07_12.html
5.PGP简介pgp是一种电子邮件安全方案,它一般采用()作为标准算法PGP是用一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message digest 5)。 MD5是一种单向散列算法,它不像CRC校验码,很难找到一份替代的邮件与原件具有同样的MD5特征值。 回到数字签名上来,甲用自己的私匙将上述的128位的特征值加密,附加在邮件后,再用乙的公匙将整个邮件加密。这样这份密文被https://blog.csdn.net/bekars/article/details/677963
6.什么是NSA的信息安全三属性散列值 也可以使用散列算法验证完整性。本质上,消息的散列被生成并附加到消息的末尾。接收方计算他们收到的消息的哈希值,并将其与收到的哈希值进行比较。如果在传输过程中发生了变化,哈希值将不匹配。 在许多情况下,散列是一种可接受的完整性检查。但是,如果拦截方希望故意更改消息并且消息未加密,则哈希是无效的。https://www.360doc.cn/article/68899713_1026866534.html
7.数据加密技术网络通信11篇(全文)PGP把公开密钥体系的密钥管理方便性和对称密钥体系的高速度相结合,一方面使用DEA算法对数据进行加密,而另一方面使用RSA算法对DEA的密钥进行加密。这样,两类体制的算法结合在一起实现加密功能,突出了各自的优点,是较理想的安全快捷加密软件工具。 五、结束语https://www.99xueshu.com/w/ikeytnago16b.html
8.Android签名与校验过程详解数字签名:靠加密解密算法进行支撑 单向散列算法 MD5,SHA 非对称密钥算法:RSA 数字签名算法:DSA(Digital Signture Algorithm) 数字签名标准:DSS(DigitalSinature Standard) 使用私钥对摘要进行加密,即为数字签名! 下图描述了数字签名的大概流程,具体流程比这个稍微复杂一些。 非对称数字签名算法 :RSA 签名具有的特性:https://www.pianshen.com/article/42981323170/
9.数据加密算法有哪些?哪个更适合我?PGP全称为Pretty Good Privacy,即优良保密协议,通常采用IDEA的散列算法作为加密与验证之用,是1991年Phil Zimmerman在基于RSA加密算法所创建的一种算法,和其他加密算法不同,PGP无需服务器、证书或发件人和收件人之间的任何其他类型共享秘密来使用加密技术。 https://www.fanyedu.com/content/4465.html
10.网络安全之密码技术3、根据加密过程中是否使用随机数可以将加密体制分为概率加密体制和确定性加密体制。 如果在加密算法中使用了除明文和加密密钥以外的随机数,则称它为概率加密体制;相反,如果加密算法除了明文和加密密钥外没有使用任何的随机数,则称为确定性加密体制。显然,对于确定性加密体制来说,一个明文在相同密钥下的密文是确定的https://www.zhuanzhi.ai/document/85caa599181acc1c953eee769da130f0
11.PGP算法及其原理PGP(Pretty Good Privacy)是一个混合加密算法。由一个对称加密算法,一个非对称加密算法,一个单向hash散列算法,一个随机数生成器组成。 工作流程 认证算法 1. 发送方创建消息 2. 发送方创建消息的160位散列码 3. 发送方用私钥对散列码进行加密,附加到消息上 https://www.jianshu.com/p/fb726679d52f
12.Pythonhashlib模块详情pythonSHA:secure Hash Algorithm 安全散列算法1,是一种密码散列算法,SHA-1可以生成摘要消息为40位的16进制即160位(20字节)的散列值 用途:TSL、SSL、PGP、SSH等协议中广泛使用 3. hashlib 属性方法 hashlib 模块相关属性 hashlib 构造对象相关的属性 hashlib 模块相关方法目前可以支持主流hash算法。 https://www.jb51.net/article/230710.htm
13.SHA安全散列算法腾讯云开发者社区文章目录一、报文鉴别二、鉴别分类三、报文鉴别四、密码散列函数五、MD5 算法六、SHA-1 安全散列算法七、MAC 报文鉴别码一、报文鉴别 --- 计算机网络安全措施 : ① 针对被动攻击散列值 被截获 , 截获者无法伪造出一个 对应的输入值 ( 明文 / 发送数据 ) ; 密https://cloud.tencent.com.cn/developer/information/SHA%E5%AE%89%E5%85%A8%E6%95%A3%E5%88%97%E7%AE%97%E6%B3%95
14.PGPPGP是用一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message digest 5)。 MD5是一种单向散列算法,它不像CRC校验码,很难找到一份替代的邮件与原件具有同样的MD5特征值。 回到数字签名上来,甲用自己的私匙将上述的128位的特征值加密,附加在邮件后,再用乙的公匙将整个邮件加密。这样这份密文被https://baike.sogou.com/v453393.htm
15.你知道PGP和GPG的区别吗?GPG=Gnu Privacy Guard. Gnu隐私保护。它 是在OpenPGP基础上更新了的。为了完全免费,所以不再使用IDEA散列算法。它是使用NIST 和 AES 高级加密的软件。 二,PGP 和GPG 之间的区别是什么? 1. 名字区别。PGP= Pretty Good Privacy。GPG= Gnu Privacy Guard. https://developer.aliyun.com/article/1432461
16.加密协议PGP和GPG的区别,你知道么?PGP使用RSA软件和IDEA加密算法。 GPG=Gnu Privacy Guard. Gnu隐私保护。它?是在OpenPGP基础上更新了的。为了完全免费,所以不再使用IDEA散列算法。它是使用NIST和AES高级加密的软件。 二、PGP和GPG之间的区别是什么? 名字区别。PGP=PrettyGoodPrivacy。GPG=GnuPrivacyGuard. http://www.51testing.com/html/18/n-6993418.html?nomobile=1
17.什么是安全电子邮件端到端的安全电子邮件技术保证邮件从发出到被接收的整个过程中,内容无法修改,并且不可否认。PGP和S/MIME是目前两种成熟的端到端安全电子邮件标准。 PGP(Pretty Good Privacy)被广泛采用,通过单向散列算法对邮件内容进行签名,以保证信件内容无法被修改,使用公钥和私钥技术保证邮件内容保密且不可否认。发信人与收信人的http://help.cstnet.cn/zhishiku/zhishiku_aqyj.html