Web安全原理剖析(五)——时间注入攻击


二、SQL注入进阶

2.1 时间注入攻击

  时间注入攻击的测试地址:http://127.0.0.1/sqli/time.php?id=1.

  访问该网站时,页面返回yes,在网址的后面加上一个单引号,再次访问,页面返回no。这个结果与Boolean注入非常相似,这里介绍另一种注入方法——时间盲注。它与Boolean注入的不同之处在于,时间注入是利用sleep()或benchmark()等函数让MySQL的执行时间变长。时间盲注多与IF(expr1,expr2,expr3)结合使用,次if语句含义是:如果expr1是TRUE,则IF()的返回值为expr2;否则返回值则为expr3.所以判断数据库库名长度的语句应为:

' and if(length(database())>1,sleep(5),1)--+

  上面这行语句的意思是,如果数据库库名长度大于1,则MySQL查询休眠5秒,否则查询1。

  而查询1的结果,大约只有几十毫秒,根据Burp Suite中页面的响应时间,可以判断条件是否正确,结果如图34所示。


图34 利用时间盲注执行sleep()

  可以看出,页面的响应时间是5043毫秒,表明页面成功执行了sleep(5),所以长度是大于1的,我们尝试将判断数据库库名语句中的长度改为10,结果如图35所示。


图35 利用时间盲注判断数据库库名长度

  可以看出,执行的时间是16毫秒,表明该页面没有执行sleep(5),而是执行了select 1,所以数据库的库名长度大于10是错误的。通过多次测试,皆可以得到数据库库名的长度。得出数据库库名长度后,我们开始查询数据库库名的第一位字母。查询语句和Boolean盲注的类似,使用substr函数,这时的语句应修改为:

' and if(substr(database(),1,1)='t',sleep(5),1)--+

  结果如图36所示。


图36 利用时间盲注获取数据库名

  可以看出,程序延迟了5秒才返回,说明数据库库名的第一位字母是t,以此类推即可得出完整的数据库的库名、表名、字段名和具体数据。

  我们也可以使用Burp进行爆破,结果如图37所示。


图37 利用Burp爆破数据库库名

2.2 时间注入代码分析

  在时间注入页面中,程序获取GET参数ID,通过preg_match判断参数ID中是否存在Union等危险字符,然后将参数ID拼接到SQL语句中。从数据库中查询SQL语句,如果有结果,则返回yes,否则返回no。当访问该页面时,代码根据数据库查询结果返回yes或no,而不是返回数据库中的任何数据,所以在页面上智慧显示yes或no,和Boolean注入不同的是,此处没有过滤sleep等字符,代码如下所示。

<?php
$con=mysqli_connect("localhost","root","root","test");
// 检测连接
if (mysqli_connect_errno())
{
    echo "连接失败: " . mysqli_connect_error();
}

$id = @$_GET['id'];
if(preg_match("/union/i",$id))
{
    exit("<htm><body>no</body></html>");
}

$sql = "select * from users where `id`='".$id."'";

$result = mysqli_query($con,$sql);

if(!$result)
{
    exit("no");
}

$row = mysqli_fetch_array($result);

if ($row)
{
    exit("<htm><body>yes</body></html>");
}
else
{
    exit("<htm><body>no</body></html>");
}
?>

  此处仍然可以用Boolean盲注或其他注入方法,下面用时间注入演示。当访问id=1’ and if(ord(substring(user(),1,1))=114,sleep(3),1)--+时,执行的SQL语句为:

select * from users where `id`='1' and if(ord(substring(user(),1,1))=114,sleep(3),1)--+

  由于user()为root,root第一个字符‘r’的ASCII值是114,所以SQL语句中if条件成立,执行sleep(3),页面会延迟3秒,通过这种延迟即可判断SQL语句的执行结果。


  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
