第五周
第1节 教材学习内容总结
1.Web应用程序安全攻防
web应用体系结构及其安全威胁
web应用体系结构
“瘦”客户端:浏览器,完成数据显示与展示内容的渲染功能;
“胖”服务器:web服务器软件、web应用程序、后端数据库。
通过经典三层架构:表示层、业务逻辑层和数据层来组织和构建。
> 传输协议HTTP/HTTPS:
1)超文本传输协议HTTP无状态、ASCII码明文传输、运行于众所周知的TCP80端口。特点:简单、流行、易受攻击。
2)加密传输的HTTPS协议,使用SSL/TLS隧道技术,采用多种认证协议实现对用户身份的人认证与控制。
> WEB应用安全威胁
1)针对浏览器和终端用户的WEB浏览安全威胁:以浏览器渗透攻击为核心的网页木马、网站钓鱼。
2)针对传输网络的网络协议安全威胁:针对HTTP明文传输的敏感信息监听、假冒身份攻击、拒绝服务攻击等。
3)系统层安全威胁:远程渗透攻击和本地渗透攻击温威胁。
4)WEB服务器软件安全威胁:利用漏洞实施渗透攻击、获取敏感信息。
5)WEB数据安全威胁:窃取、篡改、输入不良信息。
1.2 Web应用程序安全攻防技术概述
> 信息收集内容包括:
服务器域名
ip地址和虚拟ip地址
web服务器端口与其他开放服务
web站点类型和版本
web应用程序类型和版本
web服务器和web应用程序中存在的安全漏洞信息
> 方式包括:
手工审查web应用程序结构与源代码
自动下载与镜像web站点页面:lynx、wget、teleportpro、offline explorer等web站点镜像软件。
使用google hacking技术审查与探测web应用程序
web应用程序安全评估与漏洞探测:浏览器插件、免费工具集、商业web应用安全评估系统和漏洞扫描器。
Web服务器平台安全漏洞:
数据驱动的远程代码执行安全漏洞
服务器功能拓展模块漏洞
样本文件安全漏洞
源代码泄露
资源解析攻击
Web应用程序安全威胁从攻击者技术角度分为如下六类:
针对认证机制攻击
授权机制攻击
客户端攻击
命令执行攻击
信息暴露
逻辑攻击
最流行的的两类Web应用程序安全漏洞及攻击技术:SQL注入和XSS跨站脚本。
攻击Web数据内容:安全敏感数据泄露、网站内容遭到篡改以及不良信息内容上传威胁。
1.3 SQL注入
利用web应用程序的输入验证不完善漏洞,使得web应用程序执行由攻击者所注入的恶意指令和代码,造成敏感信息泄露、权限提升或对系统的未授权访问等危害后果。
> SQL注入攻击步骤:
发现SQL注入点
判断后台数据库类型
后台数据库中管理员用户口令字猜解
上传ASP后门,得到默认账户权限
本地权限提升
利用数据库扩展存储过程执行Shell命令
> SQL注入攻击工具:
>
Wposion 能在动态web文档中找出SQL注入漏洞
wieliekoek.pl 以网站镜像工具生成的输入为输出,对表单页面注入字符串修改
SPIKE Proxy 对待注入的字符串进行定制
SPI Toolkit工具包
本节还举了两个攻击示例。
SQL注入攻击防范:
使用类型安全的参数编码机制
完备检查来自外部的用户输入
将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象
加强SQL数据库服务器的配置与连接
第2节 kali视频(16-20)学习
16.漏洞分析之数据库评估(一)
BBQSql
BBQSql是一个Python编写的盲注工具(blind SQL in jection framework),当检测可疑的注入漏洞时会很有用。同时BBQSql是一个半自动工具,允许客户自定义参数。
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(字典)
HexorBase
图形化的密码破解与连接工具,开源。
jsql
jSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(windows,linux,Mac OS X,Solaris)、开源且免费。将存在注入漏洞的URL贴进来即可进行相应的漏洞利用。
MDBTools
包括MDB-Export(Export data in an MDB database table to CVS format),以及MDB-Dump,mdb-prasecvs,mdb-sql,mdb-table等子工具,具体环境具体使用。
Oracle Scanner
Oscanner是一个用Java开发的oracle评估工具。它是基于插件的结构,当前由两个插件可以实现的功能有:
Sid列举
口令测试
列举Oracle版本
列举账号角色
列举账号特权
列举账号哈希
列举审计信息
列举口令策略
列举数据库链接
SIDGuesser
是针对Oracle的SID进行暴力枚举的工具。SID为Oracle实例名,Oracle连接字符串,通过实例名+用户+密码连接。
SqlDICT:用户名密码枚举工具,通过Wine运行
17.漏洞分析之数据库评估(二)
tnscmd10g
允许我们向Oracle数据库中注入命令
Sqlsus
sqlsus是一个开放源代码的MySQL注入和接管工具,sqlsus使用perl编写,基于命令行界面。sqlsus可以获取数据库结构,注入你自己的SQL语句,从服务器下载文件,爬行web站点可写目录,上传和控制后门,克隆数据库等等。最好用的两点就是注射获取数据速度非常快,另一个最大的特点就是自动搜索可写目录。
生成配置文件
编辑配置文件
修改 our $url_start = "":写入地址
启动并且测试`sqlsus test.conf`
获取数据库数据
查看全部数据库名字
sqlsus > get database
Sqlninja
在sql注入方面一直尊sqlmap为神奇,但sqlninja也有自己的特点。Sqlninja是一款perl编写的一个专门针对Microsoft SQL.Server的sql注入工具,它侧重于获得一个shell。
sqlninja的优点如下:
1)一个专门针对Microsoft SQL.Server的sql注入工具
2)可找到远程SQL服务器的标志和特征(版本、用户执行的查询、用户特权、xp-cmdshell的可用性、身份验证模式等)
3)“sa”口令的强力攻击
4)如果找到口令后,就将特权提升为“sa”
5)如果原始的xp——cmdshell被禁用后,就创建一个定制的xp_shell
6)使用纯粹的ASCII GET/POST请求来上载netcat.exe程序(以及其他任何可执行的程序),因此并不需要FTP连接。
7)为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL服务器的TCP/UDP端口扫描。
8)逃避技术,这是为了使注入式代码“模糊”不清,并且混淆/绕过基于签名的IPS和应用层防火墙。
9)采用“盲目执行”攻击模式,在其他模式失效时,可以用于发布命令并执行诊断。
10)在sqlninja生成的SQL代码上,执行的是自动化的URL编码,这使得用户可以更精细地控制漏洞利用的字符串。
11)如果得到权限为sa,可以结合msf进一步对目标主机进行渗透。
sqlninja的参数很少
>
> -m 指定攻击模式,有以下几个
1)t/test 测试连接是否是注入点
2)f/fingerprint 指纹识别,判断用户,数据库,xp_cmdshell是否能用等等
3)b/bruteforce 暴力破解sa密码,可以-w指定字典,也可以不适用字典,这样sqlninja就会自己穷举
4)e/escalation 提权用,必须用-p指定sa的password,成功就会把当前数据库用户加入到sa组里面
5)x/resurrectxp 尝试恢复xp_cmdshell
6)u/upload 使用get和post上传二进制文件,-p可以指定sa的password,-g表示只生成上传文件,但并不上传
7)s/dirshell 获取目标主机的shell
8)k/backscan 查看开放的目标端口
9)r/revshell 反弹会一个shell,和dirshell相反
10)d/dnstunnel 指定使用dns作为传输通道,可用-p可以指定sa的password,为什么有这个模式,因为可能服务器连接icmp都禁止。同样,想要使用这个模式得先用upload模式上传dnstun.exe
11)i/icmpshell 当dirshell和revshell都失败的情况下,可以用这个模式把shell藏在icmp里,但是先要上传icmpsh.exe
12)-f<file> 指定配置文件,sqlninja没有类似sqlmap的“-u”参数,注入网址是写在配置文件里的,默认是sqlninja.conf
> Sqlmap
Sqlmap是一个开源的渗透测试工具,它主要用于自动化地侦测和实施SQL注入攻击以及渗透数据库服务器****。Sqlmap配有强大的侦测引擎,适用于高级渗透测试用户,不仅可以获得不同数据库的指纹信息,哈可以从数据库中提取数据,此外还能够处理潜在的文件系统以及通过带外数据连接执行系统命令等。