教材学习内容总结
第十一章:Web应用程序安全攻防
Web应用体系结构
- 浏览器:如IE、Firefox、Chrome等。使用HTTP/HTTPS协议、HTML语言和Web服务器进行交互
- Web服务器:HTTP守护程序,接受Web客户端对资源的请求。
- Web应用程序:三层体系结构,表示层、业务逻辑层、数据层。
- 数据库:Web应用存储数据的地方
- 传输协议HTTP/HTTPS:超文本传输协议,默认使用TCP80端口
Web应用安全威胁
- 针对浏览器和终端用户的Web浏览安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- Web服务器软件安全威胁
- Web应用程序安全威胁
- Web数据安全威胁
Web应用安全攻防技术
- 手工审查Web应用程序结构与源代码:静态与动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串。
- 自动下载与镜像Web站点页面:采用现成的工具高效地完成之前的信息收集。
- 使用Google Hacking技术审查与探测Web应用程序
- Web应用程序安全评估与漏洞探测:常常需要一些Web应用程序分析、安全评估和漏洞探测工具来提供辅助。辅助分析工具主要有:浏览器插件、免费工具集和商业Web应用安全评估系统和漏洞扫描器。
攻击Web服务器软件
- 数据驱动的远程代码执行安全漏洞
- 服务器功能扩展功能模块漏洞
- 样本文件安全漏洞
- 源代码泄露
- 资源解析攻击
攻击Web应用程序
- 针对认证机制的攻击
- 授权机制的攻击
- 客户端攻击
- 命令执行攻击
- 信息暴露
- 逻辑攻击。
攻击Web数据内容
- 安全敏感数据泄露
- 网站篡改
- 不良信息内容上传
Web应用安全防范措施
- Web站点网络传输安全
- Web站点操作系统及服务安全
- Web应用程序安全
- Web站点数据安全设防
SQL注入
SQL注入是利用Web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。被攻击的漏洞被称为SQL注入漏洞。其原理是向Web应用程序提供的用户输入接口输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,是的注入代码得以执行完成非预期的攻击操作行为。
攻击步骤:
- 发现SQL注入点
- 判断后台数据库类型
- 后台数据库中管理员用户口令字猜解
- 上传ASP后门和得到默认账户权限
- 本地权限提升
- 利用数据库扩展存储过程执行Shell命令
SQL注入攻击工具
- Wposion、wieliekoek.pl、SPIKE Proxy、SPI Toolkit等等。
XSS跨站脚本攻击
与代码注入类似,XSS攻击的根源同样是Web应用程序对用户输入内容的安全验证与过滤不够完善。然而,XSS攻击的最终目标并非Web服务器,Web服务器上的应用程序在XSS攻击场景中发挥的角色是“帮凶”,而真正的受害者是访问这些Web服务器的其他用户。
攻击者利用Web应用程序中的安全漏洞,在服务器端网页中插入一些恶意的客户端脚本代码,在Web服务器上产生出一些恶意攻击页面,由此当其他用户访问这些页面时就会发生攻击行为。
XSS攻击主要分为:
- 持久性XSS漏洞,最为严重
- 非持久性XSS漏洞:最为普遍
防范措施:
-
服务器端
- 输入验证、
- 输出净化
- 消除危险的输入点
-
客户端
- 提高浏览器访问非受信网站的安全等级
- 关闭Cookie功能
- 设置Cookie只读
Web浏览器安全攻防
网页木马
是Web浏览器的渗透攻击威胁,它是从恶意网页脚本所孕育和发展出来的。其发展和流行的驱动力是黑客地下经济链,其存在的基础是Web浏览器安全漏洞。从本质上来说,网页木马是利用了现代Web浏览器软件中所支持的客户端脚本执行能力,针对Web浏览端软件安全漏洞实施客户端渗透攻击,从而取得在客户端主机的远程代码执行权限来植入恶意程序。
- 网页挂马机制主要有:
- 内嵌HTML标签
- 恶意Script脚本
- 内嵌对象链接
- ARP欺骗挂马
检测与分析网页木马技术主要有:
- 基于特征码匹配的传统监测方法
- 基于统计与机器学习的静态分析方法
- 基于动态行为结果判定的监测分析方法
- 基于模拟浏览器环境的动态分析监测方法
网络钓鱼
是社会工程学在互联网中广泛实施的一种典型攻击方式,通过大量发送声称来自于银行或其他知名机构的欺骗性垃圾邮件,意图引诱收信人给出个人敏感信息。
视频学习内容总结
数据库评估
1.BBQsql
BBQsql是一个python编写的盲注工具(blind SQl injection framework),当检测可疑的注入漏洞时会很有用,同时是一个半自动工具,允许客户自定义参数。
2.DBPwAudit(数据库用户名密码枚举工具)
3.HexorBase(图形化的密码破解与连接工具,开源)
4.Jsql Injection
Jsql是一款轻量级安全测试工具,可以检测SQL注入漏洞,跨平台(WIndows、Linux、MAC OS X,Solaris),开源且免费。将存在注入漏洞的URL贴进来即可进行响应的漏洞利用。图形化界面比较亲民,使用效果有待改善。
5.MDBTools
它包括MDB-Export、MDB-Dump、mdb-parsecsv,mdb-sql,mdb-tables等子工具。
6.Oracle Scanner
Oscanner是一个用Java开发的Oracle评估工具。基于插件的结构,当前由两个插件可以做:
- Sid列举
- 口令测试
- 列举Oracle版本
- 列举账号角色
- 列举账号特权
- 列举账号哈希
- 列举审计信息
- 列举口令策略
- 列举数据库链接
7.SIDGusser
同样是针对Oracle的SID进行暴力枚举的工具,SID为Oracle的实例名,Oracle连接字符串,通过实例名+用户+密码连接。
8.SqlDICT:又一个用户名密码枚举工具,通过Wine运行。
数据库评估
1.tnscmd10g:允许向Oracle数据库注入命令
2.Sqlsus
是一款开放源代码的MySQL注入和接管工具,使用Perl编写,基于命令行界面,可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行Web站点可写目录,上传和控制后门,克隆数据库等等。注射获取数据速度非常快,另一个最大的特点是自动搜索可写目录。
3.Sqlninja
在SQL注入方面一直尊sqlmap为神器,但Sqlninja也有自己的特点。
也是用Perl编写的一门针对Microsoft SQL Server的sql注入工具,侧重于获得一个shell。
可找到远程SQL服务器的标志与特征(版本、用户执行的查询、用户特权、xp_cmdshell的可用性、身份特征模式等)
4.sqlmap
SQLmap是一个开源的渗透测试工具,主要用于自动化侦测和实施SQL注入攻击以及渗透数据库服务器。
具有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不用数据库的指纹信息,还可以从数据库中提取数据,还能够处理潜在的文件系统以及通过带外数据库连接执行系统命令等。
Web应用代理
1.Burp Suite
用于攻击web应用程序的集成平台。
Burp Suite带有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截取并修改客户端到web应用程序的数据包。
2.OwaspZAP :查找网页应用程序漏洞的综合类渗透测试工具。
它包含了拦截代理、自动代理、被动处理、暴力破解、端口扫描、蜘蛛搜索。
3.Paros
对web应用程序的漏洞进行评估的代理程序,基于java.
检查漏洞形式:SQL注入、跨站点脚本攻击、目录遍历。
Fuzz工具(模糊测试)
1.Bed.pl(Bruteforce Exploit Detector)
纯文本协议的Fuzz工具,可以检测 缓冲区溢出、格式串漏洞、整数溢出等漏洞。
2.Fuzz_ipv6
THC出品的针对IPV6协议的模糊测试工具
3.Ohrwurm
small and simple RTP fuzzer.
测试少量的SIP手机
学习进度条
完成教材第10、11章
Kali视频16-20