目录 第 1 部分拟研究技术专题 1.1《黑客攻防实战——web 漏洞挖掘与利用》图书 1.2 安天实战课题研究 2017 年第二期内网渗透技术题目 1.3 关于安天 365 线下和线下交流 1.4 已出版图书 第 2 部分技术研究文章 2.1 最新勒索软件 WannaCrypt 病毒感染前清除处理及加固 2.1.1 最重要的事情 2.1.2 病毒原始文件分析 2.1.3 杀毒方法 2.1.4 安全加固 2.1.5 安全提示 2.2Joomla!3.7.0 Core com_fields 组件 SQL 注入漏洞 2.2.1 漏洞简介 2.2.2 漏洞流程图 2.2.3 漏洞分析 2.2.4 补丁分析 2.2.5 总结 2.2.6 参考 2.3 从 mysql 注入到 getshell 2.3.1 系统基本信息获取 2.3.2 获取操作系统类型 2.3.3 获取注入点 2.3.4sqlmap 进行验证 2.3.5os-shell 系统命令执行 2.3.6 获取相关信息 2.3.7 寻找可写目录 2.3.8 写一句话木马 2.3.9 菜刀连接 2.3.10 相关命令不能使用解决 2.3.11 题外话 2.3.12 参考 2.4kali 渗透 windowsXP 过程 2.4.1 扫描端口 2.4.2 生成反弹 shellcode 2.4.3 修改 DNS 2.4.4 实施欺骗攻击 2.5 某系统由于 struct2 漏洞导致被完全攻陷 2.5.1 漏洞产生的原因 2.5.2 漏洞发现 2.5.3 漏洞利用 2.5.4 修复建议 2.6MSSQL sa 弱口令提权基础知识学习 2.6.1“扩展存储过程”中的 xp_cmdshell 2.6.2 利用 xp_cmdshell 存储过程添加账号 2.6.3OLE 相关存储过程添加账户 2.6.3xp_regread & xp_regwrite 克隆账号 2.6.4MSSQL 存储过程利用小结 2.6.5 安全防护 2.7SQL Server 2008 另类提权思路 2.7.1 生成反弹可执行文件 2.7.2 上传文件 2.7.3 运行反弹程序成功获取系统权限 2.7.4 获取服务器权限 2.8 信息收集之 SVN 源代码社工获取及渗透实战 2.8.1 公开源代码获取 2.8.2 社工查询获取密码 2.8.3 登录阿里云代码中心 2.8.4 获取其它开发用户的信息 2.8.5 下载获取源代码 2.8.6 后续渗透 2.8.7 总结 2.9 对某加密一句话 shell 的解密 2.9.1 源代码 2.9.2 源代码中用到的函数 2.9.3 获取 shell 密码 2.9.4 解密的另外一个思路 2.9.5 参考资料 2.10 渗透某网络诈骗网站总结 2.10.1 获取后台登陆地址 2.10.2 进入后台 2.10.3 分析网站源代码 2.10.4 对样式表进行修改 2.10.5 使用上传漏洞进行上传 2.10.6 获取上传文件具体地址 2.10.7 获取 Webshell 权限 2.10.8 信息扩展 2.10.9 渗透总结 2.11Asp.net 反编译及解密分析 2.11.1 使用 Reflector.v9.0.1.374 反编译 2.11.2 获取初始加密密码和密钥 2.12Intel AMT 固件密码绕过登录漏洞分析与实战 2.12.1 漏洞简介 2.12.2 攻击场景 2.12.3 漏洞利用原理 2.12.4 漏洞利用还原 2.12.5 kali 平台下 msf 利用 2.12.6 安全防范 2.12.7 参考文章 2.13 如何用 windows 0day 让外网机反弹到内网 kali 2.13.1 实验环境 2.13.2msfconsole 运行监听并配置 payload 2.13.3socat 监听 2.13.4 用 windows 0day 进行攻击 2.13.5msf 成功接收到反弹 2.14Linux(CentOS)安全加固之非业务端口服务关闭 2.14.1 查找端口对应的服务进程 2.14.2 查找进程对应的服务 2.14.3 停用进程服务 2.14.4 学习小结
"XX教育厅网络安全建设方案 " "目录 " "一. 现状分析 1 " "1.1 网络现状 1 " "1.2 网络拓扑 1 " "二. 需求与风险分析 2 " "三. 安全建设方案 3 " "3.1 建设目标 3 " "3.2 改建后网络拓扑 3 " "3.3 安全产品选型 4 " "3.3.1 xx专业抗拒绝服务系统 4 " "3.3.2 xx安全审计系统 8 " "3.3.3 xxWEB应用防护系统 11 " "3.3.4 xxSC安全中心 15 " "3.4 产品性能参数 20 " "3.4.1 xx专业抗拒绝服务系统 20 " "3.4.2 xx安全审计系统 20 " "3.4.3 xxWEB应用防护系统 22 " "3.4.4 xxSC安全中心 23 " "3.5 投资风析 24 " 1. 现状分析 1 网络现状 XX教育厅外网有3个出口与INTERNET相连,其中两台华为交换机分别与中国教育科研 网和中国电信互联网相连,并与核心交换机华为9303之间接有IPS和防火墙,以保证内部 网络安全,各个楼层办公终端通过接入交换连至核心交换。目前没有部署针对于WEB站点 的安全防护设备。 2 网络拓扑 当前网络现状如下图所示: 说明: 当前网络没有针对于WEB站点的安全防护设备。 2. 需求与风险分析 随着XX教育厅信息化进程的全面加快,WEB应用所承载的信息和数据越来越重要,对 其安全要求也越来越高,WEB应用如果出现安全问题,将严重影响XX教育厅对外提供的各 项工作,甚至关系到国家安全和社会稳定,关系到广大人民群众切身利益。 根据前期的调研发现,当前XX教育厅没有针对WEB应用的安全防护设备,所以面临的 安全形势十分严峻,既有外部威胁,又有自身脆弱性和薄弱环节,能否及时发现并成功 阻止网络黑客的入侵和攻击、保证Web应用系统的安全和正常运行成为XX教育厅WEB应用 所面临的一个重要问题。而传统的边界安全设备,如防火墙,作为整体安全策略中不可 缺少的重要模块,针对Web应用攻击完善的防御能力还不十分有效。面对Web应用层面这 类给Internet可用性带来极大损害的攻击,必须采用专门的机制,综合采用各种技术手 段对攻击进行有效检测,进而遏制这类不断增长、日趋复杂的攻击形式,因此符合国家 合规性要求WEB应用安全建设已经变得刻不容缓。 随着WEB应用的发展, WEB应用发挥着越来越重要的作用。OA平台基于WEB应用的业务模式不断成熟,应用安全 问题也正在凸显,WEB应用安全管理和防范措施薄弱,极易遭到黑客攻击。近几年关于网 络钓鱼、SQL注入和跨站脚本等带来严重后果的攻击事件频频发生,严重影响了人们对W EB应用的信心,根据Gartner的数据分析,80%基于WEB的应用都存在安全问题,其中很大 一部分是相当严重的问题。WEB应用系统的安全性越来越引起人们的高度关注。目前网络 中常见的攻击已经由传统的系统漏洞攻击逐渐发展演变为对应用自身弱点的攻击。 与此同时,WEB应用也因安全隐患频繁遭到各种攻击,导致WEB应用敏感数据丢失、网 页被篡改,甚至成为传播木马的傀儡。WEB应用安全形势日益严峻,而WEB应用被攻击后 造成的巨大政治风险、名誉损失、经济损失已经成为XX教育厅应用平台健康发展的一个 巨大障碍。 3. 安全建设方案 1 建设目标 XX教育厅WEB应用系统的访问人员通常是公众用户、科研机构、政府等人员。 结合WEB应用系统的目前现状,将安全理论转化为具体安全需求,包括物理层、网络 层、系统层、应用层、数据层以及管理层等各个层面的安全需求,再依据现有比较成熟 的安全技术,将安全需求转化为可以实现的技术和管理安全防护手段,为环境保护WEB应 用全面性、及时性、准确性、完整性、保密性、无障碍性等业务要求提供安全保障。使 WEB应用能够应对威胁的能力构成了系统的安全保护能力之一——对抗能力。对抗能力则形 成了信息系统的安全保护能力。 2 改建后网络拓扑 改造后网络拓扑如下: 说明: XX教育厅现有3条互联网链路接入INTERNET,抗拒绝服务系统ADS和安全审计系统以串 联方式部署在防火墙和核心交换之间,新增DMZ区防护链路由WEB应用防护系统(WAF)组 成。WEB服务器以及各应用服务器群部署在DMZ区内。WAF以串联方式部署在防火墙和DMZ 区交换机之间,而且WAF本身具有抗拒绝服务模块。防火墙主要用来限制用户的访问,但 对于WEB应用的对抗能力没有提升。而抗拒绝服务攻击系统、WEB应用防护系统则是专门 针对WEB应用安全的防护设备。 ADS可防护各类基于网络层、传输层及应用层的拒绝服务攻击,如对SYN Flood、UDP Flood、UDP DNS Query Flood、(M)Stream Flood、ICMP Floo
  全书主要分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在随后的“Rails框架“部分中,作者深入介绍了Rails框架的各个组件。 除了上述两部分外,对Rails缺乏了解的读者应该首先阅读“起步”部分,通过一个最简单的应用示例感性了解这个时下热门的web框架。不熟悉Ruby的读者应该阅读“附录”部分中的“Ruby简介”,以便了解Ruby的基本语法与常见用法。 本书第1版曾荣获Jolt大奖“最佳技术图书”奖。在前两版的内容架构基础上,第3版增加了对Rails 2中新特性和最佳实践的内容介绍。相比第2版中的内容,Rails 2增加了REST、资源、轻量级web service等新特性。本书涵盖了这些全新的内容,因此能更好地体现出Rails框架的发展现状。 整体而言,全书既有直观的实例,又有深入的分析,同时还涵盖了web应用开发中各方面的相关知识,堪称一部内容全面而又深入浅出的佳作。 图书目录 第1章 简介 1 1.1 Rails是敏捷的 2 1.2 读你所需 3 1.3 致谢 5 第1部分 起步 7 第2章 Rails应用的架构 9 2.1 模型,视图,以及控制器 9 2.2 Active Record:Rails的模型支持 11 2.3 Action Pack:视图与控制器 13 第3章 安装Rails 15 3.1 购物清单 15 3.2 Windows上的安装 15 3.3 Mac OS X上的安装 17 3.4 Linux上的安装 17 3.5 选择Rails版本 18 3.6 开发环境 19 3.7 Rails和数据库 22 3.8 保持更新 23 3.8 Rails和ISPs 24 第4章 立竿见影 25 4.1 新建一个应用程序 25 4.2 Hello, Rails 27 4.3 把页面连起来 35 4.4 我们做了什么 37 第2部分 构建应用程序 39 第5章 Depot应用程序 41 5.1 增量式开发 41 5.2 Depot做些什么 41 5.3 让我们编码吧 44 第6章 任务A:货品维护 45 6.1 迭代A1:跑起来再说 45 6.2 创建货品模型和维护应用 49 6.3 迭代A2:添加缺失的字段 52 6.4 迭代A3:检查一下 56 6.5 迭代A4:更美观的列表页 60 第7章 任务B:目录显示 65 7.1 迭代B1:创建目录列表 65 7.2 迭代B2:添加页面布局 68 7.3 迭代B3:用辅助方法格式化价格 70 7.4 迭代B4:链接到购物车 70 第8章 任务C:创建购物车 73 8.1 Session 73 8.2 迭代C1:创建购物车 76 8.3 迭代C2:更聪明的购物车 78 8.4 迭代C3:处理错误 81 8.5 迭代C4:结束购物车 84 第9章 任务D:Ajax初体验 87 9.1 迭代D1:迁移购物车 87 9.2 迭代D2:创建基于Ajax的购物车 91 9.3 迭代D3:高亮显示变化 94 9.4 迭代D4:隐藏空购物车 96 9.5 迭代D5:JavaScript被禁用时的对策 99 9.6 我们做了什么 99 第10章 任务E:付账! 101 10.1 迭代E1:收集订单信息 101 第11章 任务F:管理 113 11.1 迭代F1:添加用户 113 11.2 迭代F2:登录 120 11.3 迭代F3:访问控制 122 11.4 迭代F4:添加边栏,以及更多的管理功能 124 第12章 任务G:最后一片饼干 129 12.1 生成XML 129 12.2 扫尾工作 136 第13章 任务I:国际化 139 13.1 迭代I1:翻译 139 13.2 迭代I2:探索内容的翻译策略 149 第14章 任务T:测试 151 14.1 加上测试 151 14.2 模型的单元测试 152 14.3 控制器的功能测试 161 14.4 应用程序的集成测试 175 14.5 性能测试 181 14.6 使用Mock对象 184 第3部分 Rails框架 187 第15章 深入Rails 189 15.1 Rails在哪儿 189 15.2 目录结构 189 15.3 Rails配置 195 15.4 命名约定 197 15.5 Rails的日志 200 15.6 调试信息 200 15.7 精彩预告 202 第16章 Active Support 203 16.1 通用扩展 203 16.2 枚举和数组 204 16.3 Hash 205 16.4 字符串扩展 206 16.5 数值的扩展 208 16.6 时间和日期的扩展 208 16.7 Ruby符号的扩展 210 16.8 with_options 211 16.9 Unicode支持 211 第17章 数据迁移 215 17.1 创建和运行迁移任务 216 17.2 剖析迁移任务 218 17.3 表的管理 221 17.4 数据迁移任务 225 17.5 高级迁移任务 227 17.6 迁移任务的缺点 230 17.7 在迁移任务之外操作数据库结构 231 17.8 管理迁移任务 231 第18章 ActiveRecord第一部分:基础 233 18.1 表和类 233 18.2 字段和属性 234 18.3 主键与ID 237 18.4 连接数据库 238 18.5 CRUD 242 18.6 聚合与结构化数据 257 18.7 杂录 262 第19章 ActiveRecord第二部分:表间关联 265 19.1 创建外键 266 19.2 在模型对象中指定关联 267 19.3 belongs_to和has_xxx声明 268 19.4 连接多张表 280 19.5 自引用的连接 287 19.6 Acts As 288 19.7 何时保存 291 19.8 预先读取子记录 292 19.9 计数器 293 第20章 ActiveRecord第三部分:对象生命周期 295 20.1 校验 295 20.2 回调 303 20.3 高级属性 308 20.4 事务 311 第21章 ActionController:路由与URL 317 21.1 基础 317 21.2 请求的路由 318 21.3 基于资源的路由 329 21.4 路由的测试 342 第22章 ActionController和Rails 345 22.1 Action方法 345 22.2 Cookie和Session 354 22.3 Flash——Action之间的通信 364 22.4 过滤器与校验 366 22.5 缓存初接触 372 22.6 GET请求的问题 378 第23章 Action View 381 23.1 模板 381 23.2 使用辅助方法 385 23.3 用于格式化、链接和分页的辅助方法 386 23.4 如何使用表单 393 23.5 包装模型对象的表单 393 23.6 自制表单构建器 403 23.7 处理与模型对象无关的字段 406 23.8 Rails应用的文件上传 409 23.9 布局与组件 411 23.10 再论缓存 417 23.11 新增模板系统 421 第24章 Web 2.0 423 24.1 Prototype 423 24.2 Script.aculo.us 438 24.3 RJS模板 451 24.4 结论 456 第25章 ActionMailer 457 25.1 发送邮件 457 25.2 接收邮件 465 25.3 电子邮件的测试 467 第26章 Active Resource 469 26.1 Active Resource的替代品 469 26.2 给我看代码! 471 26.3 关联和集合 473 26.4 小结 475 第4部分 部署和安全 477 第27章 保护Rails应用 479 27.1 SQL注入 479 27.2 用参数直接创建记录 481 27.3 不要相信ID参数 482 27.4 不要暴露控制器方法 483 27.5 跨站脚本(CSS/XSS) 483 27.6 防御session定置攻击 485 27.7 文件上传 486 27.8 不要以明文保存敏感信息 487 27.9 用SSL传输敏感信息 487 27.10 不要缓存需要身份认证的页面 488 第28章 部署与生产 489 28.1 尽早开始 489 28.2 生产服务器如何工作 490 28.3 安装Passenger 491 28.4 Capistrano无忧部署 493 28.5 检查已部署的应用程序 496 28.6 投入生产运行之后的琐事 497 28.7 上线,并不断前进 498 索引 499
