2018-2019-2 20189221 《网络攻防技术》第五周作业
学习目标
- Web架构
- HTTP协议
- Web应用安全
- Web浏览器安全
视频学习(16-20)
漏洞分析之数据库评估(一)
BBQSql:
一种用Pyhthon写的SQL盲注框架。当发动QL注入漏洞攻击时,它将非常有用。BBQSQL是半自动工具,允许许多难以触发的SQL注入变得用户化。BBQSQL最重要的是它不关心数据或数据库。
DBPwAudit:
通过挂载字典对目标数据库进行密码暴力猜解,目前支持的数据库包括SQLServer、MySQL、Oracle、DB2。
HexorBase:
图形化的密码破解与连接工具,支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流数据库。它允许安全人员指定用户字典和密码字典,然后实施字典攻击。同时,它还提供对应的图形界面客户端,允许安全人员使用破解出的用户名和密码,对数据库进行远程管理。
Jsql Injection
jSQL是一款Java开发的轻量级远程服务器数据库注入漏洞测试工具,且免费、开源、跨平台 (Windows, Linux, Mac OS X, Solaris)。将存在注入漏洞的URL贴进去即可进行响应的漏洞利用。
MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具
mdb-sql:
Oracle Scanner
OScanner 是基于Java开发的一个Oracle评估框架。它有一个基于插件的架构并附带几个插件,目前可以实现:Sid枚举、密码测试(常见&字典)、枚举Oracle版本、枚举账号权限、枚举账号哈希、枚举审计信息、枚举密码策略、枚举数据库链接。
SIDGusser
针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。当用户希望远程连接Oracle数据库时,则需要知道SID、用户名、密码及服务器的IP地址。
SqlDICT
QLdict是一个Windows程序,是一款用户名密码枚举工具,运行时会自动调用Kali Linux内置的Wine组件。渗透测试人员只要指定目标IP地址、账户名和密码字典,就可以实施密码爆破。
漏洞分析之数据库评估(二)
tnscmd10g
允许向Oracle数据库注入数据。(不常用)
Sqlsus
Sqlsus是一个开源的MYSQL注入和接管工具,Sqlsus使用perl编写,基于命令行界面,可以获取数据库结构,注入自己的SQL语句,从服务区下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,可自动搜索可写目录。
Sqlninja
Sqlninja是一款perl编写的,侧重于获得一个shell。Sqlninja是专门针对SQLServer的sql注入工具。可找到远程SQL服务器的版本和特征;对管理员口令“sa”进行强力攻击;一旦找到口令就将特权提升到“sa”权限;如果原始的xp_cmdshell被禁用后,就创建一个定制的xp_cmdshell;不需要FTP连接;为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描;逃避技术,使注入代码“模糊”不清,并且混淆/绕过基于强命的IPS和应用层防火墙;采用“盲目执行”攻击模式,可以用于发布命令并执行诊断;如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。
Sqlmap
SQLMAP是一个开源的渗透测试工具,是用Python编写。主要用于自动化的侦测和实施SQL注入攻击以及渗透数据库服务器。配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同的数据库指纹信息,还可以从数据库中提取数据,有很强大的抓取数据的能力。
漏洞分析之Web应用代理
通过web应用代理工具分析数据包,或修改数据包重放、暴力攻击等在WEB安全测试中经常用到。
web应用代理工具有:burpsuite、owasp-zap、paros、vega、webscarab、proxystrike
Burp Suite
Burp Suite是用于攻击web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。
OwaspZAP
OWASP Zed Attack Proxy Project攻击代理(简称ZAP),是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
paros
paros proxy,这是一个对web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估web应用程序的漏洞。它支持动态的编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个web通信记录程序,web圈套程序(spider),hash计算机,还有一个可以测试常见的web应用程序攻击的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。
vega
Vega是一个开放源代码的web应用程序安全测试平台,Vega能够帮助验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用Java编写,有GUI。
WebScarab
Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛、会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。Webscarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
漏洞分析之burpsuite
配置监听端口,配置浏览器,打开设置-网络-代理,然后告诉它使用“localhost”和端口“8080”,然后保存更新的设置。
漏洞分析之fuzz工具
bed.pl:一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲溢出,格式串漏洞,整数溢出等。
使用参数如下,可选择针对不同协议的插件。Fuzz_ipv6:THC出品的针对IPV6协议的模糊测试工具。
- ohrwurm:一个迷你的对RTP的fuzz工具,主要针对SIP通信的fuzz
- powerfuzzer:
- Wfuzz:针对WEB应用的模糊测试工具,可以进行WEB应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入、xss漏洞的测试等,该工具的主要功能都依赖于字典。
- SFuzz:Simple-Fuzzer
XSSer:专门针对XSS漏洞,主要是对一个页面或点进行xss测试,判断是否有XSS的漏洞。
实践练习
SEED SQL注入:
运行 Apache Server:镜像已经安装,只需运行命令sudo service apache2 start
关闭对抗措施:找到/etc/php5/apache2/php.ini,找到magic_ quotes_ gpc = On这一行改为magic_quotes_ gpc = Off
phpBB2 web 应用:镜像已经安装,通过 访问。
尝试密码:
密码错误:
修改登陆验证文件中的sql语句:
绕过密码登陆:
SEED XSS攻击:
发布包含<script>alert(/xss/);</script>
的帖子:
显示/xss/
帖子中包含cookie信息:
消息窗口显示cookie教材学习:《》
第十一章:Web应用程序安全攻防
web应用体系结构及其安全威胁
Web应用程序是一种使用浏览器在互联网或企业内部网上进行访问操作的应用软件形态,通常以浏览器支持的语言所编写,或能够在浏览器控制的环境中运行,依赖于浏览器来对应用程序进行渲染与执行。
关键组件:
- 浏览器(Browser) 标准的Web客户端就是我们所熟知的浏览器,如IE、Firefox、Chrome等,他们都使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互,获取Web服务器上的信息和应用服务。
- Web服务器(Web Server) Web服务器软件通常被简单地描述为HTTP守护程序,接收Web客户端对资源的请求,在这些请求上执行一些基本的解析处理以确定资源的存在,然后将它传送给Web应用程序来执行,待Web应用程序执行完逻辑并返回响应时,Web服务器再将这个响应返回给Web客户端,在浏览器上进行本地执行、渲染和展示。
- Web应用程序(Web Application) 现代Web应用的核心是处于服务器端的业务逻辑,即Web应用程序,虽然嵌入在浏览器中执行的客户端逻辑(如JavaScript代码、Flash/Java等对象)也逐渐地变得更加普遍和重要。
- 数据库(Database) 数据库有时也被称为“后台”,是Web应用存储数据的地方,数据层也作为Web应用程序多级结构中的最后一层。
- 传输协议HTTP/HTTPS 浏览器和由Web服务器、Web应用程序和数据库所构成的Web站点之间的通信传输协议是HTTP/HTTPS协议。
安全威胁:
- 针对浏览器和终端用户的Web浏览安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- Web服务器软件安全威胁
- Web应用程序安全威胁
- Web数据安全威胁
Web应用安全攻防技术概述
与系统和网络攻击类似,针对Web应用的攻击也需要首先进行信息情报的收集,对目标WEB应用服务进行发现与剖析,标识出他的基本轮廓,具体包括服务器域名、IP地址和虚拟IP地址,web服务器端口与其他开放服务,WEB站点类型和版本,WEB应用程序类型与版本,以及WEB服务器和web应用程序中存在的安全漏洞信息等。
收集WEB信息:
- 手工收集:静态和动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串
- 自动下载web站点页面
- 使用Google Hacking(最高效的审查与探测方法)技术审查与探测WEB应用程序
- web应用程序安全评估与漏洞探测 安全辅助分析工具:浏览器插件、免费工具集、商业web应用安全评估系统和漏洞扫描器 攻击WEB服务器软件
web服务器软件是web应用的承载体,也是攻击者的首要目标之一。web服务器平台中的安全漏洞主要有以下几个方面:
- 数据驱动的远程代码执行安全漏洞
- 务器功能扩展模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析攻击
web应用程序安全从攻击技术角度分为六类:
针对认证机制的攻击
授权机制的攻击
客户端攻击
命令执行攻击
信息暴露
逻辑攻击
攻击WEB数据内容:
安全敏感数据泄漏
网站篡改
良信息内容上传
Web应用安全防范措施:
- Web站点网络传输安全设防措施
- 使用HTTPS
- 使用加密连接通道、对关键Web服务器设置静态绑定MAC-IP映射。
- WEB站点操作系统及服务安全
- 及时的补丁更新
- 进行远程安全漏洞扫描
- 关闭不使用的服务
- 设置强口令字
- 部署防火墙
- 数据备份
- WEB应用程序安全设防措施
- 使用静态HTML
- 使用具有良好安全声誉及稳定技术支持力量的Web应用软件包
- 除非必要才使用自主或者外包Web应用程序
- 使用Web服务器软件提供的日志功能
- WEB站点数据安全设防措施
- 提高维护人员数据安全意识
- 对维护网站数据安全实施日常监测和防护
SQL注入
原理
利用web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。SQL注入攻击的原理是WEB应用程序提供的用户输入接口(如一个动态页面的输入参数、变淡的输入框等)输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,是的注入代码得以执行完成非预期的攻击操作行为。
SQL注入攻击步骤和过程
- 发现SQL注入点
- 判断后台数据库类型
- 后台数据库众管理员用户口令字猜测
- 上传ASP后门,得到默认账户权限
- 本地权限提升
- 利用数据库扩展存储过程执行shell命令
SQL注入攻击防范措施
- 使用类型安全的参数编码机制
- 凡是来自外部的用户输入,必须进行完备检查
- 将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象
- 加强SQL数据库服务器的配置连接。
XSS跨站脚本攻击
XSS跨站脚本攻击的最终目标是使用web应用程序的用户。XSS攻击的根源同样是WEB应用程序对用户输入内容的安全验证与过滤不够完善。现有两种主要的XSS漏洞类型,持久性XSS漏洞和非持久性XSS漏洞。对XSS的防范措施可以分为服务器端和客户端。服务器端防范措施包括输入验证、输出净化、消除危险的输入点。
第十二章:Web浏览器安全攻防
web浏览器安全威胁
软件安全困境三要素:复杂性、可扩展性、连通性。浏览器软件面临着严重的威胁。
Web安全威胁位置
传输网络的网络协议安全威胁
Web浏览端系统平台的安全威胁
Web浏览器软件及插件程序的渗透攻击威胁
互联网用户社会工程学攻击威胁
Web浏览器的渗透攻击威胁:网页木马
- 网页木马存在的技术基础:Web浏览端安全漏洞。
- 网页木马的本质核心——浏览器渗透攻击。
- 网页挂马机制,最主要的有如下四类策略:内嵌HTML标签、恶意Script脚本、内嵌对象连接、ARP欺骗挂马。
- 网页木马的检测与分析方法:基于特征码匹配的传统检测方法、基于统计与机器学习的静态分析方法、基于动态行为结果判定的检测分析方法、基于模拟浏览器环境的动态分析检测方法、网页木马检测分析技术综合对比。
网络钓鱼(phishing)
- 原理:通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
- 普遍技术流程:
- 攻击者扫描网段,寻找存有漏洞的服务器;
- 服务器被攻陷,并被安装一个rootkit或口令保护的后门工具;
- 攻击者从加密的后门工具获得对服务器的访问权,并下载已经构建完毕的钓鱼网站内容,进行一些网站搭建配置与测试工作,使得钓鱼网站上线运行;
- 攻击者下载群发电子邮件工具,并大规模散发垃圾邮件;
- 网页浏览的流量开始到达钓鱼网站,受害者访问并给出个人敏感信息,攻击者通过后台脚本收集这些信息。
- 防范:增强安全意识、提高警惕性。