web渗透测试 学习导图

news2024/9/20 22:38:56

web渗透学习路线


前言

一、web渗透测试是什么?

Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况下对其渗透,相当于代码分析审计。而黑盒测试则是在对该网站系统信息不知情的情况下渗透,以下所说的Web渗透就是黑盒渗透。

二、web渗透步骤

Web渗透分为以下几个步骤,信息收集,漏洞扫描,漏洞利用,提权,内网渗透,留后门,清理痕迹。一般的渗透思路就是看是否有注入漏洞,然后注入得到后台管理员账号密码,登录后台,上传小马,再通过小马上传大马,提权,内网转发,进行内网渗透,扫描内网c段存活主机及开放端口,看其主机有无可利用漏洞(nessus)端口(nmap)对应服务及可能存在的漏洞,对其利用(msf)拿下内网,留下后门,清理痕迹。或者看是否有上传文件的地方,上传一句话木马,再用菜刀链接,拿到数据库并可执行cmd命令,可继续上大马…思路很多,很多时候成不成功可能就是一个思路的问题,技术可以不高,思路一定得骚。

1.前期工作

html+css+js

前端三要素 html、css、js是被浏览器解析的代码,是构成静态页面的基础。也是前端漏洞如xss、csrf的基础。

重点了解html和js

能力要求:能够写出简单表单,能够通过js获取DOM元素,控制DOM树即可。

apache+php
推荐使用phpstudy来进行傻瓜式安装,可以少走很多弯路。通过apache+php体会一下网站后端的工作,客户端浏览器通过请求apache服务器上的php脚本,php执行后生成的html页面返回给浏览器进行解析。

重点了解php

能力要求:了解基本网站原理,了解php基本语法,开发简单动态页面
mysql
之前已经安装的phpstudy可以轻易的安装mysql。mysql是一款典型的关系型数据库,一般来说,大部分网站都会带有数据库进行数据存储。

重点了解sql语句

能力要求: 能够用sql语句实现增删改查,并且能用php+mysql开发一个增删改查的管理系统(如学生管理系统)
python
虽然 “php是最好的语言”,但它主要还是应用在服务端做网站开发,我们搞安全经常需要写一些脚本或工具来进行诸如密码爆破、目录扫描、攻击自动化等操作,需要一个方便且趁手的编程语言,这里我推荐python

重点学习requests、BeautifulSoup、re这三个库

能力要求: 了解python基础语法,能够用python爬取网站上的信息(requests+BeautifulSoup+re)
burpsuite
web安全的工具很多,但我觉得必备的渗透工具还得是它

重点学习Proxy、Repeater、Intruder三个模块,分别用于抓包放包、重放包、爆破

初步使用即可,在中期的漏洞学习中去逐渐熟练它

能力要求: 能够用burpsuite抓包改包、爆破用户名密码

2.中期提高

此时我们对网站已经不再陌生,能够自己动手完成一个简单站点。但我们写出来的代码真的安全吗?进入中期,我们便要开始着眼经典漏洞的学习。

一个漏洞的学习,要搞明白三点(每学完一个漏洞就问自己这三个问题):

如何利用这个漏洞进行恶意操作? 为什么会产生这个漏洞? 如何修复这个漏洞?
SQL注入
(1) 了解产生sql注入的原理
(2) Union注入
(3) POST类型注入
(4) 万能用户
(5) 盲注

能力要求: 能够手工注入出任意表的数据,熟悉三种盲注的手法,能够通过sql注入实现任意文件读取和任意文件写入,能够自己编写一个不含sql注入的查询功能

文件上传
(1) 了解原理
(2) 会编写一句话木马
(3) 会用cmd命令吧一句话木马与图片结合
(4) 利用一句话木马getshell

能力要求: 会写php的webshell,明白webshell的原理,熟悉常见的文件上传绕过方法(如过后缀检测、过文件头检测、过MIME类型检测),能够自己编写一个不含漏洞的上传功能

文件包含
(1) 了解原理
(2) 会利用文件包含与文件上传文件相结合来getshell
(3) 会访问容易文件
(4)file协议、php伪协议的利用

命令执行
(1) 了解原理
(2) 了解一些cmd的基本命令
(3) 知道哪些特殊字符有特殊作用
(4)php常见的代码执行(eval)、命令执行(system)函数

XSS
(1) 了解原理
(2) 学一下javascript的基本语法
(3) 然后会利用xss获取cookie
(4) 编写一个简单的xss蠕虫

CSRF
(1) 了解原理
(2) 可以利用CSRF进行一些小操作(通过csrf让用户点击恶意链接就触发敏感操作)
(3) 结合xss来利用

变量覆盖
(1) 了解原理
(2) 利用变量覆盖来getshell

