第四章 跨站点请求伪造(CSRF)  
        CSRF的中文名是跨站点请求伪造,很多安全工程师不理解它的利用与危害,因此不予重视。
        攻击形成的本质是重要操作的所有参数都可以被攻击者猜测到。
            1.CSRF简介
                攻击者仅仅诱使用户访问一个页面,就以该用户身份在第三方站点里执行了一次删除操作。
                原理:用户访问攻击者的页面时,本地Cookie被读取,并在执行删除操作时附加带上作为用户认证使用。

2.CSRF进阶
                1.浏览器的Cookie策略
                    共2种Cookie,临时Cookie和本地Cookie
                    临时Cookie又叫做Session Cookie,本地Cookie又叫做第三方Cookie,区别是,前者没指定过期时间。
                    火狐浏览器允许第三方Cookie发送给第三方站。
                2.不良后果(P3P头),在网站业务中,P3P头主要用于类似广告等需要跨域访问的页面。后果是,对于Cookie的影响扩大
                    到整个域中的所有页面,因为Cookie是以域和path为单位的,这不符合最小特权原则。P3P头的广泛应用,
                    使得CSRF的防御不能完全依靠浏览器的Cookie跨域拦截策略。                 
                3.POST请求不能防止CSRF攻击,攻击者隐藏一个iframe窗口,构造一个form表单,发送表单时带上Cookie完成攻击动作。
                4.Flash中的CSRF,在IE8以前,发送网络请求均可以带上本地Cookie
                5.CSRF蠕虫传播垃圾消息,原理发送一条带图片的消息,图片地址在此指向CSRF页面。                
            3.CSRF的防御
                1.验证码是最简单有效的防御方法
                2.Referer Check,用户想发帖,Referer的值必然是在发帖表单所在的页面。这个检测机制的缺陷是,服务器并非什么
                时候都能取到Referer。浏览器可能会出于安全考虑,不发送Referer。倒是可以用这个检测机制监控CSRF的发生。
                3.Token方案,最优秀的CSRF防御方案,CSRF的参数加密后会给数据分析工作带来困扰,因此需要明文参数。
                    Token是保存原参数不变,新增一个参数Token,Token是随机的,不可预测的。Token放在表单和Session中,
                    提交后,服务器需要验证Token和用户Session是否一致。攻击者很难伪造出Token,除非存在XSS,用js读出Token。
                    每提交一次表单就消耗一个Token,考虑到多页面共存的需要,需要一次生成多个有效的Token

第五章 点击劫持
            1.点击劫持本质就是视觉欺骗,让你不断点击下一步。
            
            2.Flash点击劫持,复制动作操作后,可以控制用户摄像头。
            
            3.通过图片覆盖在关键位置上,视觉欺骗用户进入钓鱼网站。
            
            4.拖拽劫持与数据窃取,通过让用户玩一个游戏,让用户把数据拖到透明的iframe中,窃取数据。
            
            5.触屏劫持,类似于图片覆盖,在智能手机上操作起来更方便,完成钓鱼欺骗操作。
            
            6.如何防御
                1.frame busting
                    这个方案想通过使用js语句禁止iframe的嵌套,来防御点击劫持。
                    缺陷是恶意脚本可以通过限制iframe的js语句执行,让这安全策略失效。
                2.X-Frame-Options
                    这个方案比较优秀,在HTTP头部告诉浏览器,拒绝加载frame页面。

