白帽子讲web安全读后感1

本文实际上算是白帽子讲web安全的回顾,总结了一些我觉得比较重要的关键词,方便以后复习.具体内容可以参考书

浏览器安全

本文对应第2章节,主要的内容是同源策略.当然也可以参考阮一峰老师的文章

终止就是要保证协议,域名和端口的一致,如果看到提示cros错误就要考虑这个问题.

另外现在app开发喜欢采用浏览器套壳的策略,同时还有h5小程序开发,总之前端技术大有可为.

跨站脚本攻击(XSS)

本文是第三章
跨站脚本攻击(Cross Site Script,简称 XSS),利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序.攻击方法多种多样,主要是在js层面,早年间还有一些flash漏洞.不过现代应该会有一些利用h5的漏洞存在

本书中给的几个案例都是比较过时的思路,比如js的标签里面注入一段脚本.

或者通过css中添加脚本(百度的那个例子)

实际上这几年有一个案例我印象深刻.就是前端的工具链模式下(所谓现代开发方式),开发者几乎不会检查引入的文件,因此可以通过上传恶意代码,通过审核,或者开发者自己上传恶意代码(这个也出现过案例).

跨站点请求伪造(CSRF)

关键词:

  1. (Cross-site request forgery,简称 CSRF), 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法
  2. 防御方法
  • 增加验证码(简单有效)
  • 检查请求来源是否合法
  • 增加随机 token

实际上就是非法访问接口.这个请求可以和第四章内容结合,首先通过跨域脚本攻击注入脚本,然后在进行访问

本书中提到一个有趣的例子

2008年9月,国内的安全组织80sec公布了一个百度的CSRF Worm。漏洞出现在百度用户中心的发送短消息功能中:这个解耦只需要修改参数sn,即可对指定的用户发送短消息。而百度的另外一个接口则能查询出某个用户的所有好友

将两者结合起来,可以组成一个CSRF Worm——让一个百度用户查看恶意页面后,将给他的所有好友发送一条短消息,然后这条短消息中又包含一张图片,其地址再次指向CSRF页面,使得这些好友再次将消息发给他们的好友,这个Worm因此得以传播。

实际上这个案例告诉我们在设计接口的时候最好考虑限制用户的资源访问和权限,如果限制当前用户发送消息的权限,就能很好的限制漏洞的传播.

这个蠕虫很好地展示了CSRF的破坏性——即使没有XSS漏洞,仅仅依靠CSRF,也是能够发起大规模蠕虫攻击的。
防御手段

  • 验证码
    验证码被认为是对抗CSRF攻击最简洁而有效的防御方法。验证码只能作为防御CSRF的一种辅助手段,而不能作为最主要的解决方案。

  • Referer
    CheckReferer Check在互联网中最常见的应用就是“防止图片盗链”。同理,RefererCheck也可以被用于检查请求是否来自合法的“源”。常见的互联网应用,页面与页面之间都具有一定的逻辑关系,这就使得每个正常请求的Referer具有一定的规律。比如一个“论坛发帖”的操作,在正常情况下需要先登录到用户后台,或者访问有发帖功能的页面。在提交“发帖”的表单时,Referer的值必然是发帖表单所在的页面。如果Referer的值不是这个页面,甚至不是发帖网站的域,则极有可能是CSRF攻击。

  • token

    token这个基本是惯例了,那么token的使用原则有那些?

    原文提到的随机性这个不必说,我们现在的token都是框架生成的.
    Token如果出现在某个页面的URL中,则可能会通过Referer的方式泄露.这个要小心谨慎,避免出现访问的过程中有token

    还有一些其他的途径可能导致Token泄露。比如XSS漏洞或者一些跨域漏洞,都可能让攻击者窃取到Token的值。这也证明了一点,csrf攻击本身就和xss漏洞和跨域漏洞关系很深

点击劫持(ClickJacking)

本文是第五章
实际上本文还是比较前端的内容
点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。

