写在前面:

  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 应用把用户输入的内容带入到某个地方执行

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

渗透测试之Web安全的更多相关文章

  1. 小白日记51:kali渗透测试之Web渗透-WebShell(中国菜刀、WeBaCoo、Weevely)

    webshell 本质:<?php echo shell_exec($_GET['cmd']);?> windows平台 中国菜刀官网:胖客户端程序,国产中比较优秀的webshell,适用 ...

  2. 小白日记30:kali渗透测试之Web渗透-扫描工具-Skipfish

    WEB渗透-skipfish Skipfish是一个命令行模式,以C语言编写的积极的Web应用程序的安全性侦察工具,没有代理模式. 它准备了一个互动为目标的网站的站点地图进行一个递归爬网和基于字典的探 ...

  3. 小白日记28:kali渗透测试之Web渗透-扫描工具-Nikto

    扫描工具-Nikto #WEB渗透 靶机:metasploitable 靶场:DVWA[默认账号/密码:admin/password] #新手先将DVWA的安全性,调到最低,可容易发现漏洞 侦察[减少 ...

  4. 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)

    补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...

  5. 小白日记52:kali渗透测试之Web渗透-HTTPS攻击(Openssl、sslscan、sslyze、检查SSL的网站)

    HTTPS攻击 全站HTTPS正策划稿那位潮流趋势 如:百度.阿里 HTTPS的作用 CIA 解决的是信息传输过程中数据被篡改.窃取 [从中注入恶意代码,多为链路劫持] 加密:对称.非对称.单向 HT ...

  6. 小白日记50:kali渗透测试之Web渗透-CSRF

    CSRF CSRF原理:经常与XSS混淆. 从信任的角度进行区分:XSS:利用用户对站点的信任:CSRF:利用站点对已经身份认证的信任(有一定的信任)[默认情况:站点不信任客户端] 结合社工在身份认证 ...

  7. 小白日记49:kali渗透测试之Web渗透-XSS(三)-存储型XSS、DOM型XSS、神器BEFF

    存储型XSS与DOM型XSS [XSS原理] 存储型XSS 1.可长期存储于服务器端 2.每次用户访问都会被执行js脚本,攻击者只需侦听指定端口 #攻击利用方法大体等于反射型xss利用 ##多出现在留 ...

  8. 小白日记47:kali渗透测试之Web渗透-XSS(一)

    XSS [推荐书籍:XSS跨站脚本攻击剖析与防御] xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/ ...

  9. 小白日记46:kali渗透测试之Web渗透-SqlMap自动注入(四)-sqlmap参数详解- Enumeration,Brute force,UDF injection,File system,OS,Windows Registry,General,Miscellaneous

    sqlmap自动注入 Enumeration[数据枚举] --privileges -U username[CU 当前账号] -D dvwa -T users -C user --columns  [ ...

随机推荐

  1. cocoapods iOS类库管理工具的安装与使用

    CocoaPods是一个管理Swift和Objective-C的Cocoa项目的依赖工具.他可以优雅地帮助你扩展你的项目.简单的说,就是替你管理Swift和Objective-C的Cocoa项目的第三 ...

  2. 系统级编程(csapp)

    系统级编程漫游 系统级编程提供学生从用户级.程序员的视角认识处理器.网络和操作系统,通过对汇编器和汇编代码.程序性能评测和优化.内存组织层次.网络协议和操作以及并行编程的学习,理解底层计算机系统对应用 ...

  3. 【tomcat系列】配置tomcat远程访问

    当程序部署在tomcat上后,需要监测tomcat的性能和监测tomcat的各项指标,如内存使用情况,cpu使用情况,jvm实际情况等,对于这些指标的监控,tomcat提供了访问入口,然而tomcat ...

  4. git密令使用

    git密令是一种非常好用的代码版本管理工具,相比SVN,Sourcetree 使用起来复杂,主要是没有汉化包,当你使用熟练时,其实也是非常简单的,逼格高. 具体使用如下: 情景一:你只有远程库,没有本 ...

  5. 【5min+】 一个令牌走天下!.Net Core中的ChangeToken

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...

  6. Linux与unix shell编程指南

    第14章 环境和shell变量 1.使用变量时,尽量用花括号将之括起来,防止shell误解变量值. 2.设置变量时的不同模式 variable-name=value 设置实际值到variable-na ...

  7. redis 主从同步&哨兵模式&codis

    主从同步 1.CPA原理 1. CPA原理是分布式存储理论的基石: C(一致性):   A(可用性):  P(分区容忍性); 2. 当主从网络无法连通时,修改操作无法同步到节点,所以“一致性”无法满足 ...

  8. [Java网络安全系列面试题]常见web攻击有哪些?

    搞Web开发离不开安全这个话题,确保网站或者网页应用的安全性,是每个开发人员都应该了解的事.本篇主要简单介绍在Web领域几种常见的攻击手段及Java Web中的预防方式. 1. XSS 1.1 什么是 ...

  9. .NET 5 Preview 1的深度解读和跟进

    这几天微软.NET 团队发布了.NET 5 Preview-1, 如约而至.很兴奋,因为.NET Core和.NET Framework终于实现了大一统,同时也很期待,期待.NET 5能给我们带来哪些 ...

  10. 1. python跨目录调用模块

    快速镜像安装第三方库 :  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy (三方库名字) 同目录下,我们可以直接调用模块, ...