渗透准备知识
网络安全
安全常见漏洞
- 不完善的身份验证措施
- 不完善的访问控制措施
- SQL注入
- 跨站点脚本
- 信息泄露
- 跨站点请求伪造
网络攻击图
WEB应用技术
HTTP
- 客户端通过浏览器 —— 获取——服务端数据信息
- 客户端通过浏览器——提交——服务端后台程序(数据库服务器 缓存服务器 存储服务)
HTTP请求报文
请求报文信息
- 请求行
- 请求头
- 空行
- 请求主体
响应报文信息
- 响应行
- 响应头
- 空行
- 响应主体(获取数据信息 文本 图片 视频 音频 代码信息)
HTTP请求字段名称及作用
请求报文信息:
- Accept :识别网站资源
- Referer :外部链接(访问此网站前是从其他网站跳转过来的,会做一个记录;可以防止盗链,别人盗取网站资源)
- Accept-Language : 支持的语言
- User-Agent :客户端访问服务端软件信息(例如:Windows上的Chrome浏览器访问;也可显示移动端访问:iPhone、Android)
- Accept-Encoding :资源压缩请求,利于访问减少带宽占用
- Host :域名,确定网站访问信息
- Connecting :Keep-Alive 一般都是长连接 none
- 短链接 : 一次链接(tcp三次握手)一次请求,请求完断开
- 长连接 : 一次链接(tcp三次握手) 在时间域内多次请求
响应报文信息:
- HTTP/1.1 200 OK :状态码和协议
- Date :时期
- Server :浏览器
- X-Power-By :框架
- Cache-Control :缓存控制
- Content-Type :响应主体信息类型
- Content-Length :数据字节大小
请求方法:
请求方法
get : 从服务器获取资源数据信息 (不会有请求主体)
post :向服务器提交资源数据信息 (字符信息提交)
put :向服务端提交文档附件资源
head :类似get,不返回消息主体
trace :用于诊断
options :要求服务器报告对某一特殊资源有效的HTTP方法
- 用法:黑客利用 HTTP请求包(携带OPTIONS)–> www.xx.com –> 查看是否有安全控制 ,若没有服务器端 –> 返回HTTP响应报文中携带支持访问的方法信息:如GET POST PUT MOVE HEAD ,这些方法会被黑客利用植入木马等病毒程序
put :上传信息
URL统一资源定位符
格式: protocol://hostname[:port]/[path/Ifile[?Param=valuel
- protocol : http https ftp
- hostname : IP地址 、域名信息
- port : 端口号,例[8002] nginx、apache、tomcat
- path/Ifile :资源路径(访问静态资源的时候)
- Param :参数(动态资源:index.php)
HTTP消息头
Authorization :为一种内置HTTP身份验证向服务器提交证书
Location :用于重定向响应(那些状态码以3开头的响应)中说明重定向的目标 www.360buy.com –> www.jd.com
状态码
- 1xx :提供信息
- 100 客户必须继续发出请求
- 101 客户要求服务器根据请求转换HTTP协议版本
- 2xx :请求被成功提交
- 200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
- 201 (已创建) 请求成功并且服务器创建了新的资源。
- 202 (已接受) 服务器已接受请求,但尚未处理。
- 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
- 3xx :客户端被重定向到其他资源
- 300 (多种选择) 针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
- 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
- 302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
- 4xx :请求包含某种错误
- 400 (错误请求) 服务器不理解请求的语法。
- 401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
- 403 (禁止) 服务器拒绝请求。
- 404 (未找到) 服务器找不到请求的网页。
- 5xx :服务器执行请求时遇到错误
- 500 (服务器内部错误) 服务器遇到错误,无法完成请求。
- 503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
Cookie
用户访问网站的身份证,用来存储一些用户信息,用于辨别用户身份
Cookie类型
- 会话Cookie
- 用户推出浏览器访问后,即删除
- 持久Cookie
- 存储到硬盘中,维护用户周期性访问网站
Cookie域
Domain属性
- 访问不同的网站会有很多个不同的Cookie,如何辨识Cookie对应哪个网站,我们在Cookie中引入Domain属性
Path属性
- 一个网站中有无数不同的资源和页面,访问同一个网站的不同页面时也会产生不同的Cookie,所以通过path属性来标识特定文档资源
第三方Cookie
用来根据用户喜好进行内容推广使用,由于经常使用浏览器访问不同的网站和产品、广告,每次访问时会产生对应的第三方Cookie,等你再次访问其他网站时,它会自动读取,并且给你推荐相关产品
网站渗透技术
漏洞扫描
1、链路检测扫描
- 利用ping命令进行测试扫描检查网络连通性
- ping命令进行扫描时,会先检查网络的连通性,然后根据测试扫描后的TTL值的输出,判断所扫描的系统类型(windows、linux、交换机)
2、端口检测扫描
- 利用telnet命令进行测试扫描检查网络端口
- telnet命令扫描会进行检查网络的端口是否开放,根据访问输出消息即可进行判断
3、OS检测扫描
OS扫描是黑客进行OS漏洞攻击的前奏,实时检测OS扫描是防止系统遭受OS漏洞攻击的重要手段。
利用nmap命令测试扫描检查网络系统信息,使用TCP/IP协议栈指纹来识别不同的操作系统和设备。
具体实现方式如下:
- nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中记录)。将此指纹数据库作为进行指纹对比的样本库。
- 分别挑选一个open和closed的端口,向其发送经过精心设计的TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹。
- 将探测生成的指纹与namp-os-db中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。
4、弱口令探测
尝试安全性差的密码信息,一般的都是采用穷举破解原理 ,或者是利用字典文件加快破解速度 ,对常见的弱口令的收集
5、漏洞评估检测
利用漏洞扫描器,针对网络、应用、数据库的已知的漏洞评估,识别和量化环境中的安全漏洞。
扫描技术
扫描工具
X-Scan —— 对指定主机或IP地址段进行安全检测
设置 → 扫描参数 → 检测范围(输入IP地址) → 全局设置 (按照自己的需求设置)→ 查看扫描报告
AppScan —— 一个桌面应用程序,进行web应用程序自动化脆弱性评估。
先破解 → 文件 → 新建扫描 → 常规扫描 → AppScan(自动或手动)→ 输入网站IP地址的URL → 扫描网站生成报告AWVS —— 自动化web测试工具
先激活再使用
Web渗透攻防环境搭建
部署虚拟主机
- Windows 2003/2008
- Windows 7/10
- Linux kail/centos
网站服务架构平台
推荐: Windows 下的LNMP 、LAMP 、LNMT ,利用软件(phpstudy)