当前位置: 首页 > news >正文

Web安全入门先攻这五个漏洞,比盲目刷课管用

刚装好Kali Linux和DVWA的那段时间,我盯着靶场首页发了三天呆。视频收藏了上百个,真正动手时却连从哪关开始都不知道。后来才想明白:Web安全入门最忌讳“广撒网”,与其把OWASP Top 10从头到尾刷一遍,不如先把五个最基础、出现频率最高的漏洞吃透。这五个漏洞就是SQL注入、XSS、文件上传、CSRF和弱口令。它们覆盖了服务端、客户端、网络层和人为因素,把攻防双方的底层逻辑展现得最清晰。

下面我会按实战路径逐个拆解,重点说清“怎么练”和“练到什么程度”,帮你把环境真正用起来。

SQL注入:从SQLi-Labs第一关到盲注

SQL注入的本质是用户输入被当成代码执行。理解这一点后,你会发现所有Payload都是围绕“闭合原有语句、插入恶意逻辑”展开的,而不是死记字符串。

SQLi-Labs通关路线

建议按这个顺序推进:

  • Less-1至Less-4:掌握基础联合查询注入。这四关分别对应id=1'id=1")等不同闭合方式,核心练习点是是判断字段数order byunion select null,null)和回显位定位union select 1,2,3)。
  • Less-5至Less-6:进入报错注入。使用extractvalue()updatexml()让数据库主动报错带出数据,理解“没有回显位时如何取数据”。
  • Less-8至Less-10:布尔盲注。通过and length(database())>5这类条件判断,结合页面返回的“真/假”状态逐位爆破数据。这里要配合Burp Suite的Intruder模块,设置Payload为数字1-8循环,观察Response长度差异。
  • Less-9至Less-10:时间盲注。用and if(length(database())>5, sleep(5), 0),通过响应时间判断条件真假。这是无回显、无报错场景的最后一道防线。

关键认知升级

很多人卡在Less-11后就停了,其实那之后才是分水岭。Less-11开始是POST型注入,需要把Burp Repeater用起来,手动修改Body参数。到Less-23左右会遇到过滤注释符的场景,这时要改用' or '1'='1这种不需要注释的闭合方式——这就是在训练你根据防御调整Payload的能力,而不是背固定套路。

通关后建议用DVWA的SQL Injection模块验证:Low级别直接手工注入,Medium级别加了转义需要抓包改十六进制编码,High级别用LIMIT 1限制输出,考察你如何绕过。三个难度差异明显,能帮你建立“同一漏洞在不同防御强度下的应对思维”。

XSS:三种类型的实战区分

XSS的Payload看起来简单,但很多人分不清三种类型的利用场景差异。

反射型XSS(DVWA Low级别)

输入点直接回显在页面上,构造<script>alert(document.cookie)</script>即可触发。Low级别没有任何过滤,重点是理解输入点与输出点的关系——你的Payload出现在哪个HTML标签里?是属性值还是纯文本?这决定了是否需要闭合引号或标签。

存储型XSS(DVWA Medium/High级别)

留言板场景下,Payload存入数据库后每次加载页面都会执行。Medium级别用str_replace过滤<script>,可以用<ScRiPt>大小写绕过,或者用<img src=x onerror=alert(1)>。High级别用preg_replace过滤更严格,需要尝试onmouseoveronclick等事件处理器,或者利用href="javascript:alert(1)"

这里的关键练习是:在浏览器开发者工具的Elements面板里实时观察你的输入被渲染成了什么。很多时候Payload没生效,是因为被编码成了&lt;实体,或者嵌套在了错误的标签层级里。

DOM型XSS(DVWA impossible级别参考)

Impossible级别虽然打不了,但值得看源码学习防御方案。DOM型XSS不经过服务端,纯靠前端JavaScript处理。比如URL参数?default=English被直接写入页面,如果代码是document.write("<option value='" + location.hash.slice(1) + "'>"),那闭合单引号后就能注入脚本。防御要点是对用户输入做输出编码而非输入过滤,因为输入点可能有多个。

文件上传:从一句话木马到解析漏洞

文件上传漏洞的利用链条是:找到上传点 → 绕过前端/服务端校验 → 获取WebShell路径 → 连接执行。

DVWA三级别差异