XEE
(1) 了解一些XML的语法
(2) 了解原理
(3) 会用XEE来getshell之类的

反序列化
(1) 了解序列化
(2) 了解反序列化
(3) 了解POP链

逻辑漏洞

3.后期打牢

多多参与CTF赛事
参与当下举行的ctf赛事是最好的学习方法之一,即使是初学者也能够找到一些适合自己能力的赛事,比如极客大挑战、UNCTF、各个大学的新生赛等等都是不错的选择,在比赛中去发现自己知识的不足,然后去针对的补充这部分知识,是很好的学习循环,无需迷茫的去到处获取知识,而是在需要时去学习。

Tips: 或许有人觉得直接刷题是一样的,但完全不是,当下比赛中的题往往更加前沿和流行,你可以找到当下的ctf题目趋势,紧跟技术热点,而且可以多多融入ctf竞技的氛围中,成长的更快。

ctfhub 可以很方便的查看最近举行的ctf赛事
多多看其他师傅的博客
打完ctf比赛的你肯定是想看writeup(答案)的,一般来说赛后过几天就会有很多师傅发出他的writeup,从比赛群、百度等途径都可以找到。多多看看其他师傅的解题思路,关注几个大牛,看看他们发的技术文章,都是很好的学习方法。

三、熟悉渗透相关工具

熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。

  • 1.了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;
  • 2.下载无后门版的这些软件进行安装;
  • 3.学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;

渗透实战操作

掌握渗透的整个阶段并能够独立渗透小型站点。

  • 1.网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
  • 2.自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
  • 3.思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准;
  • 4.研究SQL注入的种类、注入原理、手动注入技巧;
  • 5.研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架;
  • 6.研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS;
  • 7.研究Windows/Linux提权的方法和具体使用,可以参考:提权;

关注安全圈动态

关注安全圈的最新漏洞、安全事件与技术文章。

  • 1.通过SecWiki浏览每日的安全技术文章/事件;
  • 2.通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;
  • 3.通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;
  • 4.养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;
  • 5.多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。
  • 6.关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference。

熟悉Windows/Kali Linux

学习Windows/Kali Linux基本命令、常用工具;

1.熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;

2.熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;

3.熟悉Kali Linux系统下的常用工具,可以参考SecWiki,《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;

4.熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》。

服务器安全配置

学习服务器环境配置,并能通过思考发现配置存在的安全问题。

  • 1.Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置;
  • 2.Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置;
  • 3.远程系统加固,限制用户名和口令登陆,通过iptables限制端口;
  • 4.配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity;
  • 5.通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

脚本编程学习

选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习

  • 1.搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推Sublime,一些Sublime的技巧:SecWiki-Sublime;
  • 2.Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;
  • 3.用Python编写漏洞的exp,然后写一个简单的网络爬虫,可参见SecWiki-爬虫、视频;
  • 4.PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;
  • 5.熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);
  • 6.了解Bootstrap的布局或者CSS,可以参考:SecWiki-Bootstrap;

源码审计与漏洞分析

能独立分析脚本源码程序并发现安全问题。

  • 1.熟悉源码审计的动态和静态方法,并知道如何去分析程序,参见SecWiki-审计;
  • 2.从Wooyun漏洞库上寻找开源程序的漏洞进行分析并试着自己分析;
  • 3.了解Web漏洞的形成原因,然后通过关键字进行查找分析,参见SecWiki-代码审计、高级PHP应用程序漏洞审核技术;
  • 4.研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2059119.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测绘程序设计|初识C#编程语言|C#源码结构|面向对象|MFC、WinFrom与WPF

由于微信公众号改变了推送规则,为了每次新的推送可以在第一时间出现在您的订阅列表中,记得将本公众号设为星标或置顶喔~ 根据笔者经验,分享了C#编程语言、面向对象以及MFC、WinForm与WPF界面框架相关知识~ 🌿前言 c#作为测绘程序…

微信小程序SSL证书申请重点和方法

微信小程序运行模式主要在手机微信内,这一套程序可以解决了用户注册账户及支付相关问题,另外使用很方便,用户不用特意的去安装小程序,只要在微信里面就可以开发,只因为这样微信小程序很受欢迎。 对于开发者来说&#…

车企数据治理实践:业务场景为抓手势在必行

在这个信息爆炸的时代,数据已经成为推动企业发展的核心动力,而数据治理则是确保数据价值得以最大化发挥的关键。在整车制造的研发、生产及供应链业务中,数据治理扮演着举足轻重的角色。 数据治理对于提升数据质量至关重要。高质量的数据是企…

elemeUI中table的列内容宽度不够时的省略号如何去掉

