2017-2018-2 20179223《网络攻防技术》第五周作业

第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视频教程

1.1 漏洞分析之数据库评估(一)

1.1.1 BBQSql

BBQSql是一个Python编写的盲注工具(blind SQL in jection framework),当检测可疑的注入漏洞时会很有用。同时BBQSql是一个半自动工具,允许客户自定义参数。

1.1.2 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(字典)

1.1.3 HexorBase

图形化的密码破解与连接工具,开源

1.1.4 jsql

jSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(windows,linux,Mac OS X,Solaris)、开源且免费。将存在注入漏洞的URL贴进来即可进行相应的漏洞利用。

1.1.5 MDBTools

包括MDB-Export(Export data in an MDB database table to CVS format),以及MDB-Dump,mdb-prasecvs,mdb-sql,mdb-table等子工具,具体环境具体使用。

1.1.6 Oracle Scanner

Oscanner是一个用Java开发的oracle评估工具。它是基于插件的结构,当前由两个插件可以实现的功能有:

Sid列举

口令测试

列举Oracle版本

列举账号角色

列举账号特权

列举账号哈希

列举审计信息

列举口令策略

列举数据库链接

1.1.7 SIDGuess

是针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。

1.1.8 SqlDICT:用户名密码枚举工具,通过Wine运行

1.2 漏洞分析之数据库评估(二)

1.2.1 tnscmd10g

允许我们向Oracle数据库中注入命令

1.2.2 Sqlsus

sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,另一个最大的特点就是自动搜索可写目录。

生成配置文件

编辑配置文件
修改 our $url_start = "":写入地址

启动并且测试
sqlsys test.conf
获取数据库数据

查看全部数据库名字

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

1.2.3 Sqlninja

在sql注入方面一直尊sqlmap为神奇,但sqlninja也有自己的特点。
Sqlninja是一款perl编写的一个专门针对Microsoft SQL.Server的sql注入工具,它侧重于获得一个shell。
sqlninja的优点如下:

一个专门针对Microsoft SQL.Server的sql注入工具

可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp-cmdshell的可用性、身份验证模式等)

“sa”口令的强力攻击

如果找到口令后,就将特权提升为“sa”

如果原始的xp——cmdshell被禁用后,就创建一个定制的xp_shell

使用纯粹的ASCII GET/POST请求来上载netcat.exe程序(以及其他任何可执行的程序),因此并不需要FTP连接。

为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描。

逃避技术,这是为了使注入式代码“模糊”不清,并且混淆/绕过基于签名的IPS和应用层防火墙。

采用“盲目执行”攻击模式,在其他模式失效时,可以用于发布命令并执行诊断。

在sqlninja生成的SQL代码上,执行的是自动化的URL编码,这使得用户可以更精细地控制漏洞利用的字符串。

如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。

sqlninja的参数很少

-m 指定攻击模式,有以下几个

t/test 测试连接是否是注入点

f/fingerprint 指纹识别,判断用户,数据库,xp_cmdshell是否能用等等

b/bruteforce 暴力破解sa密码,可以-w指定字典,也可以不适用字典,这样sqlninja就会自己穷举

e/escalation 提权用,必须用-p指定sa的password,成功就会把当前数据库用户加入到sa组里面

x/resurrectxp 尝试恢复xp_cmdshell

u/upload 使用get和post上传二进制文件,-p可以指定sa的password,-g表示只生成上传文件,但并不上传

s/dirshell 获取目标主机的shell

k/backscan 查看开放的目标端口

r/revshell 反弹会一个shell,和dirshell相反

d/dnstunnel 指定使用dns作为传输通道,可用-p可以指定sa的password,为什么有这个模式,因为可能服务器连接icmp都禁止。同样,想要使用这个模式得先用upload模式上传dnstun.exe

i/icmpshell 当dirshell和revshell都失败的情况下,可以用这个模式把shell藏在icmp里,但是先要上传icmpsh.exe

-f<file> 指定配置文件,sqlninja没有类似sqlmap的“-u”参数,注入网址是写在配置文件里的,默认是sqlninja.conf

1.2.4 Sqlmap

