《白帽子讲Web安全》读后感笔记

2024-06-22 01:28

本文主要是介绍《白帽子讲Web安全》读后感笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、前言

公众号我停更了3周时间,主要是家里老人住院因而产生的一些家里琐事较多,由于自己没有存稿所以没有办法及时更新。另外一方面自己花了一些时间在复习Java相关知识点,也在看《白帽子讲Web安全》这本书,作者:吴翰清,这本书在年初时就看了一些,但是没坚持看下去,这次我前后花了3~4天左右,累计有效时间约25小时看完。

2、《白帽子讲Web安全》读后感

我摘抄一些自己觉得有意思的部分做了笔记,第一篇 《我的安全世界观》对我于理解网络安全帮助是比较大了,从2023年9月份开始接触学习网络安全,自己发布学习笔记和一些漏洞复现。说实话自己一直是懵懂的状态,挖教育SRC的漏洞提交被拒说危害不大,有参与培训机构提供的一些项目挖了几个漏洞有包含高危等级,但都是业务逻辑漏洞。

《白帽子讲Web安全》虽然是2012年出版,但我认为它对于网络安全从业人员或对网络安全感兴趣的人很有帮助,是一本比较系统、全面讲Web安全的书,有理论也有代码(虽然有些源码无法用了)。一个主题是由浅到深,层层递进,比如《第2章 浏览器安全》的同源策略、浏览器沙箱等。

看完这本书后我还百度作者:吴翰清,真的好厉害,他自己也付出很多努力,再次印证了兴趣是最好的老师。还有关联得知美国的一位天才:凯文·米特尼克。

生活会有很多不如意、不顺,但是不要放弃,多看书、学习,要努力,总会那么一天可以让自己顺心些。要相信风雨过后会有彩虹。

3、《白帽子讲Web安全》摘抄笔记

3.1、XSS攻击绕过相关
3.1.1、利用字符编码

%c1\ 组成一个新的Unicode字符,%c1 把转义符号 \ 吃掉,从而绕过系统的安全检查。

3.1.2、绕过长度限制

利用事件Event 缩短需要的字节数

<input type=text value="$var" />$var 内容为: "onclick=alert(1)// 
组合后: <input type=text value=""onclick=alert(1)// " />
3.2、注入攻击相关
3.2.0、总括

注入攻击的本质: 把用户输入的数据当做代码执行。

1、用户能够控制输入;

2、原本程序要执行的代码,拼接了用户输入的数据。

盲注: 服务器没有错误回显时完成的注入攻击。

常见盲注验证方法(工作原理): 构造简单的条件语句,根据返回页面是否发生变化,来判断SQL语句是否得到执行。

比如:参数:id = 1 ,加了 and 1=2 页面不能正常,但条件变 and 1=1时,页面能正常,可判断参数 id 存在SQL注入漏洞。

还可用延时函数sleep()方式来确认。

3.2.1、攻击存在过程

MS SQL Server

存储过程:xp_cmdshell 可执行系统命令

可操作注册表的存储过程:

xp_regaddmultistring
xp_regdeletevalue
xp_regnumkeys
xp_regenumvalues
xp_regread
xp_regremovemultistring
xp_regwrite

其他可攻击的存储过程:

xp_servicecontrol  # 允许用户启动、停止服务
xp_availablemedia	# 显示机器上有用的驱动器
xp_dirtree			# 允许获得一个目录树
xp_enumdsn			# 列举服务器上的ODBC数据源
xp_loginconfig		# 获取服务器安全信息
xp_makecab			# 允许用户在服务器上创建一个压缩文件
xp_ntsec_enumdomains	# 列举服务器可以进入的域
xp_terminate_process	# 提供进程的进程ID,终止些进程
3.2.2、编码问题

当数据库使用”宽字符集“时可能会产生一些意想不到的漏洞,比如当MySQL使用GBK编码时,0xbf27 和 0xbf5c 都会被认为是一个字符(双字节字符)。

在这里插入图片描述

(图片来源《白帽子讲Web安全》书中插图)

原因是在进入数据库之前,在Web语句中没有考虑到双字节字符问题,双字节字符会被 认为是两个字节。在php中addslashes()函数或当magic_quotes_gpc开启时,会在特殊字符前增加一个转义字符\

攻击举例:

0xbf27 or 1=1

在这里插入图片描述

(图片来源《白帽子讲Web安全》书中插图)

经过转义后会变成 0xbf5c27 ,由于\ 的ASCII码为0x5c,0xbf5c 又是一个字符,所以原本会存在的转义字符 \在数据库中被吃掉变成:

在这里插入图片描述

(图片来源《白帽子讲Web安全》书中插图)

3.2.3、解决方案

统一数据库、操作系统、Web应用所使用的字符集,避免各层对字符的理解存在差异。统一设置为UTF-8是一个很好的方法。

3.2.4、正确防御SQL注入

可以使用:预编译语句、存储过程、安全函数和检查数据类型等,但存储过程也可能存在注入问题。

3.2.5、其他注入攻击

其他注入攻击有:XML注入、代码注入和CRLF注入等。CRLF是两个字符,CR是Carriage Return (ASCII 13, \r),LF 是Line Feed (ASCII 10,\n)。\r\n 表示换行,十六进制编码分别为 0x0d 、0x0a。

**CRLF注入:**CRLF常用于不同语义之间的分隔符,注入CRLF字符可能改变原有的语义。注入场景:log、HTTP头。防御方法: 处理好 \r \n 两个保留字,尤其是使用 换行符 作为分割符的应用。

3.3、文件上传漏洞

需要条件:

1、上传 的文件能够被Web容器解释执行

2、用户能从Web上访问这个文件。

3.3.1、设计安全的文件上传功能

1、文件上传的目录设置为不可执行

2、判断文件类型:结合使用MIME Type、后缀检查等方式,推荐使用白名单的方式。

3、使用随机数改写文件名和文件路径

4、单独设置文件服务器的域名

3.4、PHP安全

目录遍历漏洞是一种跨越目录读取文件的方法,PHP配置open_basedir可很好保护服务器,使攻击无效。

PHP上传文件会创建临时文件,目录在php.iniupload_tmp_dir定义,值默认空,linux默认使用/tmp,windows默认使用C:\windows\temp

可直接执行代码的函数: eval()、assert()、system()、exec()、shell_exec()、passthru()、escapeshellcmd()、pcntl_exec()等。

文件包含函数: include()、include_once()、require()、require_once()。

本地文件写入: file_put_contents()、fwrite()、fputs()等。

3.5、安全开发流程(SDL)

安全开发流程:能够帮助企业以最小的成本提高产品的安全性,战略思想: Secure at the Source。

SDL 全称: Security Development Lifecycle,安全开发生命周期,最早由微软件提出,在软件工程中实施,帮助解决软件安全问题的办法。SDL是一个安全保证的过程,重点是是软件开发,是在开发的所有阶段都引入了安全和隐私的原则。

4、资料获取&我的公众号

如需要《白帽子讲Web安全》PDF版本,请关注公众号:大象只为你,后台回复:白帽子。

敬请关注我的公众号:大象只为你,持续更新网安相关知识中…

这篇关于《白帽子讲Web安全》读后感笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1082896

相关文章

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2