zoukankan      html  css  js  c++  java
  • 渗透测试之Web安全

    写在前面:

    1. 渗透测试包含但不限于Web安全
    2. 渗透测试并不相当于Web渗透
    3. Web安全学习是入门渗透测试最容易的途径,门槛最低

    Web安全入门:

    1. 基础入门
    2. 整体框架
    3. SQL注入
    4. XSS攻击
    5. 业务逻辑漏洞
    6. 代码审计
    7. 安全编程

    如何学习(学习的路线):

    1. web 的基础知识(重要)
    2. 漏洞原理
      SQL、XSS、文件上传、CSRF、SSRF、XXE等
    3. 编程能力(重要)
    4. 实战练习
      实战练习是从头贯穿到尾的

    下面从几个方面具体说明

    一、基础知识(杂/乱)

    需要的基础知识包括但不限于以下几点:

    1. 编程基础                      主要指脚本语言,比如PHP、Python
    2. 网络常识                      计算机网络(大学教材), 计算机网络自顶向下的方法(外国著作)
    3. 服务器的基本使用        Linux/Windows(Linux 是重点)  ,基本命令(鸟哥的 Linux 私房菜), 部署Web服务器
    4. 基础软件的使用           VMware、数据库
    5. 计算机基础(软/硬件)软件部分主要指操作系统,进程、线程等,硬件部分主要包括内存、CPU、网卡

    以上五点之中,前三点很重要!

    二、编程语言

    1. PHP/JSP/ASPX
    2. Python
    3. HTML
    4. JavaScript

    前期推荐学 PHP、Python。HTML 和 CSS 了解、能够看懂并写简单的 HTML 代码。JavaScript 要重点掌握。

    实际应用:

    1. 代码审计
    2. 安全开发
    3. 安全运维

    三、网络基础

    1. OSI 七层参考模型
    2. TCP/IP 模型

    把握以下重点:

    1. TCP 协议
    2. IP 协议
    3. HTTP 协议
    4. DNS 协议

    学会使用工具:

    1. wireshark      主要分析基于 TCP/IP 协议底层的数据包
    2. burpsuit         主要分析 HTTP 协议的数据包
    3. nmap             端口扫描
    4. OWASP         目录爆破

    一定一定要知道原理,不然这是一个脚本小子,知识面的大小决定攻击面的大小,原理很重要!

    三、服务器的基本使用

    1. Linux/Windows
    2. 基础命令
    3. 环境搭建

    推荐书籍: 鸟哥的 Linux 私房菜,篇幅较长可以当工具书来查阅,但是最好多翻一翻。

    四、整体框架

    常见的 Web 漏洞:

    1. SQL 注入
    2. 文件上传
    3. 文件包含
    4. 命令执行
    5. XSS
    6. CSRF
    7. SSRF
    8. XXE
    9. 中间件安全
    10. 业务逻辑漏洞
    11. 常见框架漏洞

    以下为几个重点的:

    1. SQL 注入(建议首先要掌握的漏洞)

    掌握:

    数据库的增删改查

    了解:
    关系型数据库 MySQL/MSSQL/Oracle
    非关系型数据库 Redis/Memchche/MongoDb

    工具:
    SQLmap/NoSQLmap
    SQLmap 支持12种关系型数据库的注入
    NoSQLmap 支持非关系型数据库的注入

    学完基础的之后:

    1. 联合注入
    2. 时间盲注
    3. 布尔盲注
    4. 报错盲注
    5. 命令执行

    针对不同数据库的攻击技巧是不同的,不能用工具一把梭。细节就是和大佬之间的区别!

    推荐书籍: SQL注入攻击与防御(第二版)     sqlmap从入门到精通(简单看一下就行)

    2. XSS(跨站脚本攻击)

    1. 反射型
    2. 存储型(重点)
    3. DOM型

    作用:

    1. cookie 窃取
    2. 键盘记录
    3. 网页截屏
    4. 网页挂马
    5. XSS 蠕虫
    6. 钓鱼攻击
    7. 水坑攻击
    8. 经纬度定位

    入门书籍: XSS 跨站脚本攻击剖析与防御(有几年了,略老)

    3. 业务逻辑漏洞(代码逻辑的问题)

    1. 身份认证安全
    2. 数据篡改
    3. 未授权访问
    4. 任意密码找回
    5. 验证码突破
    6. 接口调用安全
    7. 其他逻辑漏洞

    4. 代码审计

    检查源代码的安全缺陷,源代码是否存在安全隐患或者编写不规范的地方。

    如何进行代码审计(方法论):

    1. 审计环境的准备
    2. 学习审计代码的流程
    3. 牢记常见的危险函数以及特殊函数
    4. 细心 + 耐心 + 一点小运气

    入门书籍:《代码审计:企业级 Web 代码安全架构》

    总结

    Web 安全的本质

    1. 用户能控制输入的内容
    2. 服务端没有对用户输入的内容进行检查过滤
    3. Web 应用把用户输入的内容带入到某个地方执行

    渗透测试职业的后半部分应该是安全体系建设的能力,这才是价值的体现,要从实践中获取经验,从经验中抽象出事物的本质。

  • 相关阅读:
    菜鸟调错(四)——Spring与DWR集成,配置文件报错
    FIFO、LRU、OPT页面调度算法及样例
    JConsole的使用手册 JDK1.5(转)
    jconsole JDK1.6 使用手册 (转)
    CPU利用率与Load Average的区别?
    Load和CPU利用率是如何算出来的 (转发)
    SecureCRT 默认配置
    Java 内存区域和GC机制(转载)
    Java 线程池的原理与实现 (转)
    【转载】java项目中经常碰到的内存溢出问题: java.lang.OutOfMemoryError: PermGen space, 堆内存和非堆内存,写的很好,理解很方便
  • 原文地址:https://www.cnblogs.com/yytest/p/12631137.html
Copyright © 2011-2022 走看看