第11、12章 Web应用程序和浏览器安全攻防
第十一章.WEB应用程序安全攻防
一、应用程序结构及安全威胁
浏览器作为"瘦"客户端主要完成数据显示展示内容的渲染功能,而由强大的“胖”服务器负责完成主要业务的计算处理,两者之间通过因特网或内联网上的HTTP/HTTPS应用层协议的请求与应答进行通信。“胖”服务器端则由WEB服务器软件、Web应用程序及后端数据库构成,并通过经典的三层架构,即表示层、业务逻辑和数据层,来进行组织和构建。
安全威胁如下:
- 针对浏览器和终端用户的Web浏览安全威胁
- 针对传输网络的网络协议安全威胁
- 系统层安全威胁
- Web服务器软件安全威胁
- Web应用程序安全威胁
- Web数据安全威胁
二、Web应用安全攻防技术
与系统和网络攻击类似,针对Web应用的攻击也需要首先进行信息情报的收集,对目标WEB应用服务进行发现与剖析,标识出他的基本轮廓,具体包括服务器域名、IP地址和虚拟IP地址,web服务器端口与其他开放服务,WEB站点类型和版本,WEB应用程序类型与版本,以及WEB服务器和web应用程序中存在的安全漏洞信息等。
- 收集WEB信息
手工收集:静态和动态生成的页面、目录结构、辅助性文件、输入表单、查询参数字符串
自动下载web站点页面
使用Google Hacking(最高效的审查与探测方法)技术审查与探测WEB应用程序
GHDB--一个信息收集项目[http://www.hackersforcharity.org/ghdb/](http://www.hackersforcharity.org/ghdb/)
web应用程序安全评估与漏洞探测
安全辅助分析工具:浏览器插件、免费工具集、商业web应用安全评估系统和漏洞扫描器
- 攻击WEB服务器软件
web服务器软件是web应用的承载体,也是攻击者的首要目标之一。web服务器平台中的安全漏洞主要有以下几个方面(1)数据驱动的远程代码执行安全漏洞(2)服务器功能扩展模块漏洞(3)样本文件安全漏洞(4)源代码泄露(5)资源解析攻击
- 攻击WEB应用程序
目前安全最薄弱。web应用程序安全从攻击技术角度分为六类:(1)针对认证机制的攻击(2)授权机制的攻击(3)客户端攻击(4)命令执行攻击(5)信息暴露(6)逻辑攻击
- 攻击WEB数据内容
包括(1)安全敏感数据泄漏(2)网站篡改(3)不良信息内容上传
- WEB应用安全防范措施
(1)WEB站点网络传输安全设防措施(2)WEB站点操作系统及服务安全(3)WEB应用程序安全设防措施(4)WEB站点数据安全设防措施
三、SQL注入
- 原理
利用web应用程序数据层存在的输入验证不完善型安全漏洞实施的一类代码注入攻击技术。SQL注入攻击的原理是WEB应用程序提供的用户输入接口(如一个动态页面的输入参数、变淡的输入框等)输入一段精心构造的SQL查询命令,攻击和利用不完善的输入验证机制,是的注入代码得以执行完成非预期的攻击操作行为。
- SQL注入攻击步骤和过程
(1)发现SQL注入点(2)判断后台数据库类型(3)后台数据库众管理员用户口令字猜测(4)上传ASP后门,得到默认账户权限(5)本地权限提升(6)利用数据库扩展存储过程执行shell命令
- SQL注入攻击工具
http://www.cis.syr.edu/~wedu/seed/Labs/Attacks_SQL_Injection/SQL_Injection.pdf
- SQL注入攻击防范措施
(1)使用类型安全的参数编码机制(2)凡是来自外部的用户输入,必须进行完备检查(3)将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象(4)加强SQL数据库服务器的配置连接。
四、XSS跨站脚本攻击
XSS跨站脚本攻击的最终目标是使用web应用程序的用户。XSS攻击的根源同样是WEB应用程序对用户输入内容的安全验证与过滤不够完善。现有两种主要的XSS漏洞类型,持久性XSS漏洞和非持久性XSS漏洞。对XSS的防范措施可以分为服务器端和客户端。服务器端防范措施包括输入验证、输出净化、消除危险的输入点。
第十二章 Web浏览器安全攻防
Web浏览器几次战争及浏览器的技术发展及其安全威胁,Web浏览器的渗透攻击威胁。
网页木马的机理分析和本质核心,及网页木马的检测与分析技术,包括(1)基于特征码匹配的传统检测方法(2)基于统计与机器学习的静态分析方法(3)基于动态行为结果判定的监测分析方法(4)基于模拟浏览器环境的动态分析监测方法(5)网页木马监测分析技术综合对比。
了解了网络钓鱼的技术内幕和攻击。
视频学习内容
了解kali下漏洞分析工具数据库评估工具的使用
- BBQSql是一个python编写的盲注工具,当检测可疑的注入漏洞时很有用。是一个半自动工具,允许用户自定义参数。可以导出导入参数,针对存在漏洞的点进行修改的参数
启动会发生如下错误,不得其解··
然后重试
成功,之后再打开又错误。。
正常情况下的话:键入“1”,是进行ttp设置;键入“3”,是进行URL设置;键入“url”输入URL
- DBPwAudio 数据库用户名密码枚举工具
破解SQLServer数据库root@localhost:~# dbpwaudit -s IP -d master(数据库名) -D mssql(数据库类型) -U username(字典) -P password (字典)
破解MySQL数据库root@localhost:~# dbpwaudit.sh -s IP -d mysql(数据库名称) -D MySQL(数据库类型) -U username(字典) -P password(字典)
- HexorBase 图形化的密码破解与连接工具,开源。连接并控制数据库,执行一些语句等等。
支持暴力枚举,四个数据库
- jsql (java编写)轻量级安全测试工具,可以检测SQL注入漏洞。跨平台、开源且免费将存在注入漏洞的URL贴进来即可进行相应的漏洞利用,但是可能出现URL不能正常识别的问题
- mdbTools
包括MDB-Dump、mdb-parsecsv、mdb-sql、mdb-tables等
- oracle Scanner (java开发,基于插件的结构)
可sid列举、口令测试、列举Oracle版本、列举账号角色、账号特权、账号哈希、审计信息,列举口令策略、数据库链接。
- SIDguesser
针对Oracle的SID进行暴力枚举,SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接
- SQLdict
用户名密码枚举工具,windows下的程序,用wine模拟
-Sqlsus (kali中启动失败)
是一个开放源代码的MySQL注入和接替工具,使用perl编写,基于命令行界面,可以获取数据库结构,注入自己的SQL语句,从服务器下载文件,爬行WEB站点可写目录,上传和控制后门,克隆数据库。最好用的两点就是注射获取数据速度非常快,另外一个就是自动搜索可写目录。
root@localhost:~# sqlsus
root@localhost:~# sqlsus -g test.conf(-g 生成一个文件)
root@localhost:~# vi test.conf(编辑文件)
our $url_start=""中插入注入点的语句
our $url_end=""添加“#”
our $post=""...等
root@localhost:~# sqlsus (启动并测试)
查看全部数据库名字
sqlsus>get database
[+]Getting databases names
设定数据库
sqlsus> set database
database="sql"
sqlsus> set database mysql
database="mysql"
sqlsus>
获取表
sqlsus> get tables
[user:5]
host
user
Password
- Sqlninja
Perl编写的一个专门针对Microsoft SQL Server的sql注入工具。侧重于获得一个shell,
可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp_cmdshell的可用性、身份验证模式等)
“sa”口令的强力攻击,
原始 xp_cmdshell被禁用后,就创建一个定制的xp_cmdshell,
使用纯粹的ASCII GET/POST请求来上载netcat.exe程序,不需要FTP连接,
为了找到目标网络的防火墙所允许端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描,
逃避技术,
盲目执行攻击模式,
如果得到权限为sa,结合msf进一步对目标主机进行渗透。
- Sqlmap (没有启动)被称为注入神器。开源渗透测试工具,Python编写,主要用于自动化的侦测和实施SQL注入攻击以及渗透数据库服务器。SQLmap配有强大的侦测引擎,是用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,还可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。
SQLMap还有很多其他的功能,比如:绕过WAF的tamper,修改UA的random-agent等。
Kali漏洞分析之Web应用代理
用自己的设备链接web应用代理,它会提供一个接口,连接ip和接口号即可。
- Burp Suite
用于攻击web应用程序的集成平台,它有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包。
有很多工具,可以互相转发数据包,保证了良好的通信。允许攻击者结合手工和自动技术进行枚举、分析、攻击WEB程序
-
OWASP ZAP
-
Paros
是一个对web应用程序的漏洞进行评估的代理程序,是一个基于Java的web代理程序,可以评估web应用程序的漏洞。
- VEGA 也可用于进行web代理。
Kali漏洞分析之FUZZ工具集
- Bed.pl
一个纯文本协议的Fuzz工具,能够检查常见漏洞,如缓冲区溢出、格式串漏洞、整数溢出等
- fuzz ipv6 THC出品,针对IPV6协议的模糊测试工具
-
Ohrwarm 迷你,对RTP的fuzz工具
-
POWERFUZZER 图形化界面的FUZZ工具,可以抓包
-
Wfuzz
针对WEB应用的模糊测试工具,可以进行webingyong暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解。参数中“FUZZ”相当于一个变量,用字典中的字段来替换它完成猜解。也是漏洞扫描常用工具
- sfuzz(simple-fuzz)针对不同协议的扫描。
- xsser
可以加一个图形化界面,也可直接用shell。对页面或一个点进行XSS测试,看是否有xss漏洞。
视频学习遇到的问题及解决
视频内容我主要是了解了WEB数据库评估的工具和WEB应用代理。只要是实践了视频19中Burp Suite的应用
问题1:Burp Suite中proxy>option按视频中介绍的方法并不起作用
解决:我修改了配置参数
这样虽然比较乱,但是显示出了抓取的信息。
proxy提供一个直观、友好的用户界面,它的代理服务器包含详细的拦截规则,并能准确分析HTTP消息的结构与内容。
Spide爬行蜘蛛工具,用来抓取目标网站,以显示网站的内容、基本结构等
Scanner Web 应用程序的安全漏洞基尼选哪个自动发现,用于程序渗透测试
Repeater可以手动重新发送单个HTTP请求
Intruder提供一组特别有用的功能,可以自动实施各种定制攻击,包括资源枚举、数据提取、模糊测试等常见漏洞。能最细化、最简单的访问它生产的请求与响应、
Sequencer对会话令牌、会话标识符或出于其它安全原因需要随机产生的键值的可预测性进行分析
Decoder转化成会犯的形式编码数据,或转换成各种形式编码和三列的原始数据。能智能识别多种编码格式。
Comparer执行比较数据之间的任何两个项目。
本周学习总结
视频内容工具使用需要在练习中提升熟练程度。
评分标准:
-
正确使用Markdown语法(加1分):
- 不使用Markdown不加分
- 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
- 排版混乱的不加分
-
模板中的要素齐全(加1分)
- 缺少“教材学习中的问题和解决过程”的不加分
- 缺少“代码调试中的问题和解决过程”的不加分
- 缺少“结对及互评”的不能打开的不加分
- 缺少“上周考试错题总结”的不能加分
- 缺少“进度条”的不能加分
- 缺少“参考资料”的不能加分
-
教材学习中的问题和解决过程, 一个问题加1分
-
Kali视频中工具有实践的加1分
5 其他加分:- 周五前发博客的加1分
- 感想,体会不假大空的加1分
- 排版精美的加一分
- 进度条中记录学习时间与改进情况的加1分
- 有动手写新代码的加1分
- 错题学习深入的加1分
6 扣分: - 有抄袭的扣至0分
- 代码作弊的扣至0分