第六章 HTML 5安全
        HTML5的新标签可能带来新的安全问题,注意这些新特性,可能会被用来绕过防御方案。
            1.HTML5新标签
                1.新标签的XSS,比如<video>标签允许加载一段视频,可能会被用来绕过XSS Filter
                2.iframe的sandbox,H5中特别为iframe定义了sandbox属性,用来限制其脚本执行。
                3.Link Types:noreferrer,H5中<a>标签加入了noreferrer属性,不再发送Referer
                4.Canvas的妙用:H5的最大创新之一,其加入让js可以操作图片,甚至破解验证码。
                
            2.其他安全问题
                1.Cross-Origin Resouece Sharing,跨域访问需求,通过HTTP头实现,注意小心使用通配符。
                2.postMessage,跨窗口传递消息,不受同源限制。必要时要验证Domain相当于代码中实现同源策略。
                3.Web Storage,为离线浏览服务,受同源策略保护。
            
    第七章 注入攻击
        注入的本质,是把用户输入的数据单做代码执行。这里有两个关键条件,
        第一个是用户能够控制输入,第二个是程序要执行的代码拼接了用户输入的数据。
            1.SQL注入
                1.盲注,服务器没有错误回显时完成的注入攻击。攻击者通过简单的条件判断,
                    对比页面的返回结果差异,判断SQL注入漏洞是否存在。
                2.Timing Attack,延时注入,Mysql官网曾被黑客用BENCHMARK延时注入。
            2.数据库攻击技巧
                1.常见的攻击技巧,使用union select根据结果判断表名是否存在。
                2.命令执行,除了可以通过导出webshell间接地执行命令外,
                    还可用UDF直接执行命令。sqlmap已集成该功能。MS SQL Server使用xp_cmdshell执行系统命令。
                3.攻击存储过程,存储过程带来便利也带来潜在的威胁,xp_cmdshell在sqlserver05后默认关闭状态,
                    相比之下oracle的存储过程注入可能性要更大些。
                4.编码问题,统一数据库、操作系统、Web应用所使用的字符集,避免宽字节注入。
                5.SQL Column Truncation,若开启该选项后,MySQL插入超长的值时会发生截断问题,并插入成功,受影响的案例有wordpress。
            3.正确地防御SQL注入
                1.使用预编译语句                
                2.使用安全的存储过程
                3.检查数据类型,很大程度上可以对抗SQL注入
                4.使用安全函数,如OWASP ESAPI提供的函数。
            4.其他注入攻击
                1.XML注入,转义特殊字符即可防范。
                2.代码注入,往往是由不安全的函数或者方法引起的,多见于脚本语言。
                3.CRLF注入,可能会改变原语意,把一条日志变两条。甚至破坏HTTP头,关闭XSS Filter,提前结束HTTP头,XSS得以执行。
            
    第八章 文件上传漏洞
        文件上传漏洞是最低门槛的攻击漏洞,指的是用户上传了一个可执行的脚本文件,并通过脚本获得执行命令的权限。
            1.文件上传漏洞概述
                    上传文件通常有这几类,脚本、flash策略文件、木马病毒、脚本图片。
                    首先文件得被Web容器解析执行,其次用户可以访问该文件,最后文件不能被安全检查或格式化、重编码损坏。
                1.文件编辑器
                    老版本的编辑器会采用黑名单过滤策略,通常会有漏网之鱼。建议删除文件编辑前文件上传的代码。
                2.绕过文件上传检查功能
                    在文件名后添加%00字节,可以截断某些函数对文件名的判断。
                    其中[\0]为十六进制下的0x00字符,xxx.php[\0].JPG得以上传,最终会识别成xxx.php
                    如果网站不仅通过后缀名,还通过MIME 判断文件类型,还需要伪造一个合法文件头。
            2.功能还是和漏洞
                    开发者没有深入理解功能的细节, 往往会导致漏洞的发生。
                1.Apache文件解析问题
                    对文件名的解析,从后往前解析。
                2.IIS  文件解析问题
                    IIS 6会出现截断文件名。如果IIS6勾选了脚本资源访问复选框,MOVE方法将允许执行。MOVE方法可以用来更改文件名。
                3.PHP CGI路径解析问题
                    Nginx配置fastcgi使用PHP时,http://xxx/a.jpg/noon.php, 若noon.php不存在,a.jpg将被被解析成php执行。
                    PHP官方建议是 将 cgi.fix_pathinfo 设置为0
                4.利用上传文件钓鱼
                    通过传播带脚本的图片,跳转到指定的钓鱼网站。
            3.涉及安全的文件上传功能考虑
                目录内的文件不可执行
                判断文件类型,重新编码或者压缩文件。
                随机数改写文件名和路径。
                另设文件服务器