Sqlmap是一个开源的渗透测试工具,它主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器。Sqlmap配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,哈可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。

1.3 漏洞分析之Web应用代理

通过web应用代理工具分析数据包,或修改数据包重放、暴力攻击等在WEB安全测试中经常用到。

web应用代理工具有:burpsuite、owasp-zap、paros、vega、webscarab、proxystrike

1.3.1 Burp Suite

Burp Suite是用于攻击web应用程序的集成平台。Burp Suite带有一个代理,通过默认端口8080运行,使用这个代理,可以截获并修改从客户端到web应用程序的数据包。

1.3.2 OwaspZAP

OWASP Zed Attack Proxy Project攻击代理(简称ZAP),是一款查找网页应用程序漏洞的综合类渗透测试工具。它包含了拦截代理、自动处理、被动处理、暴力破解、端口扫描以及蜘蛛搜索等功能。OwaspZAP为会话类调试工具,调试功能对网站不会发起大量请求,对服务器影响较小。

1.3.3 Paros

paros proxy,这是一个对web应用程序的漏洞进行评估的代理程序,即一个基于Java的web代理程序,可以评估web应用程序的漏洞。它支持动态的编辑/查看HTTP/HTTPS,从而改变cookies和表单字段等项目。它包括一个web通信记录程序,web圈套程序(spider),hash计算机,还有一个可以测试常见的web应用程序攻击的扫描器。该工具检查漏洞形式包括:SQL注入、跨站点脚本攻击、目录遍历等。

1.3.4 proxystrike

1.3.5 Vega代理功能

Vega是一个开放源代码的web应用程序安全测试平台,Vega能够帮助你验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用Java编写,有GUI。

1.3.6 Webscarab

Webscarab一款代理软件,包括HTTP代理,网络爬行、网络蜘蛛、会话ID分析,自动脚本接口,模糊测试工具,WEB格式的编码/解码,WEB服
务描述语言和SOAP解析器等功能模块。Webscarab基于GNU协议,使用Java编写,是WebGoat中所使用的工具之一。

1.4 漏洞分析之BurpSuite

BurpSuite是一个web应用程序集成攻击平台,它包含了一系列burp工具,这些工具之间有大量接口可以互相通信,这样设计的目的是为了促进和提高整个攻击的效率。平台中所有工具共享同一robust框架,以便同意处理HTTP请求,持久性,认证,上游代理,日志记录,报警和可扩展性。

BurpSuite允许攻击者结合手工和自动技术去枚举、分析、攻击web应用程序。这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础供另一种工具使用的方式发起攻击。

Porxy提供一个直观、友好的用户界面,他的代理服务器包含非常详细的拦截规则,并能准确分析HTTP消息的结构与内容。

Spider爬行蜘蛛工具,可以用来抓取目标网站,以现实网站的内容,基本结构和其他功能。

步骤:
1)配置端口
2)爬虫与扫描
3)测试暴力破解表单账户密码

1.5 漏洞分析之Fuzz工具

Fuzz是模糊测试工具

1.5.1 Bed.pl

Bed(Bruteforce Exploit Detector)是一个纯文本协议的Fuzz工具,能够哦检查常见的漏洞,如缓冲区溢出,格式串漏洞,整体溢出等。

1.5.2 Fuzz_ipv6

THC出品的针对IPV6协议的模糊测试工具

1.5.3 Ohrwurm

1.5.4 PowerFuzzer

1.5.5 Wfuzz

针对web应用的模糊测试工具,可以进行web应用暴力猜解,也支持对网站目录、登录信息、应用资源文件等的暴力猜解,还可以进行get及post参数的猜解,sql注入,xss漏洞的测试等,该工具所有功能都依赖于字典。

1.5.6 SFuzz

1.5.7 XSSer

视频学习遇到的问题及解决

视频内容我主要是了解了WEB数据库评估的工具和WEB应用代理。只要是实践了视频19中Burp Suite的应用

问题1:Burp Suite中proxy>option按视频中介绍的方法并不起作用

解决:我修改了配置参数

这样虽然比较乱,但是显示出了抓取的信息。

原文地址:https://www.cnblogs.com/9223lx/p/8729380.html