本文内容仅用于教育、研究与合法授权的安全测试目的。文中所涉及的技术方法、工具使用及实验过程,均假设操作者已获得目标系统或网络的明确书面授权。严禁将本文所述任何技术用于未授权的扫描、探测、入侵、数据窃取或其他违反《中华人民共和国网络安全法》《计算机信息系统安全保护条例》及相关国际法律法规的行为。非法使用本文信息所导致的一切法律责任,由行为人自行承担。我们不鼓励、不支持、亦不承担任何未经授权的网络安全测试活动。我们始终倡导“白帽精神”——以提升系统安全性、保护用户隐私与数字资产为根本目标。
一、渗透测试基础概念
(一)什么是渗透测试
渗透测试是一种通过模拟攻击者的技术与方法,以挫败目标系统的安全控制措施并取得访问控制权为目的的安全测试方法。渗透测试的过程并非简单地运行一些扫描器和自动化工具,而是结合系统和人的漏洞进行深入挖掘的一种系统性的测试方法。
渗透测试就像是请一位“白帽小偷”来帮你检查家里的防盗系统牢不牢固。想象一下,你刚搬进新家,装了门锁、防盗窗、监控摄像头,还设置了报警器。你觉得家里应该很安全了。但为了真正放心,你请来一位专业的“好人小偷”(也就是渗透测试人员),让他试着偷偷溜进你家——不是真的偷东西,而是看看他能不能找到漏洞,比如:
有没有哪扇窗户没关紧?门锁是不是很容易被撬开?报警器会不会对异常动静没反应?
这个“好人小偷”不会只用一把万能钥匙乱试(就像不会只靠自动扫描工具),而是会动脑筋:比如观察你家人的生活习惯(比如总把钥匙藏在花盆底下)、试试假装快递员敲门、甚至看看能不能从隔壁阳台翻过来……这些都是在模拟真实坏人可能用的手段。通过这种方式,他就能发现你根本没想到的安全死角。然后他会告诉你:“你家后门的锁太旧了,我三秒就打开了!”或者“你们总把密码写在冰箱上,这可不行!”——这样你就能及时修补漏洞,真正保护好自己的家。
在网络世界里,公司或网站也会请这样的“白帽黑客”来做类似的测试,这就是渗透测试:用真实攻击者的方法,提前找出系统里的弱点,防止真正的坏人得手。
(二)渗透测试主要的阶段
前期交互阶段:和客户(比如公司)先聊清楚——要测哪些系统、能用什么方法、有什么限制,就像考试前先看清楚题目和规则。
情报搜集阶段:偷偷收集目标的信息,比如网站用了什么技术、员工邮箱是什么,就像打游戏前先侦察敌方基地的布局。
漏洞分析以及利用阶段:找出系统里的“弱点”(比如过时的软件),然后尝试用工具或技巧“撬开”它,就像发现门锁生锈了,试试能不能用铁丝打开。
渗透攻击阶段:真正动手入侵系统,拿到控制权,比如进入后台、获取管理员权限,相当于小偷真的翻窗进屋了。
后渗透测试阶段:进到系统内部后,看看还能干啥——比如能不能访问更多电脑、窃取数据、留下后门,就像小偷进屋后翻箱倒柜找保险箱。
(三)渗透测试类型
白盒测试:提供测试系统的源代码或者目标相关资料。
灰盒测试:是白盒测试和黑盒测试基本类型的组合。
黑盒测试:未提供测试目标或者相关系统的资料,例如:源代码等信息。
(四)渗透测试方法
Web渗透测试:专门测试网站或网页应用的安全性,比如登录页面、购物车有没有漏洞,就像检查网店的收银台会不会被“白拿钱”。
内部网络渗透测试:模拟已经混进公司内部的人(比如员工或访客)从内网发起攻击,看看能不能控制更多电脑或服务器,相当于假装是实习生,实则想偷老板的文件。
社会工程学渗透测试:不靠技术,而是靠“骗”——比如打电话冒充IT人员套密码,或发假邮件让人点链接,就像骗子假装快递员让你开门一样。
移动端程序渗透测试:专门测试手机App(比如微信、银行App)有没有安全漏洞,比如会不会泄露你的密码或位置,就像检查你的智能门锁App会不会被远程解锁。
(五)环境搭建
想要看看自己在网络上安全吗?先来学学kali Linux的安装吧!
二、不同渗透测试流程
(一)WEB
- 信息收集
基础信息:IP,网段,域名,端口
系统信息:操作系统版本
应用信息:各端口的应用,如web应用,邮件应用等等
版本信息:所有这些探测到的东西的版本。
服务信息:cms版本信息,脚本语言。
- 漏洞探测
Web服务器漏洞:Web服务器配置问题
Web应用漏洞:Web应用开发问题
其它端口服务漏洞:21/8080/7001/22/3389等
- 漏洞验证
自动化验证:结合自动化扫描工具提供的结果
手工验证:根据公开资源进行验证
登陆猜解:可以尝试猜解一下登陆口的账号密码等
信息业务漏洞验证:如可能存在业务漏洞处,要进行验证
- 编写报告
补充介绍:要对漏洞成因,验证过程和带来危害进行分析
修补建议:当然要对所有产生的问题提出合理高效安全的解决办法
(二)社会工程学
- 信息收集
邮箱信息:目标官网公开的邮箱、招标平台邮箱、招聘信息的邮箱等
人员信息:目标网站上预留的联系人手机号等信息,通过加微信进一步利用
- 构造钓鱼内容
收集的招聘信息,就需要构造简历
招标平台信息,需要构造招标咨询
举报监督投诉的信息,需要构造举报内容
邮箱平台信息,需要构造一个一样的钓鱼网站
- 对恶意文件做免杀
由于目标的电脑环境通常装有杀毒软件,想钓鱼成功必须做免杀处理
- 发送钓鱼邮件
大量发送钓鱼邮件,由于每个人的信息安全意识水平不一,通过批量发送钓鱼邮件提高成功率
三、web渗透测试
(一)web背景知识
web1.0->web2.0->web3.0也是网络-人->人-人 ->人-网络-人的发展。
Web技术架构
客户端(浏览器)
| 浏览器内核 | 代表浏览器 | 当前状态与说明 |
|---|---|---|
| Trident (美国,Microsoft) | Internet Explorer (IE) | 已正式停用:微软于 2022 年 6 月 15 日终止 IE 支持,不再维护 |
| EdgeHTML (美国,Microsoft) | Microsoft Edge(旧版,2015–2019) | 已弃用:仅存在于早期 Edge 版本,2019 年后被 Chromium 取代 |
| Blink (美国,Google 主导;Chromium 开源社区) | Google Chrome、Microsoft Edge(新版)、Opera、Brave、Vivaldi 、360极速浏览器、QQ浏览器、UC浏览器(桌面版)等 | 当前主流内核:由 Google 主导,基于 Chromium 项目,占全球浏览器市场超 80% |
| Gecko(美国,Mozilla 基金会) | Mozilla Firefox | 仍在活跃开发:强调隐私、开放标准,是 Blink 之外最主要的独立内核 |
| WebKit(美国,Apple) | Apple Safari、微信内置浏览器(iOS)、华为浏览器(iOS版) | 仅用于 Safari:Apple 在 iOS 上强制所有浏览器使用 WebKit(即使 Chrome for iOS 也是 WebKit 封装) |
| Presto(挪威,Opera Software) | Opera(2003–2013) | 已彻底淘汰:Opera 自 2013 年起全面转向 Blink,Presto 不再使用 |
| X5 内核(中国,腾讯) | 微信内置浏览器、QQ、QQ浏览器、部分 Android App 的 WebView | 基于 Blink 深度定制(早期基于 WebKit),仍在活跃维护与更新 |
每个普通用户都在使用客户端的技术,它包括HTML、JavaScript、Flash等等,而这些技术对于普通用户来说不需要去关注,因为这些都已经被各种浏览器(Chrome、Firefox、Internet Explorer、Safari…)所封装好,同样,web客户端也可能是一段脚本,比如爬虫脚本、攻击poc脚本等。
Web 服务端(Web 服务器软件)
| Web 服务器 | 主要平台 | 当前状态与说明 |
|---|---|---|
| Nginx(俄罗斯,Nginx, Inc. / F5 Networks) | Linux / Unix / 跨平台 | 全球占有率第一(按高流量网站统计),擅长反向代理、负载均衡、静态资源服务 |
| Apache HTTP Server(美国,Apache 软件基金会) | 跨平台(Linux/Windows/macOS) | 仍广泛使用,但市场份额已被 Nginx 超越;配置灵活,模块生态丰富 |
| IIS(美国,Microsoft) | Windows Server 系列 | Windows 平台主流选择,集成 .NET 生态,适用于企业内部系统 |
| Caddy(美国,个人开发者 Matthew Holt 发起,开源社区维护) | 跨平台 | 新兴轻量服务器,自动 HTTPS(Let's Encrypt 集成),配置极简,增长迅速 |
| Tomcat(美国,Apache 软件基金会) | 跨平台(需 Java) | Java Web 应用容器,主要用于 Servlet/JSP,非通用 Web 服务器(常配合 Nginx 使用) |
| Lighttpd(德国,开源社区) | Linux/Unix | 小众轻量级服务器,适用于嵌入式或低资源场景,使用率较低 |
| IBM WebSphere / Oracle WebLogic(美国,IBM / Oracle) | 企业级(跨平台) | 传统企业 Java EE 应用服务器,正逐步被云原生方案(如 Quarkus、Spring Boot + Kubernetes)替代 |
| Tengine(中国,阿里巴巴集团) | Linux / Unix | 基于 Nginx 深度优化,曾支撑淘宝、天猫双11大促;开源项目(2011年启动),被百度、腾讯等多家中国企业采用 |
| OpenResty(中国,章亦春(agentzh)发起,OpenResty Inc.) | Linux | 基于 Nginx + LuaJIT,用于构建高性能网关和 API 服务,在中国互联网公司(如360、京东)广泛应用 |
常用于 Web 开发的编程语言包括:前端以 JavaScript/TypeScript 为主,后端主流有 JavaScript(Node.js)、Python、Java、PHP、C#、Go 等。
存储端(数据库系统)
| 类型 | 数据库名称 | 当前状态与说明 |
|---|---|---|
| 大型商业关系型数据库 | Oracle Database(美国,Oracle Corporation) | 仍主导金融、电信等关键行业,但面临开源和云数据库冲击 |
| Microsoft SQL Server(美国,Microsoft) | 深度集成 Azure 与 Windows 生态,企业级常用 | |
| IBM Db2(美国,IBM) | 仍有大型机和银行系统使用,但新项目较少 | |
| SAP HANA(德国,SAP SE) | 内存数据库,用于实时分析,属高端企业方案 | |
| OceanBase(中国,蚂蚁集团) | 分布式关系型数据库,TPC-C 性能世界纪录保持者,支持金融级高可用,已开源 | |
| GaussDB(中国,华为) | 华为云自研企业级数据库,兼容 Oracle/MySQL,用于政务、金融等关键领域 | |
| 主流开源/云原生数据库 | MySQL(瑞典 → 美国,MySQL AB → Oracle) | 最流行的开源关系数据库,广泛用于 Web 应用(如 WordPress、Facebook 早期) |
| PostgreSQL(全球,PostgreSQL 全球开发组) | 功能最强大的开源关系数据库,支持 JSON、GIS、全文搜索等,开发者首选之一 | |
| MariaDB(芬兰,MariaDB Foundation / MariaDB plc) | MySQL 的社区分支,由原作者创建,兼容 MySQL,用于替代场景(如 Wikipedia) | |
| TiDB(中国,PingCAP) | 分布式 NewSQL 数据库,兼容 MySQL 协议,支持 HTAP,被美团、小米、银行等广泛采用 | |
| 轻量级/嵌入式数据库 | SQLite(美国,D. Richard Hipp 开发,Public Domain) | 全球部署量最大的数据库(手机 App、浏览器、操作系统内置),单文件、零配置 |
| Microsoft Access(美国,Microsoft) | 仅限小型桌面应用,已基本退出 Web 或企业开发领域 | |
| 时序/专用数据库 | TDengine(中国,涛思数据 / TDengine Inc.) | 高性能时序数据库,专为物联网、监控场景设计,开源版活跃,性能领先 InfluxDB |
| NoSQL / 分布式数据库 | MongoDB(美国,MongoDB Inc.) | 文档数据库,广泛用于现代 Web 应用 |
| Redis(意大利 → 美国,Redis Labs / Redis Ltd.) | 内存键值存储,常用于缓存、消息队列 | |
| Cassandra(美国,Apache 软件基金会;原由 Facebook 开发) | 高可用分布式宽列数据库,源自 Facebook | |
| Elasticsearch(荷兰 → 美国,Elastic NV) | 分布式搜索与分析引擎,常用于日志、全文检索 | |
| Pika(中国,360 公司) | 兼容 Redis 协议的高性能存储系统,解决 Redis 内存瓶颈 | |
| 目录数据库 | Active Directory (AD) (美国,Microsoft) | 企业级主流目录服务:深度集成 Windows 域环境,支持身份认证、组策略、SSO 等;需 Windows Server 授权,广泛用于政企内网。 |
| OpenLDAP (全球,OpenLDAP Project / 开源社区) | 开源 LDAP 实现:跨平台、轻量、高度可定制,广泛用于 Linux/Unix 环境的身份认证后端;免费使用,社区维护。 | |
| FreeIPA (美国,Red Hat) | 集成化开源身份管理方案:基于 OpenLDAP + Kerberos + DNS + SSSD,提供类似 AD 的集中管理能力,主要面向 RHEL/CentOS/Fedora 生态。 | |
| 389 Directory Server (美国,Red Hat) | 企业级开源 LDAP 服务器:稳定可靠,支持多主复制和 GUI 管理工具,用于 Red Hat 系企业身份基础设施。 | |
| Apache Directory Server (美国,Apache 软件基金会) | Java 编写的 LDAP 服务器:支持嵌入式部署,适用于 Java 应用集成场景,但近年使用较少。 | |
| eIdentity 目录服务 (中国,浪潮) | 国产身份认证中间件组件:支持 LDAPv3 协议,兼容 AD 和 OpenLDAP,用于政务云、金融等信创场景,符合等保和密评要求。 | |
| TongWeb Directory / TongGDS (中国,东方通) | 东方通 Tong 系列中间件中的目录服务模块:支持标准 LDAP 接口,常用于国产化替代项目,与 TongWeb 应用服务器协同部署。 | |
| iSoftStone Identity Manager (含 LDAP 模块) (中国,软通动力) | 面向政企的统一身份管理平台:内置 LDAP 兼容目录服务,支持与国产操作系统(麒麟、统信)及数据库(达梦、人大金仓)集成。 | |
| Huawei Cloud IAM + LDAP 网关 (中国,华为) | 华为云身份与访问管理服务:虽非传统 LDAP 服务器,但提供 LDAP 兼容接口(通过 IAM Connect 或自建 LDAP 网关),用于混合云身份联邦。 | |
| Kingdee Apusic Directory Service (中国,金蝶天燕) | Apusic 中间件套件中的目录服务组件:支持 LDAPv3,用于国产中间件生态中的用户与权限管理,适配信创环境。 |
后端存储既可以放在和web服务器一起,也可以分开(即站库分离)。
CTF中与存储相关的考点主要以SQL注入为主
常见WEB应用框架
| 编程语言 | 框架名称 | 常用场景说明 |
|---|---|---|
| Java | Spring Boot | 主流选择:企业级应用、微服务、云原生后端、RESTful API(推荐新项目使用) |
| Spring MVC | 传统 Web 开发,适用于已有 Spring 生态的旧系统;新项目建议直接用 Spring Boot | |
| Struts2 | 已淘汰**:曾用于 2010 年代政务/银行系统,因安全漏洞多、配置复杂,不建议新项目使用;遗留系统应考虑迁移至 Spring Boot | |
| Jakarta EE | 大型企业分布式系统(如航空、电信),适合需要标准兼容性的场景 | |
| PHP | Laravel | 最流行 PHP 框架:快速开发 CMS、SaaS、API、后台系统,生态丰富 |
| Symfony | 企业级 PHP 应用,模块化强,Drupal/CMS 背后技术,适合复杂业务 | |
| ThinkPHP | 国内广泛使用:教育、政府、中小企业快速开发(注意版本安全) | |
| CodeIgniter (CI) | 轻量简洁:适合小型项目、原型或资源受限环境 | |
| Yii | 高性能后台/API:自带 Gii 代码生成,适合管理类系统 | |
| Zend Framework(现 Laminas Project) | 仅维护状态:曾用于大型企业 PHP 系统;完整 MVC 框架不推荐新项目使用,但其独立组件(如 laminas-validator)仍可作为工具库安全使用 | |
| Python | Django | 全栈开发:内容密集型网站(新闻、社交)、自带 Admin,适合快速交付 |
| Flask | 轻量灵活:微服务、API、AI/ML 模型 Web 接口 | |
| FastAPI | 高性能异步 API:现代数据服务、自动生成 OpenAPI 文档,适合 AI/云原生 | |
| JavaScript (Node.js) | Express.js | 最基础 Node 框架:轻量 REST API、中间件开发 |
| NestJS | 企业级 Node:TypeScript + 微服务架构,结构清晰 | |
| Koa | 更现代的轻量框架,适合定制中间件逻辑 | |
| Next.js | React 全栈/SSR:SEO 友好网站、混合渲染应用 | |
| Nuxt.js | Vue 全栈/SSR:内容型网站、静态生成(如文档站) | |
| Ruby | Ruby on Rails | 快速 MVP 开发:初创公司、博客、电商原型(“约定优于配置”) |
| Go | Gin | 高并发 API:微服务、云原生后端,性能优异 |
| Echo / Fiber | 轻量高性能:替代 Gin 的简洁选项,Fiber 类似 Express 风格 | |
| C# (.NET) | ASP.NET Core | 跨平台企业应用:Windows 集成、高性能 Web API、微服务 |
| Rust | Actix Web | 极致性能与安全:系统级后端、高吞吐服务 |
| Axum | 现代异步生态:基于 Tokio,适合云原生 Rust 项目 |
(二)webshell
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。
常见webshell管理工具
1. 蚁剑(AntSword)
- 项目主页(GitHub):
- 特点:开源、模块化、支持插件扩展,适合绕过 WAF。
⚠️ 注意:首次使用需同时下载 加载器 和 核心源码,或让加载器自动下载源码。
2. 冰蝎(Behinder)
- 官方 GitHub 发布页:
- 特点:Java 编写,支持 AES/RC4 加密通信,流量隐蔽性强。
3. 菜刀(China Chopper)
- 注意:
- 菜刀因特征明显、无加密,极易被杀毒软件和 WAF 检测,现已不推荐在实战中使用。
- 仅用于学习或老旧环境测试。
🔒 安全提示:菜刀存在后门风险(历史上有多个篡改版本),建议在隔离虚拟机中使用。
4. 哥斯拉(Godzilla)
- 官方 GitHub 项目地址:
- 特点:
- 支持 PHP/JSP/ASPX/C#/Python 等多种 WebShell
- 双重加密(AES + Base64),流量可绕过主流 WAF
- 内置端口转发、漏洞利用等高级功能
webshell具体实现
<?php @eval($_POST[‘pass’]);?>
这是个最基础的PHP一句话木马,我们来看下这个一句话,$_post用于收集传递过来的数据,eval将传递过来的数据当做可以执行的PHP代码来执行,这样就可以将任意的PHP语句传入到网站所在的服务器进行执行。
蚂剑
(三)SQL注入
SQL语言
知道自己现在的数据库有什么结构
-
查看有什么数据库
列出当前 MySQL 服务器中所有可用的数据库。SHOW DATABASES; -
查看有什么表
列出当前已选数据库中的所有数据表(需先使用USE选择数据库)。SHOW TABLES; -
进入数据库
切换到指定名称的数据库,后续操作将在该数据库中进行。USE [库名]; -
查看表结构
显示指定表的字段名、数据类型、是否允许为空、键信息等结构详情。DESC [表名];
改变自己的数据库结构
-
新建数据库
创建一个新数据库,名称由[库名]指定。CREATE DATABASE [库名]; -
删除数据库
永久删除指定名称的数据库及其所有内容(不可恢复,请谨慎操作)。DROP DATABASE [库名]; -
新建数据表
在当前数据库中创建一张新表,并定义字段及其数据类型。CREATE TABLE 表名 ( 字段名 字段类型, 字段名2 字段类型 ); -
什么是字段类型?
字段类型决定该列能存储的数据种类:INT:整数(如 123)VARCHAR(N):可变长度字符串,最多 N 个字符(如VARCHAR(255))
-
删除数据表
删除指定名称的表及其所有数据(表结构也会被移除)。DROP TABLE 表名; -
添加表中的字段
向现有表中新增一个字段,需指定字段名和类型。ALTER TABLE 表名 ADD 字段名 字段类型; -
删除表中的字段
从表中移除指定字段,该字段的所有数据将丢失。ALTER TABLE 表名 DROP 字段名; -
修改表内字段名
更改字段的名称和/或数据类型。ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新类型;
插入数据
-
插入完整行数据
按照表结构顺序插入所有字段的值。INSERT INTO 表名 VALUES (值1, 值2); -
插入指定列的数据
只为部分字段插入值,其余字段使用默认值或 NULL(若允许)。INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);
查询语句
-
查询所有字段并加条件
返回满足条件的所有列数据。SELECT * FROM 表名 WHERE 条件; -
查询指定字段并加条件
仅返回指定列的数据,且满足筛选条件。SELECT 字段名 FROM 表名 WHERE 条件;
修改数据
-
更新单个字段
将满足条件的记录中某字段更新为新值。UPDATE 表名 SET 列名 = 新列值 WHERE 列名 = 旧列值; -
更新多个字段
同时修改多个字段的值,仅作用于符合条件的行。UPDATE 表名 SET 列名 = 新列值, 列名2 = 新列值 WHERE 列名 = 旧列值;
删除数据
-
按条件删除行
删除表中满足指定条件的记录(不删除表结构)。DELETE FROM 表名 WHERE 列名 = 列值;
结果排序
-
按第一列排序
根据结果集的第一列进行升序排序。ORDER BY 1; -
按字段名排序
根据指定字段进行排序(默认升序)。ORDER BY 字段名; -
升序排序(默认)
显式指定升序排列(通常可省略)。ORDER BY 字段名 ASC; -
降序排序
从大到小或从 Z 到 A 排列。ORDER BY 字段名 DESC;
分页
-
分页查询
从第n条记录开始(偏移量,从 0 起),取m条数据,常用于分页。LIMIT n, m; -
合并多行数据
将 GROUP BY 后的多行某字段值合并成一个字符串输出。GROUP_CONCAT(字段名);
模糊查询
-
包含某字符
查询字段值中包含字母 "a" 的所有记录。LIKE '%a%'; -
以某字符开头
查询字段值以 "a" 开头的记录。LIKE 'a%'; -
以某字符结尾
查询字段值以 "a" 结尾的记录。LIKE '%a';
休眠函数
-
暂停执行
让数据库线程暂停指定秒数(单位:秒),常用于测试。SLEEP(2);
查询所在库
-
获取当前数据库名
返回当前连接正在使用的数据库名称。SELECT DATABASE();
数字运算符号
-
支持基本算术:
+(加)、-(减)、*(乘)、/(除),用法与常规编程语言一致。
示例:SELECT 10 * 2 AS result; -- 返回 20
逻辑运算符
-
AND(与)
两个条件都必须为真,整个表达式才为真。WHERE 条件1 AND 条件2 -
OR(或)
只要任一条件为真,整个表达式即为真。WHERE 条件1 OR 条件2
联合查询
-
去重合并结果
将两个查询结果纵向合并,并自动去除重复行。SELECT 列 FROM 表1 UNION SELECT 列 FROM 表2; -
保留重复合并结果
合并结果时保留所有行,包括重复项。SELECT 列 FROM 表1 UNION ALL SELECT 列 FROM 表2;
注意:两个
SELECT必须返回相同数量的列,且对应列类型兼容。
子查询
-
嵌套查询
在一个查询中嵌入另一个查询,子查询先执行,结果作为外层查询的条件。SELECT * FROM admin WHERE password = (SELECT user FROM ys WHERE id = 10);说明:假设子查询返回
'yy',则等价于:SELECT * FROM admin WHERE password = 'yy';
SQL注入工具:sqlmap
(四)常见web漏洞
| 漏洞名称 | 描述 |
|---|---|
| 注入 | 注入漏洞(如SQL、OS和LDAP注入),当不可信的数据被作为命令或查询的一部分发送给解释器时,容易发生注入攻击。 |
| 失效的身份认证和会话管理 | 与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏口令、密钥、会话令牌或攻击其他的漏洞去冒充其他用户的身份。 |
| 跨站脚本(XSS) | 当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。 |
| 不安全的直接对象引用 | 当开发人员暴露一个队内部实现对象的引用时,例如,一个文件、目录或者数据库密钥,就会产生一个不安全的直接对象引用。在没有访问控制检测或其他保护时,攻击者会操控这些引用去访问未授权数据。 |
| 安全配置错误 | 好的安全需要对应用程序、框架、应用程序服务器、web服务器、数据库服务器和平台,定义和执行安全配置。由于许多设置的默认值并不是安全的,因此,必须定义、实施和维护所有这些设置。这包括了对所有的软件保持及时地更新,包括所有应用程序的库文件。 |
| 敏感数据泄露 | 许多Web应用程序没有正确保护敏感数据,如信用卡、税务登记号码、身份验证凭据。攻击者可能会窃取或修改这些弱保护的数据进行身份盗窃、信用卡诈骗罪或者其他罪。 |
| 缺少功能级别访问控制 | 几乎所有的Web应用都会校验功能级别的访问权限,然后再使功能在界面可见。 |
| 跨站请求伪造(CSRF) | 一个跨站请求伪造攻击迫使登录用户的浏览器将伪造的HTTP请求,包括该用户的会话cookie和其他认证信息,发送到一个存在漏洞的web应用程序。 |
| 任意文件上传 | 应用程序允许用户上传文件但未严格校验文件类型、内容或路径,攻击者可上传恶意脚本(如 Webshell)并在服务器上执行。 |
| 文件包含(本地/远程) | 应用程序动态包含文件时未对用户输入进行过滤,攻击者可操控参数包含本地敏感文件(LFI)或远程恶意文件(RFI),导致信息泄露或代码执行。 |
| 目录遍历(路径遍历) | 应用程序使用用户可控参数构建文件路径但未做合法性校验,攻击者可通过“../”等路径穿越符访问系统任意文件(如 /etc/passwd)。 |
| 任意文件下载 | 应用程序提供文件下载功能时未限制可下载的文件范围,攻击者可构造请求下载服务器上的敏感配置文件、源码或私有数据。 |
| 代码执行(远程命令执行) | 应用程序将用户输入直接拼接到系统命令、eval() 或动态代码执行函数中,导致攻击者可在服务器上执行任意操作系统命令或脚本。 |
四、社会工程学渗透
社会工程学是一种利用人性弱点(如信任、恐惧或好奇心)来操纵他人泄露敏感信息或执行有害操作的攻击手段,它不靠技术漏洞,而是通过伪装、欺骗等心理战术突破人的防线,是信息安全中最隐蔽且危险的威胁之一。
(一)设置钓鱼
Kali Linux—借助 SET+MSF 进行网络钓鱼、生成木马、获主机shell、权限提升、远程监控、钓鱼邮件等完整渗透测试
常见攻击手段
| 攻击类型 | 典型方式 / 工具(含 Kali 工具) | 说明 |
|---|---|---|
| 钓鱼邮件 | SET (Social Engineer Toolkit)、GoPhish、Evilginx2(配合钓鱼) | 冒充银行、HR、IT部门等,诱导点击或输入账号密码 |
| 语音钓鱼(Vishing) | WarVOX(电话扫描与分析)、SIPVicious(VoIP 测试)(注:Kali 无专用自动拨号诈骗工具,多结合外部平台) | 制造紧急场景(如账户异常),索要验证码或转账 |
| 钓鱼网站 | SET(自动克隆网站)、Evilginx2(反向代理钓鱼,可绕过 MFA)、HTTrack(网站镜像) | 界面与真站几乎一致,窃取登录凭证 |
| 社工库利用 | theHarvester、Hunter.io、Maltego(信息收集)(实际社工库查询多通过在线黑产平台,Kali 主要用于前期情报搜集) | 直接查询或购买个人信息用于精准诈骗 |
| 鱼叉式钓鱼 / 鲸钓 | SET + 自定义邮件模板、Gophish(企业级钓鱼平台)、EmailHarvester(邮箱抓取) | 针对高管或特定员工,内容高度定制化 |
| 物理尾随 / 假冒身份 | (无直接工具,但可配合)USB Rubber Ducky(需单独设备)、P4wnP1 A.L.O.A.(基于树莓派的 HID 攻击框架) | 混入办公区窃取资料或植入U盘木马 |
| 恶意U盘 / 二维码 | msfvenom(生成恶意载荷)、Veil-Evasion(免杀 payload)、QR Code Generator(生成恶意链接二维码) | 利用好奇心诱使插入电脑或扫码 |
| MFA疲劳轰炸 | Modlishka、Evilginx2(中间人代理,可触发多次 MFA 请求)或自定义脚本调用目标服务 API 反复发起认证请求 | 耗尽用户耐心,诱其误点“批准” |
二、核心防范方法
-
提高安全意识:不轻信陌生来电、邮件或短信;对“紧急”“中奖”“账户异常”等话术保持警惕。
-
验证身份:收到可疑请求(如转账、改密),通过官方渠道二次确认(如打官网电话、当面核实)。
-
谨慎点击与下载:不点未知链接,不打开来历不明的附件或U盘;鼠标悬停查看真实URL,注意域名拼写(如
paypa1.com)。 -
启用多因素认证(MFA):即使密码泄露,攻击者也无法轻易登录。
-
保护个人信息:社交媒体避免晒出住址、工牌、行程、身份证等;不同平台使用不同昵称和密码,防止信息关联。
-
技术防护:定期更新系统与软件,修补漏洞。
五、系统漏洞渗透
(一)方法
-
使用IDA、Ghidra等工具逆向
-
使用msf工具已有的脚本
-
查找CVE、GitHub等网站寻找