20189222 《网络攻防实践》第五周学习总结
教材学习内容总结
web应用程序安全攻防
1.web应用程序体系结构及其安全威胁
web应用体系结构:
- 架构:表示层、业务逻辑层、数据层
- web应用体系结构:浏览器、web服务器、web应用程序、数据库、传输协议http/https
web应用安全威胁:
- 针对浏览器和终端用户的web浏览安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- Web服务器软件安全威胁
- Web应用程序安全威胁
- Web数据安全威胁
2.web应用安全攻防技术概述
web应用的信息收集:
- 手工审查web应用程序结构与源代码 ◦静态和动态生成的页面
- 目录结构,经典工具whisker
- 辅助性文件
- 输入表单
- 查询参数字符串
- 自动下载与镜像web站点页面
- linux下工具:Lynx、wget
- Windows上工具:Teleport Pro、Offline Explorer
- 替代工具:迅雷、Flashget
- 使用Google Hacking技术审查与探测Web应用程序
- Web应用程序安全评估与漏洞探测
攻击web服务器软件中的安全漏洞:
- 数据驱动的远程代码执行安全漏洞
- 服务器功能扩展模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析攻击
攻击web应用程序:
- 针对认证机制的攻击
- 授权机制的攻击
- 客户端攻击
- 命令执行攻击(包括缓冲区溢出、格式化字符串、LDAP注入、操作系统命令注入、SQL注入、SSL注入)
- 信息暴露
- 逻辑攻击(包括功能滥用、拒绝服务攻击、对抗自动程序不完善、处理验证过程不完善等)
攻击web数据内容:
- 安全敏感数据泄漏
- 网站篡改
- 不良信息内容上传
web应用安全防范措施:
(1)Web站点网络传输安全设防措施:
- 尽量使用HTTPS来保障Web站点传输时的保密性、完整性与身份真实性,至少对登陆过程进行加密保护
- 通过加密的连接通道来管理Web站点
- 对关键的Web服务器,设置静态绑定MAC-IP映射
(2)Web站点操作系统及服务安全设防措施:
- 对Web站点的操作系统与服务器软件进行及时的补丁更新
- 对Web站点服务器的操作系统及各种开放服务进行远程安全漏洞扫描,在攻击者利用安全漏洞实施攻击之前发现和修补这些安全漏洞
- 采用提升系统与服务安全性的一般性设防措施
(3)Web应用程序安全设防措施:
- 提高安全认识,开发时兼顾安全性、访问性能与便捷性
- 使用具有良好安全声誉及稳定技术支持力量的web应用软件包
- 只在必要时候自主或外包开发web应用程序
- 使用web服务器软件提供的日志功能
(4)Web站点数据安全设防措施:
- 提高网站内容维护人员的数据安全意识
- 对维护网站的数据安全实施日常监测和防护
3.SQL注入
xss跨站脚本攻击:
与代码注入攻击不同的是,其最终目的不是提供服务的Web应用程序,而是使用Web应用程序的用户。
XSS攻击技术原理:
与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。
XSS攻击类型:
- 持久性XSS漏洞(也称作存储型XSS漏洞,是危害最为严重的XSS漏洞)
- 非持久性XSS漏洞(也称为反射XSS漏洞)
XSS攻击:
- 测试XSS漏洞
- 显示用户的会话Cookie
- 窃取用户的会话Cookie
- 利用Cookie信息假冒其他用户发表与修改帖子
- 编写实现XSS蠕虫。
XSS攻击防范措施:
- 服务器端防范措施:①输入验证②输出净化③消除危险的输入点。
- 客户端防范措施:提升浏览器的安全设置。
web浏览器安全攻防
1.web浏览器安全威胁
-
三要素:复杂性、可扩展性、连通性。
-
Web安全威胁位置:
传输网络的网络协议安全威胁
Web浏览端系统平台的安全威胁
Web浏览器软件及插件程序的渗透攻击威胁
互联网用户社会工程学攻击威胁
2.Web浏览端渗透攻击威胁——网页木马
- 本质核心:利用脚本语言实现对web浏览端软件安全漏洞的渗透攻击,从而向客户端主机中植入恶意程序。
视频内容学习总结
16.漏洞分析之数据库评估(一)
- BBQSQL
一种用Pyhthon写的SQL盲注框架。当发动QL注入漏洞攻击时,它将非常有用。BBQSQL是半自动工具,允许许多难以触发的SQL注入变得用户化。BBQSQL最重要的是它不关心数据或数据库。
- DBPwAudit
功能:通过挂载字典对目标数据库进行密码暴力猜解,目前支持的数据库包括SQLServer、MySQL、Oracle、DB2
- HexorBase
图形化的密码破解与连接工具,支持MySQL、Oracle、PostgreSQL、SQLite和SQL Server五大主流数据库。它允许安全人员指定用户字典和密码字典,然后实施字典攻击。同时,它还提供对应的图形界面客户端,允许安全人员使用破解出的用户名和密码,对数据库进行远程管理。
- jSQL
jSQL是一款Java开发的轻量级远程服务器数据库注入漏洞测试工具,且免费、开源、跨平台 (Windows, Linux, Mac OS X, Solaris)。将存在注入漏洞的URL贴进去即可进行响应的漏洞利用。
- MDBTools
包括MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具
Oracle Scanner
-
OScanner 是基于Java开发的一个Oracle评估框架
-
SIDGuesser
针对Oracle的SID进行暴力枚举的工具。
- Sqldict
SQLdict是一个Windows程序,是一款用户名密码枚举工具,运行时会自动调用Kali Linux内置的Wine组件。渗透测试人员只要指定目标IP地址、账户名和密码字典,就可以实施密码爆破。
17.漏洞分析之数据库评估(二)
- tnscmd10g
允许向Oracle数据库注入数据。
- Sqlsus
一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。Sqlsus可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等。最好用的两点就是注射获取数据速度非常快,另外一个最大的特点就是自动搜索可写目录。
- sqlninja
一款Perl编写的一个专门针对microsoft SQL server的SQL注入工具,和市面上其他的注入工具不同,sqlninja没有将精力用在跑数据库上,而是侧重于获得一个shell。
- Sqlmap
SQLMAP是一个开源的渗透测试工具,它主要用于自动化的侦测和实施SQL注入以及渗透数据库服务器,SQLMAP配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
18.漏洞分析之web应用代理
- Burp Suite
用于攻击web应用程序集成平台。Burp Suite 通过默认端口8080上运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。
- OwaspZAP
攻击代理,是一款查找网页的应用程序漏洞综合渗透测试工具。包含拦截代理,被动处理,暴力破解,端口扫描,以及蜘蛛搜索等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。
OwaspZAP像Burp suite一样使用代理的方式来截取网站。
- paros proxy
一个对Web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估Web应用程序的漏洞。它支持动态地编辑/查看 HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个Web通信记录程序,Web圈套程序(spider),hash 计算器,还有一个可以测试常见的Web应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。
- WebScarab
一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛,会话ID分析,自动脚本接口,模糊测试工具, WEB格式的编码/解码,WEB服务描述语言和SOAP解析器等功能模块。WebScarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。
- Vega
Vega是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其它一些安全漏洞。 Vega使用Java编写,有GUI,可以在Linux、OS X和windows下运行。Vega类似于 Paros Proxy, Fiddler, Skipfish and ZAproxy。
19.漏洞分析之BurpSuite
Burp Suite是一个Web应用程序集成攻击平台,它包含了一系列burp工具,这些工具之间有大虽接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。
20.漏洞分析之Fuzz工具
Fuzz工具是一个模糊测试工具。模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型,是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法。测试的基本思想就是通过向程序中输入大量的随机数据,然后观察输入这些数据之后程序的情况,记录下使程序发生异常的数据,从而判断程序是在那些地方发生了异常。 简言之,就是发送一连串可能畸形的数据包,尝试使程序报错,从而进行判断。
- Bed.pl
Bed是一个纯文本协议的Fuzz工具,能够检查常见的漏洞,如缓冲区溢出,格式串漏洞,整数溢出等。BED通过加载插件,向目标主机发送攻击数据。如果发现目标无法响应,说明目标可能存在溢出区漏洞。经过多次测试验证,就可以判断漏洞出现的位置。然后通过手工执行验证,代码审核、反编译等方式,就可以找出漏洞具体触发机制,从而加以利用。
- ohrwurm
一个迷你的对RTP的fuzz工具,主要针对SIP通信的fuzz
- Wfuzz
针对WEB应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入、xss漏洞的测试等。所有功能依赖于字典。
wfuzz基于一个非常简单的概念:它用一个给定的payload来替换相应的FUZZ关键词的值,我们称FUZZ这样的关键词为占位符。一个wfuzz中的payload就是一个输入的源。
- XSSer
XSSer专门针对XSS漏洞,主要是对一个页面或点进行xss测试,判断是否有XSS的漏洞。
依旧使用metasploitable2-linux自带的DVWA为例,点击 XSS reflected进行设置,并复制cookie值。
XSSer参数较多,请使用(--help)查看。XSSer使用起来不是那么简单方便,但可以作为第三方调用,在脚本中借助XSSer可以完成一系列的测试,会让代码对网站的测试更高效。