级别防御机制绕过方法
Low无校验直接上传PHP文件,访问路径即可
Medium检查MIME类型抓包修改Content-Typeimage/jpeg
High检查文件头+扩展名白名单GIF89a伪造文件头,配合文件包含漏洞利用,或利用Apache解析漏洞(如shell.php.jpg在特定配置下被解析)

实战中的关键细节

Medium级别的MIME校验绕过,要在Burp中拦截上传请求,把Content-Type: application/x-php改成image/jpeg。很多人忘了这一步,因为浏览器开发者工具里看不到这个Header。

High级别如果严格限制为jpg/png/gif,就需要结合文件包含漏洞解析漏洞。比如存在本地文件包含(LFI)时,上传一个包含PHP代码的图片马(shell.jpg),再通过?page=../../uploads/shell.jpg包含执行。这引出了重要认知:单一漏洞可能打不通,但漏洞组合能形成完整攻击链。

练习时建议用蚁剑或冰蝎连接Shell,理解WebShell的通信原理。不要止步于“上传成功”,要能看到服务器上的文件列表、能执行命令,才算真正掌握。

CSRF:从原理理解到Burp自动化利用

CSRF的难点不在技术复杂度,而在理解为什么它能成立——浏览器会自动带上目标站的Cookie,而服务端不校验请求来源。

DVWA Low级别手工验证

  1. 登录DVWA,进入CSRF页面,修改密码并抓包
  2. 在Burp Repeater中右键“Engagement tools” → “Generate CSRF PoC”
  3. 把生成的HTML保存为poc.html,在另一个浏览器(或隐私窗口)中打开
  4. 点击按钮后,目标用户的密码被修改

这个流程让你直观看到:攻击者不需要知道原密码,只要诱导已登录用户访问恶意页面即可。

Medium级别的Referer校验绕过

服务端检查Referer头是否包含目标域名。绕过方法是在自己服务器上创建同名目录,比如http://attacker.com/dvwa/,让Referer自然带上dvwa字符串。或者利用某些浏览器对Referer的处理差异。

High级别的Token防御与绕过

服务端生成随机Token,表单提交时校验。这属于正常防御,但值得用Burp的Macro功能练习自动化:设置Macro在每次请求前获取页面中的Token,再填入后续请求。这个练习的价值在于理解Token机制的工作原理,以及为什么单纯的Token如果不结合SameSite Cookie仍可能存在风险。

弱口令:Burp Suite爆破的完整工作流

弱口令漏洞看似没有技术含量,却是企业中最常见的突破口。掌握Burp Intruder的爆破模式,是后续所有暴力破解场景的基础。

标准爆破流程

  1. 抓包定位:拦截登录请求,发送到Intruder
  2. 标记变量:在Positions标签中,用§包裹用户名和密码字段,Attack type选Cluster bomb(用户名和密码各用一个Payload集,交叉组合)
  3. 配置Payload:Payload set 1导入常见用户名列表(如adminroottest),Payload set 2导入密码字典
  4. 结果筛选:在Options中设置Grep - Match,匹配login failed之外的响应,或按Response长度排序找异常

进阶技巧

  • Pitchfork模式:用户名和密码一一对应时使用,比Cluster bomb快得多
  • 递归提取:某些系统登录失败次数过多会锁定账户,需要配合Recursive grep从响应中提取Token或时间戳
  • 自定义迭代器:针对用户名:密码这种单字段格式,用Custom iterator设置分隔符

DVWA Brute Force模块的High级别加入了Token和延时,可以练习上述进阶功能。更重要的是理解:爆破成功的关键在于字典质量,而字典应根据目标信息定制(如公司名缩写+年份、常见默认密码组合),不是越大越好。

支付逻辑参数篡改:一个综合小案例

把上述技能串联起来,看一个实际场景:某电商网站的订单提交请求为POST /order.php,参数包含product_id=1001&quantity=1&price=299.00

用Burp拦截后,在Repeater中尝试修改:

  • quantity=-1:数量负数,可能实现“退款式购买”
  • price=0.01:直接改价格,测试服务端是否校验
  • product_id=1002:替换为更贵商品ID,看是否按ID重新定价

