网络安全课程笔记-16-Web漏洞和靶场搭建

📅 2026/7/1 1:02:19
网络安全课程笔记-16-Web漏洞和靶场搭建
1. Web 漏洞1.1 什么是 Web 漏洞Web 漏洞是 Web 应⽤⽹站、APP 后台、管理系统等在开发、配置或运维过程中出现的缺陷⿊客可以利⽤这些缺陷获取⽹站权限、窃取敏感数据甚⾄控制服务器。1.2 Web 漏洞的核心危害数据泄露⽤户⼿机号、密码、银⾏卡信息企业商业机密被窃取权限被盗⿊客获取管理员账号篡改⽹站内容如挂⿊产⼴告服务器被控制⿊客通过漏洞植⼊恶意程序将服务器变成 ⾁鸡被操控的设备业务瘫痪通过漏洞发起攻击导致⽹站⽆法正常访问如注⼊攻击破坏数据库法律风向⽤户数据泄露后企业可能⾯临监管处罚、⽤户索赔1.3 OWASP Top 10OWASP开放式 Web 应⽤程序安全项⽬是全球最权威的⽹络安全社区它每⼏年会根据实际漏洞发⽣频率、危害程度发布Web 应⽤⼗⼤最严重安全⻛险OWASP Top 10A01访问控制失效Broken Access Control1通俗原理访问控制就是⽹站的权限⻔卫负责控制谁能看什么、做什么。访问控制失效就是⻔卫失职普通⽤户能访问管理员的功能未登录⽤户能查看敏感数据。2典型场景普通⽤户登录后修改 URL 中的⽤户 ID如 user123 改为 user124 就能查看其他⽤户的个⼈信息未登录状态下直接访问管理员后台地址如 /admin ⽆需验证就能进⼊普通⽤户通过修改请求参数获得删除、修改⽹站数据的权限如删除其他⽤户的订单3危害等级极高直接后果敏感数据泄露、⽹站权限被滥⽤、业务逻辑被破坏实战案例某电商⽹站存在访问控制失效⽤户修改订单 ID 就能查看他⼈的订单详情含收货地址、⼿机号4简单识别方法登录后尝试修改 URL 中的数字参数ID、⻚码等看是否能访问其他⽤户的数据收藏管理员后台地址退出登录后重新访问看是否需要重新登录A02加密失败Cryptographic Failure1通俗原理加密失败是指⽹站对敏感数据如密码、银⾏卡号保护不当—— 要么没加密要么⽤了不安全的加密⽅式导致数据容易被⿊客窃取或破解。2典型场景⽹站登录时密码通过 HTTP 协议传输未加密⿊客可通过抓包直接获取明⽂密码⽤户密码⽤明⽂或简单加密如 Base64不是真正的加密存储在数据库数据库泄露后密码直接可⻅⽤了已被破解的加密算法如 MD5 ⽆盐值加密、DES 算法⿊客能快速破解密码3危害等级极⾼直接后果⽤户隐私数据、账号密码被批量窃取进⽽引发盗号、诈骗等连锁反应实战案例某社交 APP ⽤ HTTP 传输⽤户登录信息⿊客通过抓包⼯具获取⼤量账号密码导致⼤规模盗号4简单识别⽅法查看⽹站 URL 前缀是 http:// 未加密还是 https:// 加密登录、⽀付⻚⾯必须是 https://注册账号时查看密码输⼊框是否有 加密传输 提示或通过抓包⼯具如Burp Suite查看密码是否为明⽂A03注入攻击Injection1通俗原理注⼊攻击是⿊客将恶意代码伪装成正常请求插⼊到⽹站的输⼊框、URL 参数中让⽹站执⾏这些恶意代码。就像你去餐厅吃饭告诉服务员来⼀份炒饭但⿊客却告诉服务员来⼀份炒饭再加把⼑—— 如果服务员不验证就会把⼑恶意代码带给后厨⽹站服务器2常⻅类型SQL 注⼊最常⻅、危害最⼤的注⼊类型恶意代码是 SQL 语句操作数据库的语⾔场景⽹站搜索框、登录框中输⼊ ’ or 11 # 若能登录成功或返回异常数据可能存在 SQL 注⼊危害⿊客可读取、修改、删除数据库数据甚⾄获取服务器权限跨站脚本攻击XSS恶意代码是 JavaScript 脚本注⼊到⽹站⻚⾯中当其他⽤户访问该⻚⾯时脚本⾃动执⾏。场景论坛发帖、评论区输⼊ 若⻚⾯弹出弹窗说明存在 XSS 漏洞危害窃取其他⽤户的 Cookie登录凭证、伪造⽤户操作、传播恶意链接3危害等级极⾼直接后果数据库被脱库全部数据被窃取、⽤户账号被盗、⽹站被挂⻢植⼊恶意链接实战案例某企业官⽹的搜索框存在 SQL 注⼊⿊客通过注⼊获取了所有⽤户的⼿机号、邮箱和密码4简单识别⽅法对⽹站的输⼊框搜索、登录、评论输⼊特殊字符 ’ ; – 若⻚⾯返回错误提示如 SQL 语法错误可能存在注⼊漏洞输⼊ 查看浏览器控制台是否输出 1判断 XSSA04不安全设计Insecure Design1通俗原理不安全设计是⽹站 从⼀开始就没考虑安全属于 天⽣的缺陷⽽⾮开发或配置时的⼩错误。就像盖房⼦时设计师没设计防盗⻔、窗户没装护栏 —— 后续再怎么修补如加个普通锁也很难解决根本安全问题。2典型场景电商⽹站的⽀付流程设计下单后未验证⽀付状态直接发货⿊客可伪造⽀付成功凭证密码重置功能设计仅通过⼿机号验证码重置未验证旧密码⿊客获取⼿机号验证码后可重置他⼈密码缺乏限流设计登录、注册⻚⾯未限制尝试次数⿊客可暴⼒破解账号密码。3危害等级⾼直接后果后续很难通过补丁修复必须重构部分功能安全隐患⻓期存在实战案例某理财 APP 的提现功能设计缺陷⽤户提交提现申请后多次刷新⻚⾯可重复提现导致平台资⾦损失4特点零基础注意这类漏洞不是 代码写错了⽽是 设计思路错了渗透测试中较难发现需要结合业务逻辑分析A05安全配置错误Security Misconfiguration1通俗原理安全配置错误是⽹站在部署、配置时 没关紧安全开关—— ⽐如开启了不必要的功能、使⽤默认账号密码、未更新软件版本。就像盖好房⼦后业主忘记换默认⻔锁、窗户没关、防盗⻔没上锁给了⿊客可乘之机2典型场景服务器安装后未删除默认账号如 admin/admin 、未修改默认密码⽹站后台开启 调试模式报错时显示敏感信息如数据库连接地址、账号密码服务器上安装了不必要的软件如多余的 FTP 服务且该软件存在已知漏洞未禁⽤⽹站的危险 HTTP ⽅法如 PUT、DELETE⿊客可通过这些⽅法上传恶意⽂件3危害等级⾼直接后果⿊客可通过默认账号登录、利⽤未修复的漏洞⼊侵攻击难度极低实战案例某企业的服务器使⽤默认账号 root/123456 ⿊客通过 SSH 登录服务器窃取了所有业务数据4简单识别⽅法访问⽹站时故意输⼊错误路径如 /abc123 看报错⻚⾯是否显示服务器版本、⽂件路径等敏感信息尝试⽤常⻅默认账号 admin/admin 、 root/root 登录⽹站后台A06脆弱过时组件Vulnerable and Outdated Components1通俗原理⽹站是由多个组件搭建⽽成的如 Web 服务器 Nginx、数据库 MySQL、开发框架 ThinkPHP、插件等。这些组件如果是过时的、存在已知漏洞的版本就相当于给⽹站埋下了定时炸弹。就像房⼦的⻔窗是⽤旧的、已经被破解过的锁⿊客只要知道这个锁的漏洞就能轻松打开。2典型场景⽹站使⽤的 Nginx 版本是 1.14.0存在已知的⽂件读取漏洞且未更新补丁开发框架使⽤ ThinkPHP 5.0存在远程代码执⾏漏洞⻓期未升级⽹站安装的第三⽅插件如评论插件、统计插件存在漏洞且未及时卸载或更新3危害等级⾼直接后果⿊客可直接利⽤组件的已知漏洞⼊侵⽆需复杂操作攻击成功率极⾼实战案例某博客⽹站使⽤了存在漏洞的评论插件⿊客利⽤该插件的漏洞获取了⽹站的管理员权限4简单识别⽅法⽤ Wappalyzer 插件浏览器扩展识别⽹站的组件及版本如 Nginx1.14.0、ThinkPHP 5.0搜索 组件名称 版本 漏洞如 ThinkPHP 5.0 漏洞查看是否存在已知可利⽤漏洞A07识别与认证失败Identification and Authentication Failure1通俗原理识别与认证是⽹站的登录验证系统负责确认你是谁。这类漏洞是指登录验证机制存在缺陷⿊客可绕开验证或破解账号密码。就像房⼦的⻔锁有问题⿊客不⽤钥匙就能开⻔或能轻易复制钥匙。2典型场景密码过于简单如 123456 、 password ⿊客可通过暴⼒破解尝试所有常⻅密码登录验证码设计不合理如验证码⻓期有效、可重复使⽤⿊客可⾃动识别验证码破解登录后⽣成的 Session会话凭证未及时过期⿊客窃取 Session 后可⻓期登录允许⽆限次登录尝试没有限流机制如 1 分钟内可尝试 1000 次密码3危害等级⾼直接后果⽤户账号被破解⿊客冒充⽤户身份操作如转账、修改信息实战案例某游戏⽹站的⽤户密码多为简单密码⿊客通过暴⼒破解⼯具批量登录⽤户账号窃取游戏装备4简单识别⽅法尝试⽤常⻅弱密码 123456 、 admin123 登录测试账号登录后复制浏览器的 Cookie退出登录后重新粘贴 Cookie看是否能直接登录A08软件和数据完整性故障Software and Data Integrity Failure1通俗原理这类漏洞是指⽹站对软件更新、数据传输、⽂件上传等操作未验证其完整性和合法性 —— ⿊客可篡改这些内容植⼊恶意代码或虚假数据。就像你收到的快递被⼈掉包⾥⾯的东⻄软件、数据已经被替换成了⿊客的恶意内容。2典型场景⽹站的⾃动更新功能未验证更新包的签名⿊客可替换更新包植⼊恶意程序⽤户上传⽂件如头像、附件时未验证⽂件完整性⿊客可上传恶意⽂件如 webshell并执⾏⽹站的数据传输如 API 接⼝未验证数据签名⿊客可篡改传输的数据如将⽀付⾦额从 100 元改为 1 元3危害等级⾼直接后果服务器被植⼊恶意程序、业务数据被篡改、⽤户下载恶意⽂件如带病毒的 APP实战案例某企业内部系统的软件更新包被⿊客篡改员⼯更新后电脑被植⼊⽊⻢企业内⽹被⼊侵A09安全⽇志与监测失败Security Logging and Monitoring Failure1通俗原理安全⽇志是⽹站的 监控摄像头负责记录所有访问、操作⾏为如谁登录了、谁修改了数据。监测失败是指 摄像头没开 或 拍了但没⼈看—— ⿊客⼊侵后⽹站没有记录痕迹或记录了但未及时报警导致⿊客能⻓期潜伏。2典型场景⽹站未记录关键操作⽇志如管理员登录、数据删除、密码修改⽇志记录不完整如只记录了 IP未记录操作时间、操作内容⽆法追溯⿊客⾏为没有⽇志监测机制⿊客⼊侵后⽹站未及时发送报警通知导致⿊客⻓期控制服务器。3危害等级中⾼直接后果⿊客⼊侵后难以被发现可能⻓期窃取数据、操控服务器造成更⼤损失实战案例某⾦融⽹站被⿊客⼊侵后由于没有完善的⽇志监测⿊客潜伏 3个⽉才被发现⼤量⽤户资⾦被盗A10服务器端请求伪造Server-Side Request Forgery, SSRF1通俗原理SSRF 是⿊客通过⽹站的远程请求功能伪造服务器的请求让服务器访问⿊客指定的地址如内⽹地址、其他⽹站从⽽获取内⽹资源或攻击其他服务器。就像你让快递员帮你取⼀个包裹结果快递员被⿊客欺骗去取了⿊客的危险包裹恶意地址并把包裹带回给你服务器2典型场景⽹站有 URL 预览 功能输⼊ URL 后⽹站会抓取该 URL 的内容显示预览⿊客输⼊内⽹地址如 http://192.168.1.1 服务器的内⽹管理地址⽹站服务器会访问该内⽹地址返回管理⻚⾯内容⿊客可获取内⽹信息⽹站的⽂件上传功能⽀持从远程 URL 下载⽂件⿊客输⼊恶意 URL让服务器下载恶意⽂件并执⾏。3危害等级⾼直接后果突破外⽹防护⼊侵内⽹系统内⽹通常防护较弱、获取内⽹敏感数据、攻击其他服务器实战案例某云服务提供商的⽹站存在 SSRF 漏洞⿊客通过该漏洞让服务器访问内⽹的数据库服务器获取了所有⽤户的云数据4简单识别⽅法找到⽹站的 URL 输⼊ 功能如 URL 预览、远程下载输⼊内⽹ IP如 http://127.0.0.1 、 http://192.168.1.1 看是否能返回内⽹⻚⾯内容2. sqli_lab 靶场搭建该靶场是专门练习 sql 注入的2.1 下载 sqli-labs在 sqli-labs GitHub仓库 或者 这里 下载2.2 解压 sqli_labs-master.zip 到 phpstudy 的 www目录下解压文件命更名为 sqli2.3 配置 sqli-labs打开sql-connections/db-creds.inc⽂件修改⽤户和密码因为sqli-labs默认⽤户名为root默认密码为空2.4 登录及初始化本机上在浏览器中输⼊127.0.0.1\sqli 登录点击 Setup/reset Database for labs 初始化2.5 安装相应的 php 和 mysql去 phpstudy 中的软件管理安装 php 4.5.9nts (需要是 php 7 一下的)然后去 phpstudy 中切换 php 版本为 php5.6.9nts去 phpstudy 中安装 MySQL 数据库 5.5 版本并去到 phpstudy 中启动 apache 和 mysql 5.5 的服务去到 WWW/sqli/sql-connections目录下找到 db-creds.inc 文件修改文件中 $dbpass‘root’3.pikachu 靶场搭建数据库版本得是5.72.1 下载 pikachu在 这里 下载2.2 解压到 phpstudy 的 www目录下文件名为pikachu2.3 在 pikachu/inc下配置config.inc.php找到并设置define(DBU5ER,root);define(DBPW,root);2.4 安装打开 http://localhost/pikachu/install.php点击第2步的安装/初始化按钮