Web安全原理与实践
基本技能:
编程语言、计算机网络、操作系统、office
专业技能
web安全、网络安全、渗透测试、代码审计
能力提升
安全平台、靶场
事件
有害程序事件
计算机病毒、蠕虫、特洛伊木马、僵尸网络、混合程序攻击、网页内嵌恶意代码、其他有害程序
网络攻击事件
分布式拒绝服务攻击、后门攻击、漏洞攻击、网络扫描窃听、网络钓鱼、干扰事件
Web漏洞
跨站脚本攻击(XSS)
类型:反射型、存储型、DOM型
危害:盗取cookie、XSS蠕虫攻击、会话劫持、钓鱼攻击
SQL注入
类型:数据型 selece *from table where id = 1
字符型 selece *from table where username = ‘flag’
危害:数据库信息泄露、数据篡改、挂马等
文件上传漏洞
类型:php上传、Asp上传、Jsp上传、ASPX上传等等
危害:恶意文件传递给解释器,从而链接服务器,查看敏感文件
文件包含漏洞
常见包含函数:include()、require()
类型:本地包含、远程包含
HTTP协议
请求过程详情
第一次握手
建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
第二次握手
服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
第三次握手
客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
第一次挥手
主机1(可以使客户端,也可以是服务器端),设置Sequence Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
第二次挥手
主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
第三次挥手
主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
第四次挥手
主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
http请求方法
- GET:获取资源
- POST:传输实体文本
- HEAD:获得报文首部
- PUT:传输文件
- DELETE:删除文件
- OPTIONS:询问支持的方法
- TRACE:追踪路径
- CONNECT:要求用隧道协议连接代理
Web攻防工具
1.信息收集
2.漏洞分析
3.Web程序
4.数据库评估
5.密码攻击
6.无线攻击
7.逆向工程
8.漏洞利用工具
9.嗅探/欺骗
10.权限维持
11.数字取证
12.报告工具集
13.社会工程学