ClickJacking是一种视觉上的欺骗,那么如何防御它呢?针对传统的ClickJacking,一般是通过禁止跨域的iframe来防范。

h5安全

这个就是书里面提到的一些漏洞,当然我不是前端不是很了解这些内容就是了.不过大体上依旧是之前提到的那几个内容的在h5上面的翻新

注入攻击总结

注入攻击是应用违背了“数据与代码分离原则”导致的结果。它有两个条件:一是用户能够控制数据的输入;二是代码拼凑了用户输入的数据,把数据当做代码执行了。在对抗注入攻击时,只需要牢记“数据与代码分离原则”,在“拼凑”发生的地方进行安全检查,就能避免此类问题。

sql注入

SQL 注入

输入的字符串中注入 SQL 指令,若程序当中忽略了字符检查,导致恶意指令被执行而遭到破坏或入侵.这个我认为对于老的代码可能用的就比较多了,一般新生的框架,使用链式访问都可以有效避免注入.只有那些要自己写的嵌入的组合代码就非常容易出现注入的问题.

sql注入技巧

  1. 盲注
    所谓“盲注”,就是在服务器没有错误回显时完成的注入攻击。服务器没有错误回显,对于攻击者来说缺少了非常重要的“调试信息”,所以攻击者必须找到一个方法来验证注入的SQL语句是否得到执行。最常见的盲注验证方法是,构造简单的条件语句,根据返回页面是否发生变化,来判断SQL语句是否得到执行。

  2. time attack

Timing Attack,来判断漏洞的存在,简单的就是使用某些函数来拖慢访问时间,如果函数生效,时间就会变长。在MySQL中,有一个BENCHMARK()函数,它是用于测试函数性能的。

  1. 工具

sqlmap.py就是一个非常好的自动化注入工具

  1. 命令执行

在MySQL中,除了可以通过导出webshell间接地执行命令外,还可以利用“用户自定义函数”的技巧,即UDF(User-Defined Functions)来执行命令。在流行的数据库中,一般都支持从本地文件系统中导入一个共享库文件作为自定义函数。

在MySQL 4的服务器上,Marco Ivaldi公布了如下的代码,可以通过UDF执行系统命令。尤其是当运行mysql进程的用户为root时,将直接获得root权限。

实际上调用命令都是非常危险的行为,尤其是使用root用户,包括php里面使用这个调用linux命令也是大忌.

  1. 攻击存储过程

存储过程为数据库提供了强大的功能,它与UDF很像,但存储过程必须使用CALL或者EXECUTE来执行。在MS SQL Server和Oracle数据库中,都有大量内置的存储过程。在注入攻击的过程中,存储过程将为攻击者提供很大的便利。在MS SQL Server中,存储过程“xp_cmdshell”可谓是臭名昭著了,无数的黑客教程在讲到注入SQL Server时都是使用它执行系统命令.

这个命令和我上文提到的要小心调用命令是一样的逻辑

  1. 字符集攻击
    书里面提到了给予宽字符集合的攻击,我觉得当代应该都用utf-8编码了吧,还有人用gbk的老旧编码么?
    主要原理是编码和转义符号造成的漏洞,对于给予转义过滤的攻击.

  2. SQL CoIumn Truncation
    这个倒是很有趣,基本上就是某一个mysql模式下,对于超长的insert语句,是可以插入成功的,只是报一个警告()
    书中提到的例子是这样的,采用用户名限制长度,然后输入一个同名用户名+一串空格,这样就会有出现相同用户名的客户,导致可能出现越权访问问题.

SQL 注入防御

  • 使用预编译语句绑定变量(最佳方式)
    当然框架如果正常使用,都是会采用预编译绑定

  • 使用安全的存储过程(也可能存在注入问题)

  • 检查输入数据的数据类型(可对抗注入)

  • 数据库最小权限原则

    避免Web应用直接使用root、dbowner等高权限账户直接连接数据库。如果有多个不同的应用在使用同一个数据库,则也应该为每个应用分配不同的账户。Web应用使用的数据库账户,不应该有创建自定义函数、操作本地文件的权限。

