本次写的是一篇如何通过针对性系统学习Web安全或者说如何能成为一名渗透测试人员(有疑问或者错误的地方还望大家多多指正)。
相信大家每学习一样东西的时候都是存在一种很迷茫的心态(包括我自己),上网找视频找文章找资料学习得零零散散,最后还是浪费时间只得到一身三脚猫功夫。只有成体系的去学习、让自己的知识由点变成面,这样才能变得更强(文末附上书籍和工具包,希望大家查漏补缺,强中强)!
Web 安全 主要包括 HTTP 协议、注入漏洞、XSS 漏洞、SSRF 漏洞、CSRF 漏洞、文件处理漏洞、访问控制漏洞、会话管理漏洞等。
中间件安全 主要包括 Apache、IIS、Tomcat、weblogic、websphere、Jboss 等。
操作系统安全 主要包括 Windows 操作系统、Linux 操作系统知识。
数据库安全 主要包括 Mssql数据库、Mysql数据库、Oracle数据库、Redis数据库知识。
1 Web安全
1.1 HTTP协议
http是一个简单的请求-响应协议,它通常运行在TCP之上。
它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
请求和响应消息的头以ASCII码形式给出;而消息内容则具有一个类似MIME的格式。
学习要点:
- 请求方法:OPTIONS, PUT, DELETE,和TRACE 方法的基本概念
- HTTP请求的基本方法和产生的请求结果
- HTTP 状态码的规范
- HTTP 状态码的作用
- 常见的 HTTP 状态码
- HTTP 状态码 2**,3**,4**,5** 代表的含义
- 用计算机语言获取 HTTP 状态码的方法
- GET 请求的标准格式
- POST 请求提交表单,上传文件的方法
- HEAD 请求与 GET 请求的区别
- 常见的 HTTP 响应头
- HTTP 响应头的作用
- HTTP 响应头的名称
- HTTP 响应头的格式
- URL 的基本概念
- URL 的结构
- URL 编码格式
SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。
学习要点
- SQL 注入漏洞原理
- SQL 注入漏洞对于数据安全的影响
- SQL 注入漏洞的方法
- 常见数据库的 SQL 查询语法
- MSSQL,MYSQL,ORACLE 数据库的注入方法
- SQL 注入漏洞的类型
- SQL 注入漏洞修复和防范方法
- 一些 SQL 注入漏洞检测工具的使用方法
XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。
学习要点
- XML 注入漏洞产生的原因
- XML 注入漏洞的利用方式
- 如何修复 XML 注入漏洞
即服务器通过 PHP 的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严格,从而可以去包含一个恶意文件,攻击者就可以远程构造一个特定的恶意文件达到攻击目的。
学习要点
- 远程文件包含漏洞所用到的函数
- 远程文件包含漏洞的利用方式
- 远程文件包含漏洞代码审计方法
- 修复远程文件包含漏洞的方法
文件包含漏洞的产生原因是 PHP 语言在通过引入文件时,引用的文件名,用户可控,由于传入的文件名没有经过合理的校验,或者校验被绕过,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。当被包含的文件在服务器本地时,就形成的本地文件包含漏洞。了解 PHP 脚本语言本地文件包含漏洞形成的原因,通过代码审计可以找到漏洞,并且会修复该漏洞。
学习要点
- 什么是本地文件包含漏洞
- 本地文件包含漏洞产生的原因
- 本地文件包含漏洞利用的方式
- PHP 语言中的封装协议
- 本地文件包含漏洞修复方法
命令执行漏洞是指应用有时需要调用一些执行系统命令的函数,如:system()、exec()、shell_exec()、eval()、passthru(),代码未对用户可控参数做过滤,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
学习要点
- 什么是命令注入漏洞
- 命令注入漏洞对系统安全产生的危害
- 脚本语言中可以执行系统命令的函数
- 第三方组件存在的代码执行漏洞如 struts2,weblogic等
- 命令注入漏洞的修复方法
攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。因为存储型XSS的代码存在于网页的代码中,可以说是永久型的。
学习要点
- 存储式 XSS 漏洞对安全的影响
- 存储式 XSS 漏洞的特征和检测方法
- 存储式 XSS 漏洞的危害
- 修复存储式 XSS 漏洞的方式
- 常用 WEB 漏洞扫描工具对存储式 XSS 漏洞扫描方法
反射型 XSS 也被称为非持久性 XSS。当用户访问一个带有 XSS 代码的 URL 请求时,服务器端接收数据后处理,然后把带有 XSS 代码的数据发送到浏览器,浏览器解析这段带有 XSS 代码的数据后,最终造成 XSS 漏洞。这个过程就像一次反射,故称为反射型 XSS 漏洞。
学习要点
- 反射式 XSS 漏洞与存储式 XSS 漏洞的区别
- 反射式 XSS 漏洞的触发形式
- 反射式 XSS 漏洞利用的方式
- 反射式 XSS 漏洞检测和修复方法
DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。
学习要点
- DOM 式 XSS 漏洞的触发形式
- DOM 式 XSS 漏洞的检测方法
- DOM 式 XSS 漏洞的修复方法
SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系统,也就是把目标网站当中间人)。
学习要点
- 什么是 SSRF 漏洞
- 利用 SSRF 漏洞进行端口探测的方法
- SSRF 漏洞的检测方法
- SSRF 漏洞的修复方法
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
学习要点
- CSRF 漏洞产生的原因
- CSRF 漏洞的原理
- CSRF 漏洞与 XSS 漏洞的区别
- CSRF 漏洞的挖掘和修复方
文件上传包括了上传头像,上传相册,上传附件,添加新闻图片,自定义主题背景,新闻投稿等等,开发者由于对安全意识不足,或者编写代码时对上传文件的合法校验存在缺陷,导致上传漏洞的产生或Web容器漏洞、CGI、配置不当等等
学习要点
任意文件上传漏洞产生的原因
服务端语言对上传文件类型限制方法
任意文件上传漏洞的危害
上传漏洞的检测思路和修复方法
1.5.2 任意文件下载
许多网站开放下载文件功能,由于下载功能代码对下载文件类型、目录未做限制或限制不当,导致攻击者可下载服务器任意文件。
学习要点
- 什么是文件下载漏洞
- 通过文件下载漏洞读取服务端文件的方法
- 能够通过代码审计和测试找到文件下载漏洞
- 修复文件下载漏洞的方法
水平越权访问是一种“基于数据的访问控制”设计缺陷引起的漏洞。由于服务器端在接收到请求数据进行操作时没有判断数据的所属人/所属部门而导致的越权数据访问漏洞。
学习要点
- 水平越权漏洞的基本概念
- 水平越权漏洞的形式
- 水平越权漏洞对网站安全的影响
- 水平越权漏洞的测试和修复方法
垂直越权是一种“基于URL的访问控制”设计缺陷引起的漏洞,又叫做权限提升攻击。由于后台应用没有做权限控制,或仅仅在菜单、按钮上做了权限控制,导致恶意用户只要猜测其他管理页面的URL或者敏感的参数信息,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。
学习要点
- 垂直越权漏洞的基本概念
- 垂直越权漏洞的种类和形式
- 对网站安全的影响
- 越权漏洞的测试方法和修复
未授权访问漏洞可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷导致其他用户可以直接访问从而引发重要权限可被操作、数据库或网站目录等敏感信息泄露。
学习要点
- 如何去挖掘未授权访问
- 未授权访问的危害
- 未授权访问的修复方法
目录遍历漏洞原理比较简单,就是程序在实现上没有充分过滤用户输入的../之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件。这里的目录跳转符可以是../,也可是../的ASCII编码或者是unicode编码等。
学习要点
- 目录遍历的成因以及概率
- 如何探索目录遍历
- 目录遍历的修复方法
例如你Telnet到某台主机,这就是一次Telnet会话;你浏览某个网站,这就是一次HTTP会话。而会话劫持(Session Hijack),就是结合了嗅探以及欺骗技术在内的攻击手段。例如,在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行监听,甚至可以是代替某一方主机接管会话。
学习要点
- 什么是会话劫持漏洞
- 会话劫持漏洞的危害
- Session 机制
- HttpOnly 的设置方法
- 会话劫持漏洞防御方法
会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。
学习要点
- 什么是会话固定漏洞
- 会话固定漏洞的检测方法
- 会话固定漏洞的形成的原因
- 会话固定漏洞的风险
- 会话固定漏洞的防范方法
学习要点
- 当前 Apache 服务器的运行权限
- 控制配置文件和日志文件的权限,防止未授权访问
- 设置日志记录文件、记录内容、记录格式
- 禁止 Apache 服务器列表显示文件的方法
- 修改 Apache 服务器错误页面重定向的方法
- 设置 Web 目录的读写权限,脚本执行权限的方法
- Apache 服务器解析漏洞的利用方式
- Apache 服务器文件名解析漏洞的防御措施
- Apache 服务器日志审计方法
学习要点
- 身份验证功能,能够对访问用户进行控制
- 利用账号控制 web 目录的访问权限,防止跨目录访问
- 为每个站点设置单独的应用程序池和单独的用户的方法
- 取消上传目录的可执行脚本的权限的方法
- 启动或禁用日志记录,配置日志的记录选项操作
- IIS6,IIS7 的文件名解析漏洞
- IIS6 写权限的利用
- IIS6 存在的短文件名漏洞
- IIS 日志的审计方法
学习要点
- Tomcat 服务器启动的权限
- Tomcat 服务器后台管理地址和修改管理账号密码的方法
- 隐藏 Tomcat 版本信息的方法
- 如何关闭不必要的接口和功能
- 如何禁止目录列表,防止文件名泄露
- Tomcat 服务器通过后台获取权限的方法
- Tomcat 样例目录 session 操纵漏洞
- Tomcat 的日志种类
- Tomcat 日志的审计方法
学习要点
- Weblogic 的启动权限
- 修改 Weblogic 的默认开放端口的方法
- 了解禁止 Weblogic 列表显示文件的方法
- Weblogic 后台获取权限的方法
- Weblogic 存在的 SSRF 漏洞
- 反序列化漏洞对 Weblogic 的影响
- Weblogic 日志的审计方法
学习要点
- Websphere 管理的使用
- Websphere 的安全配置
- 反序列化漏洞对 Websphere 的影响
- 子域: 漏洞利用与防范
- Websphere 的日志审计
学习要点
- 设置 jmx-console/web-console 密码的方法
- 开启日志功能的方法
- 设置通讯协议,开启 HTTPS 访问
- 修改 Web 的访问端口
- 反序列化漏洞对 Jboss 的影响
- JMXInvokerServlet/jmx-console/web-console 漏洞利用与防范
- Jboss 日志审计的方法
账户和口令是登录系统的基础,也是众多黑客程序攻击和窃取的对象。因此,系统账户和口令的安全是非常重要的,也是可以通过合理设置来实现的。普通常常在安装系统后长期使用系统的默认设置,忽视了Windows系统默认设置的不安全性,而这些不安全性常常被攻击者利用,通过各种手段获得合法的账户,进一步破解口令。所以,首先需要保障账户和密码安全。
学习要点
- Windows 用户账户和组账户权限的分配
- Windows 用户空口令风险
- 多用户同时使用的安全配置
- 对用户登入事件进行审核方法
- 对远程登入账号的检查
Windows系统提供的磁盘格式有FAT,FAT32以及NTFS。其中,FAT格式和FAT32格式没有考虑对安全性方面的更高需求,例如无法设置用户访问权限等。NTFS文件系统是Windows操作系统中的一种安全的文件系统。管理员或用户可以设置每个文件夹的访问权限,从而限制一些用户和用户组的访问,以保障数据的安全。
学习要点
- NTFS 文件权限种类
- 通过 ACL 控制列表,设置目录或者文件的用户访问权限
- 命令行下修改目录或者文件的访问权限的方法
审核与日志是Windows系统中最基本的入侵监测方法。当有攻击者尝试对系统进行某些方式的攻击时,都会被安安全审核功能记录下来,写入到日志中。
一些Windows下的应用程序,如IIS(Internet信息服务器),也带有相关的审核日志功能,例如,IIS的FTP日志和WWW日志等。IIS每天生成一个日志文件,包含了该日志的一切记录,例如,试图通过网络登陆系统的IP地址等,文件名通常为ex(年份)(月份)(日期),如,ex100211,就是2010年2月11日产生的日志。
IIS的WWW日志在系统盘中%systemroot%\System32\logfiles\w3svc1\目录下,
FTP日志在%Systemroot%\system32\logfiles\msftosvc1\目录下。
而系统日志,安全性日志和应用程序日志分别为%Systemroot%\system32\config文件夹下的3个文件。
学习要点
- Windows 系统日志的种类
- Windows 安全日志的登入类型
- 日志审计的方法
合理分配用户账号以及用户权限。根据用户的业务需求配置其最小的用户权限。对于一些重要的文件应该设置合理的权限,避免没有经验的管理员执行误操作而造成巨大的损失。对于用户的密码应该设置复杂,长度至少大于8位。
学习要点
- Linux 系统中的账号和组
- 弱口令密码带来的风险
- 检查空口令的方法
- 检查系统中是否存在其它 id 为 0 的用户的方法
学习要点
- Linux 文件系统的文件格式分类
- 如何检查系统中存在的 SUID 和 SGID 程序
- 检查系统中任何人都有写权限的目录的方法
- 修改目录和文件权限的方法
- 搜索文件内容的方法
- Linux 系统的日志种类
- Linux 日志文件
- 使用常用的日志查看命令,进行日志审计的方法
学习要点
- Mysql 在操作系统中运行的权限
- Mysql 账户的安全策略
- Mysql 远程访问的控制方法
- Mysql 数据库所在目录的权限控制
- Mysql 数据库常用函数
- Mysql 数据库权限提升的方法
学习要点
- Mssql 数据库在操作系统中启动的权限
- Mssql 数据库中服务器角色和数据库角色
- Mssql 存在 SA 弱口令和空口令带来的危害
- Mssql 数据库执行系统命令或者操作系统文件的存储过程
- Mssql 提升权限的方法
学习要点
- Oracle 数据库的账号管理与授权
- 为不同管理员分配不同的账号的方法
- 设置管理 public 角色的程序包执行权限
- 限制库文件的访问权限
- Oracle 执行系统命令的方法
学习要点
- Redis 数据库运行权限
- Redis 数据库的默认端口
- Redis 未授权访问的危害
- Redis 开启授权的方法
- 渗透测试的基本三要素
1.信息收集
- 信息收集的重要性
- 收集信息的内容
- 信息收集的常用工具
- 所收集信息的利用方法
- 通过信息收集发现的漏洞
- 常用漏洞扫描工具
- 漏洞发现工具的使用方法
- 漏洞的验证与测试方法
- 漏洞的原理
- 漏洞的类型
- 漏洞利用的方式
- 如何利用漏洞获取权限
文章图片
文章图片
文章图片
网络安全学习路线
文章图片
详细网络安全白皮书版本点击领取
赠送2021工具大礼包
文章图片
【网络安全|2021web安全最全学习路线,从入门到入职(含书籍、工具包)】
推荐阅读
- 渗透测试|2021年网络安全学习路线指导(含视频教程)
- 网络安全|我的网络安全学习之路
- PendingIntent重定向(一种针对安卓系统和流行App的通用提权方法——BlackHat EU 2021议题详解(上))
- 课程设计|课程设计 五子棋C语言源代码(含人机)
- 首届腾讯数字安全创新大赛在京启动,挖掘新锐力量推动产业创新
- 谷歌以54亿美元收购网络安全公司、数百万惠普设备存在高危漏洞|3月10日全球网络安全热点
- 一图看懂 | 腾讯数字安全创新大赛
- 腾讯安全发布《容器安全在野攻击调查》
- 三星数据被黑客泄露、罗马尼亚加油站网络遭勒索攻击|3月8日全球网络安全热点