WEB攻击面
- Network
- OS
- Web Server
- App Server
- Web Application
- Database
- Browser
协议基础
- 明文
- 无内建的机密安全机制
- 嗅探或代理截断可查看全部明文信息
- https只能提高传输层安全
- 无状态
- 每一次客户端和服务端的通信都是独立的过程
- WEB应用需要跟踪客户端会话(多步通信)
- 不使用cookie的应用,客户端每次请求都要重新身份验证
- Session用于在用户身份验证后跟踪用户行为轨迹
- 提高用户体验,但增加了攻击向量
- Cycle
- 请求/响应
- 重要的header
- 响应头:
- Set-Cookie:服务器发给客户端的SessionID(被窃取的风险)
- Content-Length:响应body部分的字节长度(爆破时通过该字段判断页面变化)
- Location:重定向用户到另一个页面,可识别身份认证后允许访问的页面
- 请求头:
- Cookie:客户端发回给服务器证明用户状态的信息(头-值,成对出现)
- Referrer:发起新请求之前用户位于那个页面,服务器基于此头的安全限制很容易被修改绕过
- 响应头:
- 状态码:
- 100s、200s、300s、400s、500s
实验环境
- Metasploitable
- Dvwa
侦察
- Httrack
- 将web上所有可访问的页面都copy下来
- 减少与目标系统交互
扫描工具
Nikto
- perl语言开发的开源web安全扫描器
- web服务器使用的软件版本
- 搜索存在安全隐患的文件
- 服务器配置漏洞
- WEB Application层面的安全隐患
- 避免404误判
- 很多服务器不遵守RFC标准,对于不存在的对象返回200
- 依据响应文件内容判断,不同拓展名的404文件响应内容不同
- 去除时间信息后的内容取MD5值
- -no404
- https://cirt.net/Nikto2
- 操作:
nikto -list-plugins
nikto -host http://1.1.1.1
nikto -host 192.168.1.1 -ssl -port 443,8443,995
nikto -host host.txt
nmap -p80 102.168.1.0/24 -oG -|nikto -host -
nikto -host 192.168.1.1 -useproxy http://localhost:8087
-vhost
- interative:
- v -verbose mode on/off
- d -debug mode on/off
- e -error reporting on/off
- p -progress reporting on/off
- P -pause
- r -redirect display on/off
- c -coocie display on/off
- a -auth display on/off
- q -quit
- N -next host
- 配置文件:etc/nikto.conf
- 修改UserAgent
- STATIC-COOKIE=”cookie1=value”;”cookie2=value”
- -evasion:使用LibWhisker种对IDS的躲避技术,可以使用一下几种类型
- 随机URL编码(非UTF-8)
- 子选择路径(/./)
- 过早结束的URL
- 优先考虑长随机字符串
- 参数欺骗
- 使用TAB作为命令的分隔符
- 使用变化的URL
- 使用Windows路径分隔符“\”
Vega
Java编写的开源Web扫描器
扫描模式
代理模式
爬站、处理表单、注入测试
subgraph.com/vega
先手动爬,然后跑扫描。
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
dpkg -L skipfish | grep wl
得到skipfish自带的字典- 通过-S指定使用的字典,-W保存爬的过程中发现的特殊字符,目录,到指定字典。
- -I (大写i)只检查匹配 ‘string’ 的url
- -X 不检查匹配 ‘string’ 的url
- -K 不对指定参数进行Fuzz测试
- -D 跨站点爬另外一个域,如果有链接连接到这里,就会扫。
- -l (小写L) 每秒最大请求书
- -m 每IP最大并发连接数
- –config 指定配置文件
- 身份认证
skipfish -A user:pass -o test http://1.1.1.1
skipfish -C "name=val" -C "name2=value2" -o test http://1.1.1.1
- -auth-form -auth-user -auth-pass -auth-verify-url等,查看help
- 扫描结束太快
- 触发了目标站点的连接数限制,降低-m -l数值
其它
- 代理:Hidemyass
- 书:《Web penetration test with kali Linux》