代码注入

代码注入比较特别一点。代码注入与命令注入往往都是由一些不安全的函数或者方法引起的,其中的典型代表就是php eval().
远程调用命令和文件(php里面的include),都会有类似的漏洞,最近闹得沸沸扬扬的javalog漏洞也是在低版本jdk下面,会远程调用命令,导致注入成功.

代码注入往往是由于不安全的编程习惯所造成的,危险函数应该尽量避免在开发中使用,可以在开发规范中明确指出哪些函数是禁止使用的。这些危险函数一般在开发语言的官方文档中可以找到一些建议。

CRLF注入

CRLF实际上是两个字符:CR是Carriage Return (ASCII 13, \r), LF是Line Feed(ASCII 10,\n)。\r\n这两个字符是用于表示换行的,其十六进制编码分别为0x0d、0x0a。CRLF常被用做不同语义之间的分隔符。因此通过“注入CRLF字符”,就有可能改变原有的语义。

在HTTP协议中,HTTP头是通过“\r\n”来分隔的。因此如果服务器端没有过滤“\r\n”,而又把用户输入的数据放在HTTP头中,则有可能导致安全隐患。这种在HTTP头中的CRLF注入,又可以称为“Http Response Splitting”。

白帽子讲web安全读后感1相关推荐

  1. 《白帽子讲Web安全》读后感 —— 对道哥的致敬

    <白帽子讲Web安全>读后感 --Deep Blue (一个安全小兵的感受) 这是一篇作业:这是一篇读后感:这是一篇记录安全的感悟:这是一篇对道哥的敬仰:这是我安全启蒙的钥匙...... ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 【MyBatis使用】 mapper文件未编译 + statementType使用 + 返回结果字段顺序不一致 + 获取自增ID + 一个update标签批量更新记录
  2. 学姐面了美团阿里京东的面经
  3. imac java7下载地址,如何在苹果电脑上安装JAVA开发工具,经验告诉你该这样
  4. List 按照中文姓名升序排列
  5. 不知风险 何谈 5G?
  6. 问题记录 | 记录PIL中Image.save的一个坑
  7. B. A and B and Compilation Errors
  8. java.util.zip.ZipException:invalid distance distance too far back
  9. 449.序列化和反序列化二叉搜索树
  10. 分布评价指标分析(切比雪夫距离,KL距离,余弦相似度,平方差和, 巴氏系数)python代码
  11. 对recv函数的一些理解
  12. 零基础学习 iOS 开发?如何系统学习 iOS ?
  13. 换号码的烦恼引起的思考
  14. 蚂蚁金融科技全面开放战略背后的技术布局
  15. 计算机的运行英文表示,电脑一些英文表示什么格式
  16. 力扣T51数组中的逆序对--困难
  17. MarkdownPad 2的安装、配置、优化,自定义样式、生成目录,解决win10渲染错误等
  18. 计算机课电脑如何提网速,教大家怎么调网速,让你的电脑像飞速运转。
  19. 互融云区块链溯源防伪系统开发,超高并发,全程追溯
  20. 【Auto.js】给手机编一个模拟遥控器

热门文章

  1. 2021年遥感类SCI期刊JCR分区/中科院分区排名与影响因子汇总
  2. Matlab聚类分析相关函数
  3. oj1047: 对数表
  4. webQQ协议——获取信息
  5. mapguide 安装调试
  6. 计算有向图的可达矩阵的算法及其MATLAB实现
  7. 用浏览器怎样监控网页内容变化
  8. 计算机病毒是不会破坏计算机软件的,计算机病毒是不会破坏计算机硬件的。
  9. Go测试远控免杀学习
  10. 互联网晚报 | 7月10日 星期天 | 快手官宣:7月18日周杰伦独家直播;​400亿额度,秒光!7月总票房破10亿...