第1节 教材学习内容总结
本周学习了教材第十一、十二章的内容。
1.Web应用程序安全攻防
1.1 web应用体系结构及其安全威胁
- web应用体系结构
“瘦”客户端:浏览器,完成数据显示与展示内容的渲染功能;
“胖”服务器:web服务器软件、web应用程序、后端数据库。
通过经典三层架构:表示层、业务逻辑层和数据层来组织和构建。
传输协议HTTP/HTTPS:
1)超文本传输协议HTTP无状态、ASCII码明文传输、运行于众所周知的TCP80端口。特点:简单、流行、易受攻击。 2)加密传输的HTTPS协议,使用ssl/tls隧道技术,采用多种认证协议实现对用户身份的人认证与控制。
web应用安全威胁
1)针对浏览器和终端用户的web浏览安全威胁:以浏览器渗透攻击为核心的网页木马、网站钓鱼。 2)针对传输网络的网络协议安全威胁:针对HTTP明文传输的敏感信息监听、假冒身份攻击、拒绝服务攻击等。 3)系统层安全威胁:远程渗透攻击和本地渗透攻击温威胁。 4)web服务器软件安全威胁:利用漏洞实施渗透攻击、获取敏感信息。 5)web数据安全威胁:窃取、篡改、输入不良信息。
1.2 Web应用程序安全攻防技术概述
信息收集内容包括:
服务器域名 ip地址和虚拟ip地址 web服务器端口与其他开放服务 web站点类型和版本 web应用程序类型和版本 web服务器和web应用程序中存在的安全漏洞信息
方式包括:
手工审查web应用程序结构与源代码 自动下载与镜像web站点页面:lynx、wget、teleportpro、offline explorer等web站点镜像软件。 使用google hacking技术审查与探测web应用程序 web应用程序安全评估与漏洞探测:浏览器插件、免费工具集、商业web应用安全评估系统和漏洞扫描器。
Web服务器平台安全漏洞:
数据驱动的远程代码执行安全漏洞 服务器功能拓展模块漏洞 样本文件安全漏洞 源代码泄露 资源解析攻击
Web应用程序安全威胁从攻击者技术角度分为如下六类:
针对认证机制攻击 授权机制攻击 客户端攻击 命令执行攻击 信息暴露 逻辑攻击
最流行的的两类Web应用程序安全漏洞及攻击技术:SQL注入和XSS跨站脚本。
攻击Web数据内容:安全敏感数据泄露、网站内容遭到篡改以及不良信息内容上传威胁。
Web应用安全防范措施:
1)web站点网络传输安全防范措施
使用HTTPS 使用加密连接通道、对关键Web服务器设置静态绑定MAC-IP映射。
2)Web站点操作系统及服务安全设防措施
及时的补丁更新 进行远程安全漏洞扫描 关闭不使用的服务 设置强口令字 部署防火墙 数据备份
3)Web应用程序安全设防措施
使用静态html 使用具有良好安全声誉及稳定技术支持力量的Web应用软件包 除非必要才使用自主或者外包Web应用程序 使用Web服务器软件提供的日志功能。
4)Web站点数据安全设防措施
提高维护人员数据安全意识 对维护网站数据安全实施日常监测和防护
1.3 SQL注入
本节讲了什么是SQL注入、种类以及原理(课本举了两个例子进行说明):
利用web应用程序的输入验证不完善漏洞,使得web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果。
SQL注入攻击步骤:
发现SQL注入点 判断后台数据库类型 后台数据库中管理员用户口令字猜解 上传ASP后门,得到默认账户权限 本地权限提升 利用数据库扩展存储过程执行Shell命令
SQL注入攻击工具:
Wposion 能在动态web文档中找出SQL注入漏洞 wieliekoek.pl 以网站镜像工具生成的输入为输出,对表单页面注入字符串修改 SPIKE Proxy 对待注入的字符串进行定制 SPI Toolkit工具包
本节还举了两个攻击示例。
SQL注入攻击防范:
使用类型安全的参数编码机制 完备检查来自外部的用户输入 将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象 加强SQL数据库服务器的配置与连接
1.4 XSS跨站脚本攻击
与代码注入攻击不同的是,XSS跨站脚本攻击的最终目标不是提供服务的web应用程序,而是使用web应用程序的用户。
- XSS攻击技术原理
是Web应用程序对用户数输入内容的安全验证与过滤不完善。
- 攻击方式
绕过客户端安全策略访问敏感信息,窃取或修改会话Cookie、进行客户端渗透攻击获取访问权。
- XSS攻击类型
持久性XSS漏洞和非持久性XSS漏洞,利用这两类漏洞的攻击也称为持久性XSS攻击和非持久性XSS攻击。
攻击实例:测试XSS漏洞、显示用户的会话cookie、窃取用户的会话cookie、利用cookie信息假冒其他用户发表与修改帖子、编写实现XSS蠕虫。
- XSS攻击防范措施
服务器端:输入验证、输出净化、消除危险的输入点。
客户端:提升浏览器的安全设置,如关闭cookie或者设置cookie只读等,也可以采用非主流的安全浏览器。
2.Web浏览器安全攻防
2.1 web浏览器安全威胁
Web浏览器软件安全困境三要素:复杂性、可扩展性、连通性。
Web安全威胁位置
传输网络的网络协议安全威胁 Web浏览端系统平台的安全威胁 Web浏览器软件及插件程序的渗透攻击威胁 互联网用户社会工程学攻击威胁
2.2 Web浏览端渗透攻击威胁——网页木马
- 本质核心:利用脚本语言实现对web浏览端软件安全漏洞的渗透攻击,从而向客户端主机中植入恶意程序。
防范:提升操作系统与浏览端平台软件的安全性。
2.3 网络钓鱼(phishing)
网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式。
原理:通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
普遍技术流程:
攻击者扫描网段,寻找存有漏洞的服务器; 服务器被攻陷,并被安装一个rootkit或口令保护的后门工具; 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行; 攻击者下载群发电子邮件工具,并大规模散发垃圾邮件; 网页浏览的流量开始到达钓鱼网站,受害者访问并给出个人敏感信息,攻击者通过后台脚本收集这些信息。
防范:增强安全意识、提高警惕性。
第2节 教材学习中的问题和解决过程
1.实践:SEED SQL注入
- 运行 Apache Server:镜像已经安装,只需运行命令sudo service apache2 start
- phpBB2 web 应用:镜像已经安装,通过 http://www.sqllabmysqlphpbb.com 访问。
- 关闭对抗措施
PHP 提供了自动对抗 SQL 注入的机制,被称为 magic quote,我们需要关闭它。
找到/etc/php5/apache2/php.ini 找到 magic_quotes_gpc = On 这一行改为 magic_quotes_gpc = Off 重启 Apache: ”sudo service apache2 restart”
2.实践:SEED XSS攻击
- 测试漏洞
登录到论坛后发布一个帖子,帖子中包含以下内容:<script>alert(’XSS’);</script>
- 在消息窗口中显示会话Cookie
第3节 课堂测试
以SEED为攻击机,以Linux Metasploitable/Windows Metasploitable做靶机完成TCP/IP协议攻击。任选两个攻击:ARP缓存欺骗攻击,SYN Flood攻击。
攻击一:ARP缓存欺骗攻击
攻击二:SYN Flood攻击
第4节 kali视频(16-20)学习
16.漏洞分析之数据库评估(一)
- BBQSql
BBQSql是一个Python编写的盲注工具(blind SQL in jection framework),当检测可疑的注入漏洞时会很有用。同时BBQSql是一个半自动工具,允许客户自定义参数。
- DBPwAudit(数据库用户名密码枚举工具)
使用参考:
破解SQLServer数据库#./dbpwaudit -s IP -d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)
破解mysql数据库
#./dbpwaudit -s IP -d mysql(数据库名称) -D MySQL(数据库类型) -U username(字典) -P password(字典)
- HexorBase
图形化的密码破解与连接工具,开源。
- jsql
jSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(windows,linux,Mac OS X,Solaris)、开源且免费。将存在注入漏洞的URL贴进来即可进行相应的漏洞利用。
- MDBTools
包括MDB-Export(Export data in an MDB database table to CVS format),以及MDB-Dump,mdb-prasecvs,mdb-sql,mdb-table等子工具,具体环境具体使用。
- Oracle Scanner
Oscanner是一个用Java开发的oracle评估工具。它是基于插件的结构,当前由两个插件可以实现的功能有:
Sid列举 口令测试 列举Oracle版本 列举账号角色 列举账号特权 列举账号哈希 列举审计信息 列举口令策略 列举数据库链接
- SIDGuesser
是针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。
- SqlDICT:用户名密码枚举工具,通过Wine运行
17.漏洞分析之数据库评估(二)
- tnscmd10g
允许我们向Oracle数据库中注入命令
- Sqlsus
sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,另一个最大的特点就是自动搜索可写目录。生成配置文件 编辑配置文件 修改 our $url_start = "":写入地址 启动并且测试`sqlsus test.conf` 获取数据库数据 查看全部数据库名字 sqlsus > get database
- Sqlninja
在sql注入方面一直尊sqlmap为神奇,但sqlninja也有自己的特点。Sqlninja是一款perl编写的一个专门针对Microsoft SQL.Server的sql注入工具,它侧重于获得一个shell。
sqlninja的优点如下:
1)一个专门针对Microsoft SQL.Server的sql注入工具 2)可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp-cmdshell的可用性、身份验证模式等) 3)“sa”口令的强力攻击 4)如果找到口令后,就将特权提升为“sa” 5)如果原始的xp——cmdshell被禁用后,就创建一个定制的xp_shell 6)使用纯粹的ASCII GET/POST请求来上载netcat.exe程序(以及其他任何可执行的程序),因此并不需要FTP连接。 7)为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描。 8)逃避技术,这是为了使注入式代码“模糊”不清,并且混淆/绕过基于签名的IPS和应用层防火墙。 9)采用“盲目执行”攻击模式,在其他模式失效时,可以用于发布命令并执行诊断。 10)在sqlninja生成的SQL代码上,执行的是自动化的URL编码,这使得用户可以更精细地控制漏洞利用的字符串。 11)如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。
sqlninja的参数很少
-m 指定攻击模式,有以下几个
1)t/test 测试连接是否是注入点 2)f/fingerprint 指纹识别,判断用户,数据库,xp_cmdshell是否能用等等 3)b/bruteforce 暴力破解sa密码,可以-w指定字典,也可以不适用字典,这样sqlninja就会自己穷举 4)e/escalation 提权用,必须用-p指定sa的password,成功就会把当前数据库用户加入到sa组里面 5)x/resurrectxp 尝试恢复xp_cmdshell 6)u/upload 使用get和post上传二进制文件,-p可以指定sa的password,-g表示只生成上传文件,但并不上传 7)s/dirshell 获取目标主机的shell 8)k/backscan 查看开放的目标端口 9)r/revshell 反弹会一个shell,和dirshell相反 10)d/dnstunnel 指定使用dns作为传输通道,可用-p可以指定sa的password,为什么有这个模式,因为可能服务器连接icmp都禁止。同样,想要使用这个模式得先用upload模式上传dnstun.exe 11)i/icmpshell 当dirshell和revshell都失败的情况下,可以用这个模式把shell藏在icmp里,但是先要上传icmpsh.exe 12)-f<file> 指定配置文件,sqlninja没有类似sqlmap的“-u”参数,注入网址是写在配置文件里的,默认是sqlninja.conf
- Sqlmap
Sqlmap是一个开源的渗透测试工具,它主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。Sqlmap配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,哈可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
18.漏洞分析之WEB应用代理
通过web应用代理工具分析数据包,或修改数据包重放、暴力攻击等在WEB安全测试中经常用到。
web应用代理工具有:burpsuite、owasp-zap、paros、vega、webscarab、proxystrike
- Burp Suite
Burp Suite是用于攻击web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。
可以对包进行一系列的修改和利用,burpsuite还有许多功能模块,使用参见 2017-2018-2 20179204《网络攻防实践》安全工具研究。
- OwaspZAP
OWASP Zed Attack Proxy Project攻击代理(简称ZAP),是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了“拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索”等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
视频当中没有过多介绍,详细使用可以参考简书的这篇文章 OWASP_ZAP。
OWASP_ZAP 默认监听的是 8080 端口,并且在启动 ZAP 的时候便会自动开始监听。如此,只需设置浏览器代理,ZAP 便会自动爬取所有数据。
ZAP 最简单的使用方式便是在首页直接输入目标 Target 然后点击“攻击”便会开始主动扫描了。
- Paros
paros proxy,这是一个对web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估web应用程序的漏洞。它支持动态的编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。
它包括一个web通信记录程序,web圈套程序(spider),hash计算机,还有一个可以测试常见的web应用程序攻击的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。
- proxystrike
- Vega代理功能
Vega是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用Java编写,有GUI。
- Webscarab
Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛、会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。Webscarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
19.漏洞分析之burpsuite
BurpSuite是一个web应用程序集成攻击平台,它包含了一系列burp工具,这些工具之间有大量接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。平台中所有工具共享同一robust框架,以便同意处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。
BurpSuite允许攻击者结合手工和自动技术去枚举、分析、攻击web应用程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。
Porxy提供一个直观、友好的用户界面,他的代理服务器包含非常详细的拦截规则,并能准确分析HTTP消息的结构与内容。
Spider爬行蜘蛛工具,可以用来抓取目标网站,以现实网站的内容,基本结构和其他功能。
步骤:
1)配置端口 2)爬虫与扫描 3)测试暴力破解表单账户密码
实践详见 2017-2018-2 20179204《网络攻防实践》安全工具研究。
20.漏洞分析之fuzz工具
Fuzz是模糊测试工具。
- Bed.pl
Bed(Bruteforce Exploit Detector)是一个纯文本协议的Fuzz工具,能够哦检查常见的漏洞,如缓冲区溢出,格式串漏洞,整体溢出等。
- Fuzz_ipv6
THC出品的针对IPV6协议的模糊测试工具。
- Ohrwurm
- PowerFuzzer
- Wfuzz
针对web应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入,xss漏洞的测试等,该工具所有功能都依赖于字典。
- SFuzz
- XSSer
针对XSS漏洞的挖掘
xsser --gtk 图形化界面
对一个页面或点进行xss测试,判断是否有XSS的漏洞。