[WEB安全测试].(美)霍普.扫描版.pdf (美)霍普 等 著 傅鑫 等 译 出 版 社:清华大学出版社 ISBN:9787302219682 出版时间:2010-03-01 版  次:1 页  数:281 装  帧:平装 开  本:16开 所属分类:图书 > 计算机与互联网 > 计算机安全 内容简介   在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。本书中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你的常规测试套装中。   本书中的秘诀所覆盖的基础知识包括了从观察客户端和服务器之间的消息到使用脚本完成登录并执行Web应用功能的多阶段测试。在本书的最后,你将能够建立精确定位到Ajax函数的测试,以及适用于常见怀疑对象(跨站式脚本和注入攻击)的大型多级测试。   本书将帮助你:   ·获取、安装和配置有用的——且免费的——安全测试工具   ·理解你的应用如何与用户通信,这样你就可以在测试中更好地模拟攻击   ·从许多不同的模拟常见攻击(比如SQL注入、跨站式脚本和操纵隐藏表单域)的方法中进行选择   ·作为自动化测试的出发点,通过使用秘诀中的脚本和例子,使你的测试可重复   不用再担心午夜来电话告诉你站点被破坏了。通过本书和示例中所用的免费工具,你可以将安全因素加入到你的测试套装中,从而得以睡个安稳觉。 作者简介   Paco Hope,是Cigital公司的一名技术经理,《Mastering FreeBsD and 0penBsDsecurity》 (由O’Reilly出版)的合著者之一。他也发表过有关误用、滥用案例和PKI的文章。他曾被邀请到会议就软件安全需求、Web应用安全和嵌入式系统安全等话题发表演讲。在Cigital,他曾担任MasterCard Internationa!在安全策略方面的主题专家,而且曾协助一家世界500强的服务业公司编写软件安全策略。他也为软件开发和测试人员提供软件安全基础方面的培训。他还曾为博彩业和移动通信行业中的几家公司提出过软件安全方面的建议。Paco曾在威廉玛丽学院主修计算机科学和英语,并从弗吉尼亚大学获得计算机科学方面的理学硕士学位。   Ben Waltller,是Cigital公司的一名顾问,Edit C00kies工具的开发者之一。他同时参与标准质量保证和软件安全方面的工作。他日复一日地设计和执行测试一一因此他理解忙碌的QA领域对简单秘诀的需求。他也曾对开放式Web应用程序安全项目(0WAsP)的成员就w曲应用测试工具发表过演讲。 目录 序 1 前言 3 第1章 绪论 13 1.1 什么是安全测试 13 1.2 什么是Web应用 17 1.3 Web应用基础 21 1.4 Web应用安全测试 25 1.5 方法才是重点 26 第2章 安装免费工具 29 2.1 安装Firefox 29 2.2 安装Firefox扩展 30 2.3 安装Firebug 31 2.4 安装OWASP的WebScarab 32 2.5 在Windows上安装Perl及其软件包 33 2.6 在Linux, Unix或OS X上安装Perl和使用CPAN 34 2.7 安装CAL9000 35 2.8 安装ViewState Decoder 36 2.9 安装cURL 36 2.10 安装Pornzilla 37 2.11 安装Cygwin 38 2.12 安装Nikto 2 39 2.13 安装Burp Suite 40 2.14 安装Apache HTTP Server 41 第3章 基本观察 43 3.1 查看网页的HTML源代码 44 3.2 查看源代码,高级功能 45 3.3 使用Firebug观察实时的请求头 48 3.4 使用WebScarab观察实时的POST数据 52 3.5 查看隐藏表单域 55 3.6 使用TamperData观察实时的响应头 56 3.7 高亮显示JavaScript和注释 59 3.8 检测JavaScript事件 60 3.9 修改特定的元素属性 61 3.10 动态跟踪元素属性 63 3.11 结论 65 第4章 面向Web的数据编码 66 4.1 辨别二进制数据表示 67 4.2 使用Base-64 69 4.3 在网页中转换Base-36数字 71 4.4 在Perl中使用Base-36 71 4.5 使用以URL方式编码的数据 72 4.6 使用HTML实体数据 74 4.7 计算散列值 76 4.8 辨别时间格式 78 4.9 以编程方式对时间值进行编码 80 4.10 解码ASP.NET的视图状态 81 4.11 解码多重编码 83 第5章 篡改输入 85 5.1 截获和修改POST请求 86 5.2 绕过输入限制 89 5.3 篡改URL 90 5.4 自动篡改URL 93 5.5 测试对URL长度的处理 94 5.6 编辑Cookie 96 5.7 伪造浏览器头信息 99 5.8 上传带有恶意文件名的文件 101 5.9 上传大文件 104 5.10 上传恶意XML实体文件 105 5.11 上传恶意XML结构 107 5.12 上传恶意ZIP文件 109 5.13 上传样例病毒文件 110 5.14 绕过用户界面的限制 111 第6章 自动化批量扫描 114 6.1 使用WebScarab爬行网站 115 6.2 将爬行结果转换为清单 117 6.3 减少要测试的URL 120 6.4 使用电子表格程序来精简列表 120 6.5 使用LWP对网站做镜像 121 6.6 使用wget对网站做镜像 123 6.7 使用wget对特定的清单做镜像 124 6.8 使用Nikto扫描网站 125 6.9 理解Nikto的输出结果 127 6.10 使用Nikto扫描HTTPS站点 128 6.11 使用带身份验证的Nikto 129 6.12 在特定起始点启动Nikto 130 6.13 在Nikto中使用特定的会话Cookie 131 6.14 使用WSFuzzer测试Web服务 132 6.15 理解WSFuzzer的输出结果 134 第7章 使用cURL实现特定任务的自动化 137 7.1 使用cURL获取页面 138 7.2 获取URL的许多变体 139 7.3 自动跟踪重定向 140 7.4 使用cURL检查跨站式脚本 141 7.5 使用cURL检查目录遍历 144 7.6 冒充特定类型的网页浏览器或设备 147 7.7 以交互方式冒充另一种设备 149 7.8 使用cURL模仿搜索引擎 151 7.9 通过假造Referer头信息来伪造工作流程 152 7.10 仅获取HTTP头 153 7.11 使用cURL发送POST请求 154 7.12 保持会话状态 156 7.13 操纵Cookie 157 7.14 使用cURL上传文件 158 7.15 建立多级测试用例 159 7.16 结论 164 第8章 使用LibWWWPerl实现自动化 166 8.1 编写简单的Perl脚本来获取页面 167 8.2 以编程方式更改参数 169 8.3 使用POST模仿表单输入 170 8.4 捕获和保存Cookie 172 8.5 检查会话过期 173 8.6 测试会话固定 175 8.7 发送恶意Cookie值 177 8.8 上传恶意文件内容 179 8.9 上传带有恶意名称的文件 181 8.10 上传病毒到应用 182 8.11 使用Perl解析接收到的值 184 8.12 以编程方式来编辑页面 186 8.13 使用线程化提高性能 189 第9章 查找设计缺陷 191 9.1 绕过必需的导航 192 9.2 尝试特权操作 194 9.3 滥用密码恢复 195 9.4 滥用可预测的标识符 197 9.5 预测凭证 199 9.6 找出应用中的随机数 200 9.7 测试随机数 202 9.8 滥用可重复性 204 9.9 滥用高负载操作 206 9.10 滥用限制性的功能 208 9.11 滥用竞争条件 209 第10章 攻击AJAX 211 10.1 观察实时的AJAX请求 213 10.2 识别应用中的JavaScript 214 10.3 从AJAX活动回溯到源代码 215 10.4 截获和修改AJAX请求 216 10.5 截获和修改服务器响应 218 10.6 使用注入数据破坏AJAX 220 10.7 使用注入XML破坏AJAX 222 10.8 使用注入JSON破坏AJAX 223 10.9 破坏客户端状态 224 10.10 检查跨域访问 226 10.11 通过JSON劫持来读取私有数据 227 第11章 操纵会话 229 11.1 在Cookie中查找会话标识符 230 11.2 在请求中查找会话标识符 232 11.3 查找Authentication头 233 11.4 分析会话ID过期 235 11.5 使用Burp分析会话标识符 239 11.6 使用WebScarab分析会话随机性 240 11.7 更改会话以逃避限制 245 11.8 假扮其他用户 247 11.9 固定会话 248 11.10 测试跨站请求伪造 249 第12章 多层面的测试 251 12.1 使用XSS窃取Cookie 251 12.2 使用XSS创建覆盖 253 12.3 使用XSS产生HTTP请求 255 12.4 以交互方式尝试基于DOM的XSS 256 12.5 绕过字段长度限制(XSS) 258 12.6 以交互方式尝试跨站式跟踪 259 12.7 修改Host头 261 12.8 暴力猜测用户名和密码 263 12.9 以交互方式尝试PHP包含文件注入 265 12.10 制作解压缩炸弹 266 12.11 以交互方式尝试命令注入 268 12.12 系统地尝试命令注入 270 12.13 以交互方式尝试XPath注入 273 12.14 以交互方式尝试服务器端包含(SSI)注入 275 12.15 系统地尝试服务器端包含(SSI)注入 276 12.16 以交互方式尝试LDAP注入 278 12.17 以交互方式尝试日志注入 280
浏览器是重要的互联网入口,一旦受到漏洞攻击,将直接影响到用户的信息安全。作为攻击者有哪些攻击思路,作为用户有哪些应对手段?在本书中我们将给出解答,带你了解浏览器安全的方方面面。本书兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。本书从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以然。 第1篇 初探浏览器安全 1 1 漏洞与浏览器安全 3 1.1 漏洞的三要素 3 1.2 漏洞的生命周期 4 1.3 浏览器安全概述 5 1.4 浏览器安全的现状 7 1.5 浏览器的应对策略 9 1.6 “白帽子”与浏览器厂商的联手协作 9 1.7 全书概览 10 1.8 本章小结 12 2 浏览器中常见的安全概念 13 2.1 URL 13 2.1.1 URL的标准形式 15 2.1.2 IRI 16 2.1.3 URL的“可视化”问题——字形欺骗钓鱼攻击 18 2.1.4 国际化域名字形欺骗攻击 19 2.1.5 自纠错与Unicode字符分解映射 20 2.1.6 登录信息钓鱼攻击 23 2.2 HTTP协议 24 2.2.1 HTTP HEADER 25 2.2.2 发起HTTP请求 26 2.2.3 Cookie 28 2.2.4 收到响应 29 2.2.5 HTTP协议自身的安全问题 31 2.2.6 注入响应头:CRLF攻击 31 2.2.7 攻击响应:HTTP 401 钓鱼 32 2.3 浏览器信息安全的保障 33 2.3.1 源 33 2.3.2 同源准则 34 2.3.3 源的特殊处理 34 2.3.4 攻击同源准则:IE11跨任意域脚本注入一例 35 2.4 特殊区域的安全限制 37 2.4.1 安全域 37 2.4.2 本地域 37 2.5 伪协议 38 2.5.1 data伪协议 38 2.5.2 about伪协议 40 2.5.3 javascript/vbscript伪协议 41 2.5.4 伪协议逻辑出错:某浏览器跨任意域脚本注入一例 42 2.6 本章小结 43 3 探索浏览器的导航过程 45 3.1 导航开始 45 3.1.1 浏览器的导航过程 46 3.1.2 DNS请求 46 3.1.3 DNS劫持和DNS污染 47 3.1.4 导航尚未开始时的状态同步问题 48 3.1.5 实例:针对导航过程发起攻击 49 3.2 建立安全连接 50 3.2.1 HTTPS 50 3.2.2 HTTPS请求中的Cookie 51 3.3 响应数据的安全检查——XSS过滤器 52 3.3.1 IE XSS Filter的实现原理 53 3.3.2 Chrome XSSAuditor的工作原理 55 3.4 文档的预处理 56 3.4.1 浏览器对HTML文档的标准化 56 3.4.2 设置兼容模式 57 3.5 处理脚本 59 3.5.1 脚本的编码 60 3.5.2 IE的CSS expression的各种编码模式 62 3.5.3 浏览器的应对策略:CSP 63 3.5.4 “绕过”CSP:MIME Sniff 65 3.5.5 简单的Fuzz:混淆CSS expression表达式 68 3.6 攻击HTML标准化过程绕过IE/Chrome的XSS Filter 71 3.7 本章小结 73 4 页面显示时的安全问题 75 4.1 点击劫持 76 4.1.1 点击劫持页面的构造 76 4.1.2 X-Frame-Options 78 4.2 HTML5的安全问题 80 4.2.1 存储API 81 4.2.2 跨域资源共享 83 4.2.3 基于FullScreen和Notification API的新型钓鱼攻击 84 4.2.4 组合API后可能导致的安全问题 87 4.2.5 引入新的XSS 攻击向量 87 4.2.6 互联网威胁 89 4.3 HTTPS与中间人攻击 92 4.3.1 HTTPS的绿锁 92 4.3.2 HTTPS有多安全? 94 4.3.3 HSTS 96 4.3.4 使用SSLStrip阻止HTTP升级HTTPS 97 4.3.5 使用Fiddler对PC端快速进行中间人攻击测试 99 4.3.6 使用Fiddler脚本和AutoResponse自动发起中间人攻击 101 4.4 本章小结 103 5 浏览器扩展与插件的安全问题 105 5.1 插件 106 5.1.1 ActiveX 106 5.1.2 ActiveX的安全问题 107 5.1.3 ActiveX的逻辑漏洞 108 5.1.4 NPAPI、PPAPI 111 5.2 定制浏览器的扩展和插件的漏洞 113 5.2.1 特权API暴露 114 5.2.2 DOM 修改引入攻击向量 114 5.2.3 Windows文件名相关的多个问题 115 5.2.4 NPAPI DLL的问题 116 5.2.5 同源检查不完善 117 5.2.6 Content Script劫持 118 5.2.7 权限隔离失败 118 5.2.8 配合切核策略+本地内部页XSS执行代码 118 5.2.9 下载服务器限制宽松 119 5.2.10 TLDs判定问题 119 5.2.11 经典漏洞 120 5.2.12 中间人 120 5.3 Adobe Flash插件与Action Script 121 5.3.1 Flash的语言——Action Script 121 5.3.2 Flash文档的反编译、再编译与调试 122 5.3.3 SWF的网络交互:URLLoader 124 5.3.4 crossdomain.xml与Flash的“沙盒” 125 5.3.5 ExternalInterface 126 5.3.6 FLASH XSS 126 5.3.7 Microsoft Edge中的Flash ActiveX 130 5.4 浏览器的沙盒 131 5.4.1 受限令牌 132 5.4.2 完整性级别与IE的保护模式 133 5.4.3 任务对象 134 5.5 本章小结 135 6 移动端的浏览器安全 137 6.1 移动浏览器的安全状况 138 6.2 移动端的威胁 141 6.2.1 通用跨站脚本攻击 141 6.2.2 地址栏伪造 142 6.2.3 界面伪装 143 6.3 结合系统特性进行攻击 144 6.3.1 Android一例漏洞:使用Intent URL Scheme绕过Chrome SOP 144 6.3.2 iOS的一例漏洞:自动拨号泄露隐私 146 6.3.3 Windows Phone一例未修补漏洞:利用Cortana显示IE中已保存密码 147 6.4 本章小结 149 第2篇 实战网马与代码调试 151 7 实战浏览器恶意网页分析 153 7.1 恶意网站中“看得见的”攻防 153 7.2 恶意脚本的抓取和分析 155 7.2.1 发现含攻击代码的网址 156 7.2.2 使用rDNS扩大搜索结果 156 7.2.3 下载攻击代码 157 7.2.4 搭建测试环境 158 7.2.5 初识网马反混淆工具 158 7.2.6 恶意脚本中常见的编码方式 159 7.3 一个简单的挂马代码的处理 169 7.3.1 快速判断挂马 169 7.3.2 JS代码的格式化 170 7.4 更为复杂的代码处理:对Angler网马工具包的反混淆 170 7.4.1 Angler EK的特征 170 7.4.2 推理:找出代码中的“解密-执行”模式 172 7.4.3 检证:确定“解密-执行”模式的位置和方法 175 7.4.4 追踪:使用浏览器特性判断用户环境 179 7.4.5 利用漏洞CVE-2014-6332发起攻击 188 7.5 本章小结 190 8 调试工具与Shellcode 191 8.1 调试工具的用法 191 8.1.1 调试符号 191 8.1.2 WinDbg的用法 192 8.1.3 IDA的用法 195 8.1.4 OllyDbg的用法 199 8.2 与Shellcode的相关名词 201 8.2.1 机器指令 201 8.2.2 控制关键内存地址 203 8.2.3 NOP Slide 204 8.2.4 Magic Number 0x8123 205 8.3 Shellcode的处理 205 8.3.1 实现通用的Shellcode 206 8.3.2 调试网马中的Shellcode 212 8.4 本章小结 218 第3篇 深度探索浏览器漏洞 219 9 漏洞的挖掘 221 9.1 挖0day 221 9.1.1 ActiveX Fuzzer 的原理 221 9.1.2 使用AxMan Fuzzer来Fuzz ActiveX插件 222 9.1.3 现场复现 225 9.2 DOM Fuzzer的搭建 229 9.2.1 搭建运行Grinder的环境 230 9.2.2 Fuzzer的结构与修改 231 9.2.3 现场复现 232 9.3 崩溃分析 233 9.3.1 哪些典型崩溃不能称作浏览器漏洞 233 9.3.2 ActiveX崩溃一例 236 9.3.3 IE11崩溃一例 238 9.4 本章小结 244 10 网页的渲染 245 10.1 网页的渲染 245 10.1.1 渲染引擎 245 10.1.2 DOM结构模型 247 10.1.3 IE解析HTML的过程 249 10.1.4 IE的Tokenize 251 10.1.5 Chrome解析HTML的过程 253 10.1.6 Chrome的Tokenize 254 10.2 元素的创建 256 10.2.1 IE中元素的创建过程 256 10.2.2 Chrome中元素的创建过程 257 10.2.3 元素的生成规律 258 10.3 实战:使用WinDbg跟踪元素的生成 260 10.4 实战:使用WinDbg跟踪元素的插入 263 10.5 实战:使用WinDbg跟踪元素的释放 264 10.6 本章小结 266 11 漏洞的分析 267 11.1 分析IE漏洞CVE-2012-4969 267 11.1.1 崩溃分析 268 11.1.2 追根溯源 270 11.2 分析JScript9漏洞CVE-2015-2425 271 11.2.1 跟踪漏洞 275 11.3 Hacking Team的Flash漏洞CVE-2015-5119 分析 276 11.3.1 静态阅读:成因分析 276 11.3.2 Vector的覆盖过程 278 11.4 本章小结 279 12 漏洞的利用 281 12.1 ShellCode的编写 281 12.2 CVE-2012-4969 的利用 284 12.2.1 DEP/ASLR绕过 287 12.3 CVE-2015-5119的Vector 296 12.4 本章小结 301 附录 303 附录A IE(Edge)的URL截断 303 附录B IE的控制台截断 304 附录C 表单中的mailto: 外部协议 305 附录D 危险的regedit: 外部协议 306 附录E IE XSS Filter的漏洞也会帮助执行XSS 307 附录F 更高级的策略保护——CSP Level 2 308 附录G 更快的执行速度——JScript5 to Chakra 309 附录H Chakra的整数存储 310 附录I 安全实践 311 参考资料 315
计算机网络安全项目教程 项目1 认识网络安全 主 讲:XXX Q Q:XXXXX TEL :XXXXXXX 网络安全实用项目教程 项目3 网络数据库安全 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第1页。 计算机网络安全项目教程 3.1 项目提出 3.2 项目分析 3.3 相关知识点 3.4 项目实施 3.5 拓展任务 数据库安全解决方案 3.6 习题 项目3 网络数据库安全 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第2页。 计算机网络安全项目教程 随着Web2.0、社交网络、微博等一系列新型的互联网产品的诞生,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是网络数据库安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。数据库系统的安全特性主要是针对数据而言的,包括数据独立性、数据安全性、数据完整性、并发控制、故障恢复、攻击防护等几个方面。 3.1项目提出 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第3页。 计算机网络安全项目教程 3.2 项目分析 2011年,在政府相关部门、互联网服务机构、网络安全企业和网民的共同努力下,我国互联网网络安全未发生造成大范围影响的重大网络安全事件,基础信息网络防护水平明显提升,政府网站安全事件显著减少,网络安全事件处理速度明显加快,但以用户信息泄露为代表的与网民利益密切相关的事件,引起了公众对网络安全的广泛关注。 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第4页。 计算机网络安全项目教程 3.2 项目分析 据CNCERT监测,2011年中国大陆被篡改的政府网站为2807个;从CNCERT专门面向国务院部门门户网站的安全监测结果来看,国务院部门门户网站存在低级别安全风险的比例从2010年的60%进一步降低为50%。但从整体来看,2011年网站安全情况有一定恶化趋势。在CNCERT接收的网络安全事件(不含漏洞)中,网站安全类事件占到61.7%;境内被篡改网站数量为36612个,较2010年增加5.1%;4月-12月被植入网站后门的境内网站为12513个。涉及网站相关的漏洞占22.7%,较2010年大幅上升,排名由第三位上升至第二位。网站安全问题进一步引发网站用户信息和数据的安全问题。 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第5页。 计算机网络安全项目教程 2011年底, CSDN、天涯等网站发生用户信息泄露事件引起社会广泛关注,被公开的疑似泄露数据库26个,涉及帐号、密码信息2.78亿条,严重威胁了互联网用户的合法权益和互联网安全。根据调查和研判发现,我国部分网站的用户信息仍采用明文的方式存储,相关漏洞修补不及时,安全防护水平较低。 3.2 项目分析 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第6页。 计算机网络安全项目教程 2011年,CNCERT抽样监测发现,境外有近4.7万个IP地址作为木马或僵尸网络控制服务器参与控制我国境内主机,呈现大规模化趋势。在网站安全方面,境外黑客对境内1116个网站实施了网页篡改;境外11851个IP通过植入后门对境内10593个网站实施远程控制;仿冒境内银行网站的服务器IP有95.8%位于境外,其中美国仍然排名首位——共有481个IP(占72.1%)仿冒了境内2943个银行网站的站点,中国香港(占17.8%)和韩国(占2.7%)分列二、三位。总体来看,2011年位于美国、日本和韩国的恶意IP地址对我国的威胁最为严重。 3.2 项目分析 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第7页。 计算机网络安全项目教程 3.3.1 数据库安全概述 3.3.2 数据库的数据安全 3.3 相关知识点 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第8页。 3.3 相关知识点 3.3.1 数据库安全概述 Web数据库是数据库技术与Web技术的结合,这种结合集中了数据库技术与网络技术的优点,既充分利用了大量已有的数据库信息,用户又可以很方便地在Web浏览器上检索和浏览数据库的内容。但是Web数据库是置于网络环境下,存在很大的安全隐患,如何才能保证和加强数据库的安全性已成为目前必须要解决的问题。因此对Web数据库安全模式的研究,在Web的数据库管理系统的理论和实践中都具有重要的意义。 网络安全实用项目教程-项目3-网络数据库安全全文共63页,当前为第9页。 3.3 相关知识点 3.3.1 数据库安全概述 目前很多业务都依赖于互联网,例如说网上银行、

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phanton03167

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值