web技术发展
静态web
动态web
应用程序
数据库
每人看到的内容不同
根据用户输入返回不同结果
web攻击类型有数百种
web攻击面:
network
os
web server
app server
web application
database
browser
第二章:HTTP协议
HTTP协议基础-明文:
无内建的机密性安全机制
嗅探或代理截断可查看全部明文信息
https只能提高传输层安全
无状态:
每一次客户端和服务器端的通信都是独立的过程
web应用需要跟踪客户端会话(多步通信)
不使用cooikes的应用,客户端每次请求都要重新身份验证(不现实)
session用于在于用户身份验证后跟踪用户行为轨迹(提高用户体验,但增加了攻击向量)
session 在server端
session id 在客户端
session定期失效
HTTP协议基础-cycle
请求/响应
重要的deader
set-cookie:服务器发给客户端的sessionID(被窃取的风险)
content-length:响应body部分的字节长度
location:重定向用户到另一个页面,可识别身份认证后允许访问页面
cookie:客户端发回给服务器证明用户状态的信息(头:值 成对比)
referrer:发起新请求之前用户位于哪个页面,服务器基于此头的安全限制很容易被修改绕过
HTTP协议基础-状态码
服务端响应的状态码表示响应的结果类型(5大类50多个具体响应码)
100s:服务器响应的信息,通常表示服务器还有后续处理,很少出现
200s:请求被服务器成功接受并处理后返回的响应结果
300s:重定向,通常在身份认证成功后重定向到一个安全的页面(301/302)
400s:表示客户端请求错误
401:需要身份验证
403:拒绝访问
404:目标未发现
500s:服务器内部错误(503服务不可用)
W3C官网:
http://www.w3.org/protocols/rfc2616/rfc2616-sec10.html
试验环境:
metasploitable 靶机环境
dvwa
httack
减少与目标系统交互
统计可访问的页面
安全工具:
扫描工具nikto:
搜索存在安全隐患的文件
服务器配置漏洞
perl语言开发的开源web安全扫描器
插件:nikto -list-plugins
nikto -update 官网: http://cirt.net/nikto/UPDATES/
nikto -host http://192.168.1.1
例:nikto -host 192.168.1.1 -port 80,443,5601,9200
nikto -host 192.168.1.1 -ssl -port 443
nikto -host host.txt
nmap -p80 192.168.1.0/24 -oG | nikto -host //-oG输出并grep ip地址
nikto -host https://www.baidu.com -useproxy http://localhost:8087 //使用代理伪装源地址
WEB application层面的安全隐患
-vhost
避免404误判
很多服务器不遵守PFC标准,对于不存在的对象返回200响应码
依据响应文件内容判断,不同扩展名的文件404响应内容不同
去除时间信息后的内容取MD5值
-no404
Nikto -interactive扫描过程的交互选项
v -verbose mode on/off
d -debug mode on/off
e -error reporting on/off
p -progress reporting on/off
r -redirect display on/off
c -cookies display on/off
a -auth display on/off
q -quit
N -next host
P -pause
Nikto配置文件:
/etc/nikto.conf
STATIC-COOKE=""cookie value";"cookie2"="cookie valu"
-evasion:使用LibWhisker中对IDS的躲避技术,可使用以下几种类型:
1,随机URL编码(非UTF-8方式)
2,自选择路径(/./)
3,过早结束的URL
4,优先考虑长随机字符串
5,参数欺骗
6,使用TAB作为命令的分隔符
7,使用变化的URL
8,使用Windows路径分隔符“\”
扫描工具:vega
JAVA编写的开源Web扫描器
扫描模式
代理模式
爬站/处理表单/注入测试
支持SSL:
vega:访问HTTPS注意事项:
skipfish:
C语言编写
实验性的主动web安全评估工具
递归爬网
基于字典的探测
速度较快
多路单线程,全异步网络I/O,消除内存管理和调度开销
启发式自动内容识别
误报较低
skipfish -o test http://1.1.1.1 -
skipfish -o test @url.txt
skipfish -o test -S complet.wl -W a.wl http://1.1.1.1 #-S:字典 dpkg -L skipfish //查下可选字典
例:
# skipfish -o skipfish7 -S /usr/share/skipfish/dictionaries/minimal.wl http://es.niwodai.net
-o:指定存放目录
-I:只检查包含string的URL
-X:不检查包含string的URL #logout
-K:不对指定参数进行Fuzz测试
-D:跨站点爬另外一个域
-l:每秒最大请求数
--m:每IP最大并发连接数
--config:指定配置文件
身份认证
skipfish -A user:pass -o test http://1.1.1.1
19:OWASP——ZAP 截断代理/主动/被动扫描
zed attack proxy
WEB Application 集成渗透测试和漏洞挖掘工具
开源免费跨平台简单易用
截断代理:
主动/被动扫描
Fuzzy/暴力破解
API: http://zap/