这个案例同时涉及客户端校验绕过(前端JavaScript限制了数量为正,但服务端可能没校验)、业务逻辑缺陷(价格由客户端提交而非服务端查询)、越权风险(是否能用他人product_id)。它说明:漏洞往往不是孤立的,理解业务逻辑比掌握单一技术更重要

环境准备与下一步

上述所有练习需要以下环境:

  • Kali Linux:预装Burp Suite Community Edition、SQLMap等工具
  • DVWA:Docker部署最方便,docker run --rm -it -p 80:80 vulnerables/web-dvwa
  • SQLi-Labs:GitHub下载后部署到本地PHP环境

建议的学习节奏是:每个漏洞先在DVWA Low级别手工验证原理,再用Medium/High级别练习绕过,最后到SQLi-Labs或CTF平台做变式训练。遇到不会的Payload不要直接复制,先在本地MySQL或PHP环境里拆开测试,理解每个字符的作用。

当你能不看笔记独立完成SQLi-Labs前20关、DVWA全部High级别(除impossible)、以及一次完整的Burp爆破流程时,Web安全的基础攻防思维就已经成型了。这时候再去看OWASP Top 10的其他漏洞,或者转向内网渗透、代码审计,都会有扎实的理解根基。

http://www.jsqmd.com/news/1243598/

相关文章:

  • 2026年7月最新!海口万国回收服务怎么样?官方客服揭秘回收价格查询内幕 - 诚收名表回收平台
  • 2026 上海包包回收行情分析,影响回收价格的关键因素 - 讯息早知道
  • 亲身到店探访广州劳力士官方售后服务中心|完整地址及售后服务热线(2026年7月最新) - 劳力士服务中心
  • 2026年7月最新权威发布:北京欧米茄回收怎么样?官方渠道排行+客户服务实测对比 - 嘉价奢侈品回收平台
  • wechatpay-apache-httpclient vs 原生HttpClient:为什么选择这款微信支付SDK?
  • 2026高EPA高纯鱼油品牌热门推荐榜单梳理 - 起跑123
  • 从原理到实践:react-native-responsive-fontSize实现响应式字体的底层逻辑
  • UART中断与DMA寄存器级配置:从原理到实践
  • local.ai未来路线图:即将推出的5大令人期待的新功能
  • 研究生如何两周完成一篇SCI
  • wysiwyg.css与其他Markdown样式库对比:为什么它是最轻量的选择?
  • 2026成都装修公司实力测评:知名品牌哪家强?看完不踩坑 - 推荐官
  • Grok 4.6 与 Kimi K3 全面对比:2万亿参数效率战遇上2.8万亿公开权重
  • 为什么选择vlife本地化部署?企业数据安全与隐私保护的完整解决方案
  • 劳力士官方保养价格查询|维修地址及电话权威信息公告(2026年7月最新) - 劳力士官方服务中心
  • Linux系统警报:Hi, My Name is Keyboard攻击原理与防御措施
  • 亲身探访杭州浪琴官方售后服务中心|维修地址及售后热线(2026年7月最新) - 浪琴服务中心
  • wechatpay-apache-httpclient实战教程:从环境搭建到JSAPI下单完整流程
  • 流动的生产力:2026 武汉智能仓储及物料搬运展览会开启智慧物流新篇章
  • 2026年7月最新百达翡丽大连普兰店万达广场维修保养服务电话 - 百达翡丽官方售后中心
  • 2026武汉甄选靠谱犬舍|皇克莱猫犬舍教你0套路安心买宠 - 同城宠物优选基地
  • Fody开源可持续发展:为什么成为Patron是每位开发者的责任
  • 水基凝胶工艺为什么是高端散热标配?氧化铝陶瓷天花板工艺解析
  • Wine 与 Linux 内核的交互
  • 晚期风格即兴
  • 深入理解wysiwyg.css实现原理:从Sass源码到压缩CSS的完整流程
  • 浪琴石家庄唯一官方售后网点地址及客户服务热线电话2026年7月最新权威声明 - 浪琴服务中心
  • Fody与MSBuild集成指南:让IL编织无缝融入你的开发流程
  • 危重瓣膜病就医抉择:为什么ViV瓣中瓣手术必须选对医院?——基于合肥高心高危病例的技术与护理体系拆解
  • Jellium Desktop视频色彩空间设置:选择适合你的显示设备