零散的总觉一些回顾点吧html
1、HTTP协议前端
超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为普遍的一种网络传输协议,应用与传输HTML网页和超文本数据,例如:图片、音频文件(MP3等)、视频文件(rm、avi等)、压缩包(zip、rar等)等。HTTP协议自身是无状态的。web
http1.1 有最大的加载数sql
http2.0 多用复用数据库
2、HTTP协议请求方法(重点方法)后端
GET - 向特定的资源发出请求。注意:GET方法不该当被用于产生“反作用”的操做中,例如在web app.中。其中一个缘由是GET可能会被网络蜘蛛等随意访问。浏览器
好比说 我请你吃饭 只包含事件缓存
POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会致使新的资源的创建和/或已有资源的修改。安全
好比说 我请你吃饭,时间:今天晚上 地点:盘古 房间号:801 包含事件和参数服务器
PUT - 向指定资源位置上传其最新内容。
post 均可以用put ,put 有幂等机制, 对于两条彻底相同的请求,会触发幂等模式,不会去处理第二条请求
Delete 直接从服务器上删除一些资源
TRACE- 回显服务器收到的请求,主要用于测试或诊断
线上是不能出现 Delete 和trace 请求 ,不安全
3、HTTP状态码(常见的)
状态码 状态码英文名称 中文描述
200 OK 请求成功。通常用于GET与POST请求
202 Accepted 已接受。已经接受请求,但未处理完成 ////A对B 说 我今天请你吃饭,吃拉面 B:请吃饭没问题,回来再定 (接收,但没处理),队列机制,异步处理;电商,银行:若是实 /////时接口繁忙,会给你返回一个待对帐状态
206 Partial Content 部份内容。服务器成功处理了部分GET请求 //////C对B说 我今天请你吃饭,那是不可能的 B:只听到了我请你吃饭,后面没听到(只接受部分请求,其余请求其余线程处理) //////迅雷下载
301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。从此任何新的请求应使用新的URI代替
302 Found 临时移动。与301相似。但资源只是临时被移动。客户端应继续使用原有URI
400 Bad Request 客户端请求的语法错误,服务器没法理解
401 Unauthorized 请求要求用户的身份认证
403 Forbidden 服务器理解请求客户端的请求,可是拒绝执行此请求
404 Not Found 服务器没法根据客户端的请求找到资源(网页)。经过此代码,网站设计人员可设置"您所请求的资源没法找到"的个性页面
500 Internal Server Error 服务器内部错误,没法完成请求
502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 /////远端服务器没有问题,是你本地的服务器有问题
2 表明服务器接收
3 表明服务器返回并跳转
4 报错,服务器进行处理并报错
5 报错,服务器还没进行处理就报错
4、ip--端口:
咱们能够把IP地址比做一栋房子,端口就是这栋房子里面的各个房间。端口是经过端口号来标记的,端口号只有整数,范围从0到65535
5、Web应用的三层架构
客户端 中间层 数据库
中间层:web服务器 前端;应用服务器 后端
6、WEB安全测试
1.
先验测试:根据常见的攻击类型,进行一些前置测试
后验测试:假设网站还有安全漏洞,咱们改怎么办,好比说:session失效,“一号多登”策略,登陆提醒
2.
双因子认证:1你知道什么(帐号,密码) 2你有什么(手机验证码)
3.
验证性的 登陆,注册,忘记密码等
受权 会话令牌
客户侧攻击 更改客户端数据
命令执行 xss,sql注入
信息暴露 隐私信息,详细系统信息(详细报错等)
逻辑攻击 流程上的验证
7、安全测试流程
一、解析、分析web应用
二、测试验证机制
三、测试会话管理
四、测试访问控制
五、测试基于输入的各类漏洞(sql注入,xss)
六、测试逻辑缺陷
七、总结分析
8、核心防护机制
Web应用程序的基本安全原则问题:全部用户输入均不可信
包括:url 参数 变量 cookie
用户权限:1验证机制 2会话管理 3权限控制
输入:1.入口,抵御不良参数的输入
2.出口,把不良输入的影响下降
后验措施:保证受到攻击的时候,程序还能正常运转
9、解析、分析web应用
本质上是用来分析制定测试计划的:
解析应用程序目的
制做一个策略表(做为安全测试的指导)
模块—页面—安全测试策略
(一)、 大致分模块
1. 先看详细设计文档 (划分模块)
2. 需求文档 (划分细节模块)--分析哪些功能重要,哪些功能次要
3. 测试用例查看
注: 最好列出基本页面
(二)、 查缺补漏阶段
1. spider 前面的模块是否完整,补充页面的连接(针对同一功能的不一样页面)
1) 自动化获取大量页面
2) 经过手动方式补充页面
2. 发现隐藏内容(补充页面) 或能够直接去代码中捞
1) 暴力获取连接
2) 经过已发布来推测
3) 使用搜索引擎(site:)
1. 自动web抓取
使用Spider爬虫:分析html表单,并使用各类预设值或随机值将这些表单返回给应用程序,以扩大搜索范围,更有些工具会在抓取过程当中遇到必填表单(如登陆请求)要求使用者填写相关数据
工具:Burp Suite等
彻底自动化抓取的限制
1) 工具没法正确处理使用复杂js代码创建的动态菜单、页面等
2) 没法解析在编译客户端对象(FLASH等)中的连接
3) 遇到复杂的输入输出检查没法使用工具自动提交的值跳过。
4) 自动化爬虫以URL做为标识符,可是咱们网站中会有同一个连接返回不一样的内容和功能。
5)复杂的身份验证机制、验证码等自动爬虫没法成功经过。
2. 用户指定的抓取
该技巧复杂且可控,半自动化抓取。用户经过浏览器以常规方式浏览应用程序,试图枚举应用程序的全部功能,生成的流量流入拦截服务器,并由爬虫监控。
工具:Burp Suite
3. 发现隐藏内容
应用程序经常包含一些没有直接连接以及没法经过可见的内容访问到的功能。常见隐藏内容包括:
1)测试、调试或开发过的但未在主程序中创建连接的功能
2)从服务中删除或被替换的旧版本文件
3)包含有效用户名、会话令牌等的日志文件
4)应用程序可能为不一样类型不一样权限级别的用户提供了不一样的功能
发现隐藏内容之技巧篇
A. 蛮力技巧
在已肯定内容基础上,使用工具自动向web服务器提出大量请求,尝试猜想隐藏功能。
B. 经过已发布内容推测
例如咱们已知某网站忘记密码的url为:http://www.besttest.cn/auth/ForgetPassword.html
那么咱们就能够推测是否具备AddPassword、GetPassword、ResetPassword、UpdatePassword等等
C. 利用搜索引擎
搜索引擎中具备强大的爬虫,能发现几乎全部内容的详细目录,并将这些内容保存在缓存中。
分析:
根据页面功能分析出可能出现哪一种漏洞
客户端确认——服务器是否采起验证(绕过)
数据库交互——sql注入
文件上传与下载——存储式跨站脚本、验证(绕过)
显示用户提交的数据——跨站脚本
登陆——用户名枚举、弱密码、蛮力攻击、SQL注入、绕过客户端,xss,验证机制,会话管理
多阶段登陆——登陆逻辑缺陷
会话状态——可推测的令牌、令牌处理
访问控制——用户假装、权限提高
错误消息——信息泄露
邮件交互——绕过客户端、社会学攻击
10、安全漏洞原理
绕过控件、验证 --- 有验证,要修改攻击验证机制 ---身份校验相关攻击会话管理 ---身份认证 受权Sql注入 --- 拼sql 跟数据库关联 增删查改 sql注入的漏洞攻击访问控制 ---权限 作改动;页面显示XSS攻击 ---有用户输入的地方CSRF攻击 ---关键请求社会学攻击逻辑漏洞