《白帽子讲Web安全 》 随手记(二)相关推荐

  1. 读白帽子讲WEB安全,摘要

    读<白帽子讲WEB安全>摘要 文章目录 我的安全世界观 安全三要素-CIA 如何实施安全评估 白帽子兵法 客户端安全 浏览器安全 同源策略 浏览器沙箱 恶意网址拦截 高速发展的浏览器安全 ...

  2. 《白帽子讲Web安全》学习笔记

    一.为何要了解Web安全 最近加入新公司后,公司的官网突然被Google标记为了不安全的诈骗网站,一时间我们信息技术部门成为了众矢之的,虽然老官网并不是我们开发的(因为开发老官网的前辈们全都跑路了). ...

  3. 初出牛犊的站长读《白帽子讲web安全》有感

    初出牛犊的站长读<白帽子讲web安全>有感 一.前言--一百个读者的心目中有一百个哈姆雷特 前言的作者经历,会是每个初初恋上计算机的学生碰到的事.曾记得当时候,我第一次接触病毒是在初中的科 ...

  4. 白帽子讲Web安全(纪念版)

    作者:吴翰清 出版社: 电子工业出版社 品牌:博文视点 出版时间:2021-05-01 白帽子讲Web安全(纪念版)

  5. 白帽子讲web安全——认证与会话管理

    在看白帽子讲web安全,刚好看到认证与会话管理:也就是我们在平常渗透测试中遇到最多的登录页面,也即是用户名和密码认证方式,这是最常见的认证方式. 了解两个概念:认证和授权 1):认证的目的是为了认出用 ...

  6. 读《白帽子讲Web安全》之客户端脚本安全(一)

    2019独角兽企业重金招聘Python工程师标准>>> [第2章  浏览器安全] 1.同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能. ...

  7. 白帽子讲web安全之 浏览器安全

    白帽子讲web安全之 浏览器安全 (一些内容属于个人理解,如有错误请不吝指正) 同源策略 概念 所谓同源,一般是指域名.协议.端口相同.一般来说,只有同源的页面可以互相读取彼此的数据,或者改变彼此在浏 ...

  8. 白帽子讲web安全 ——读书笔记:术语和理论

    最近心血来潮,对安全这些略感兴趣,就买了本 白帽子讲web安全 看看 ,这里做个读书笔记吧!方便啥时候忘了再看一下. exploit--漏洞利用代码 Script kids --脚本小子,利用expl ...

  9. 白帽子讲WEB安全读书笔记(慢慢更新)

    道哥写的白帽子讲WEB安全的读书笔记 文章目录 2020.3.23 ◆ 前言 ◆ 第一篇 世界观安全 1.1 Web安全简史 >> 1.1.1 中国黑客简史 >> 1.1.2 ...

  10. 在学习web安全的小白看过来,这本《白帽子讲web安全》强烈推荐,必读!(附PDF)

    Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分. 前排提醒:文末有pdf领取 下面来看看几种常见的web漏洞: 1.XSS跨站脚本攻击 ...

最新文章

  1. C++ VS C# 结构体和对象的细微区别
  2. SSL服务器配置评级指南
  3. Kafka科普系列 | 轻松理解Kafka中的延时操作
  4. 绕过mysql的id:32933 BUG 实现order by limit 正常取数据.
  5. mybatis-id使用自增长的添加操作
  6. saltstack之基础入门系列文章简介
  7. 知识点 | Revit族库插件哪家强?
  8. Ubuntu18.04 下安装TIM
  9. bigemap功能介绍
  10. 计算机辅助设计和制造论文,计算机辅助设计与制造CAD-CAM
  11. win10 LTSC无损升级 win11专业版 记录
  12. Shifterator库 | 词移图分辨两文本用词风格差异
  13. Arduino零基础入门
  14. Mac 下如何添加网段
  15. 游戏开发全免费下载资源网站
  16. 用ec怎么修改网络服务器数值,ec服务器
  17. 第三章微分中值定理及导数应用(极值)
  18. 【NOIP2013】华容道 最短路优化搜索(spfa)
  19. 《冻结的希望》中的人体冷冻技术,能够打开永生的魔盒吗?
  20. MTK6737平台的GPIO驱动例程(一)

热门文章

  1. 支付宝RSA2公钥证书生成办法
  2. 计算机储存配置信息,怎么看电脑配置信息
  3. 找外包公司做小程序都有哪些坑?
  4. JS---Cookies完整介紹 申精!
  5. 人声抑制 深度学习_一种融合骨振动传感器和麦克风信号的深度学习语音提取和降噪方法与流程...
  6. SpringBoot集成Mybatis-Plus、Druid(SQL监控)
  7. 杰理AC692X---开关机实现方式介绍
  8. 香港svg 3d地图
  9. 所有网站都通用的自定义弹出框alert
  10. 魅族MX4安装Ubuntu Touch系统