在外层套个div来解决 <div><el-input-number class"no-ellipsis" style"width: 88px;" size"small" controls-position"right" v-model{scope.row.supplied_area}></el-input-number> </div>

Java中优化大量数据导出到Excel的内存消耗(三):边读边写

优化大量数据导出到Excel的内存消耗&#xff08;二&#xff09;&#xff1a;如果数据超出Excel单表上限&#xff0c;则进行分表_txt导入excel超出最大行如何自动分表-CSDN博客 数据导出进行边读边写excel方式导出 DataSource dataSource dataSourceService.getByDsName(reque…

二手车交易系统功能案例分析

一、系统概述 二手车交易系统旨在连接卖家与买家&#xff0c;提供车辆信息发布、搜索、评估、交易、支付及售后服务等一站式解决方案。该系统需具备高度的可扩展性、稳定性和安全性&#xff0c;以满足日益增长的市场需求。 二、核心功能分析 1. 车辆信息发布与管理 功能描述…

三维坐标的旋转矩阵转换测试Demo(ROS1 RVIZ)

已知空间上的某一个点P在坐标系1下的位置为 P1&#xff08;1,2,3&#xff09;&#xff0c;需要求出P在三维空间坐标系0之间的相对关系&#xff0c;其中坐标系1是相对于坐标系0绕着x轴旋转60度后转化。示意如下图 程序设计 定义P点在坐标系1下的位置 array np.array([1,2,3…

vscode开发android ndk的环境配置

vscode开发android ndk的环境配置 最近公司新需求&#xff0c;要求用C/C实现部分核心代码&#xff0c;打包成静态库跨平台&#xff08;Android和iOS&#xff09;使用。 作为Android开发出身的C/C老白程序员兴奋不已&#xff08;又可以开心的学习niubility的C/C了&#xff09;&…

SpringCloudAlibaba基础七-2 seata的使用

一 Seata 是什么 Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。AT模式是阿里首推的模式,阿里云上有商用版本的GTS&#x…

pycharm创建文件自动生成文件头信息

pycharm创建文件自动生成文件头信息 1、设置步骤 file -> settings->Editor->File and Code Templates->Python Script 2、pycharm预定义的变量&#xff08;小写无效&#xff09; ${PROJECT_NAME}:项目名称${PRODUCT_NAME}:集成开发环境${NAME}:文件名${USER…

高效工作与持续学习:程序员如何平衡成长与编码任务?

在当今瞬息万变的技术世界中&#xff0c;程序员面临着前所未有的挑战和机遇。随着项目复杂性的增加和新技术的层出不穷&#xff0c;如何在繁忙的日常编码任务与自我提升之间找到平衡&#xff0c;已成为许多程序员心中的困惑。这不仅关乎职业生涯的发展&#xff0c;更关系到个人…

Transformer系列-3丨BERT模型和代码解析

1 前言 前面两篇文章&#xff0c;笔者从网络结构和代码实现角度较为深入地和大家解析了Transformer模型和Vision Transformer模型&#xff08;ViT&#xff09;&#xff0c;其具体的链接如下&#xff1a; 基础Transformer解析 ViT模型与代码解析 本期内容&#xff0c;笔者想…

贪心+构造,CF 1592F1 - Alice and Recoloring 1

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1592F1 - Alice and Recoloring 1 二、解题报告 1、思路分析 操作2、3可以…

C++系列-多态的基本语法

多态的基本语法 多态的含义静态多态动态多态 多态的底层原理多态中的final和overridefinaloverride: 多态的应用和优点计算器简单实现电脑组装的实现 《游山西村》 南宋陆游 莫笑农家腊酒浑&#xff0c;丰年留客足鸡豚。 山重水复疑无路&#xff0c;柳暗花明又一村。 箫鼓追…

leetcode118. 杨辉三角,老题又做

leetcode118. 杨辉三角 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1…

AI视频创作应用

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…

appium下载及安装

下载地址&#xff1a;https://github.com/appium/appium-desktop/releases 双击安装就可以

信号的变换

信号的变换 在实践中&#xff0c;缩放和时间平移是遇到的两个最重要的信号变换。缩放改变了振幅轴上的因变量的值&#xff0c;而时间平移则影响了时间轴上的自变量的值。 加法 对于两个离散时间信号的加法&#xff0c;例如 x [ n ] x[n] x[n] 和 y [ n ] y[n] y[n]&#x…

Flutter【02】mobx原理

简介&#xff1a; 概念 MobX 区分了以下几个应用中的概念&#xff1a; State(状态) 状态 是驱动应用的数据。 通常有像待办事项列表这样的领域特定状态&#xff0c;还有像当前已选元素的视图状态。 记住&#xff0c;状态就像是有数据的excel表格。 Derivations(衍生) 任何…