渗透测试之小白的常见web漏洞总结(下)
字数 1732 2025-08-15 21:31:54
Web常见漏洞总结与防护指南
文件包含漏洞
基本概念
文件包含漏洞源于PHP的特性:即使包含的文件不是PHP类型也不会报错,且其中包含的PHP代码也会执行。这与任意文件下载漏洞相似,区别在于一个是解析,一个是下载。
利用方式
-
向服务器写马:
- 在图片中写入恶意代码(结合文件上传)
- 在错误日志中写入恶意代码(错误访问会被记录)
- 在session中写入恶意代码
- 访问这些文件使服务器生成木马,实现getshell
-
读取敏感文件:
- 结合目录遍历漏洞读取敏感文件
-
PHP伪协议:
- 利用伪协议读取文件或执行命令
防护措施
- 使用安全狗、防火墙或D盾等防护工具
测试方法
- 手动测试payload判断漏洞存在性和防护情况
- 尝试绕过防护措施
- 使用LFISuite工具进行测试
反序列化漏洞
基本概念
序列化是将类对象转化为字符串或字节流(也可转为XML、JSON),反序列化是其逆过程。
利用方式
- 前台构造序列化数据,传输到后台,经过复杂调用最终触发命令执行
- 需要对后端代码有深入了解,目前多为针对组件的漏洞利用
常见反序列化漏洞
- Apache-Commons-Collections漏洞
- Weblogic系列漏洞
- Apache Tomcat版本系列漏洞
- Shiro反序列化漏洞
扫描工具
- Goby
敏感信息泄漏
常见泄漏内容
- 重要URL(前端JS代码中可能泄漏)
- 重要文件或目录(robots.txt、路径爆破)
- 邮箱、手机号、用户名、电话、密码
- 网站源码、数据库文件等
挖掘思路
- Google搜索法
- GitHub搜索法
- 暴力扫描
- 邮箱收集器
- 特定程序的特定目录
跨站请求伪造(CSRF)
基本概念
攻击者诱使用户点击恶意链接,当用户浏览器中对目标网站的cookie有效且目标网站校验不严格时,攻击者可盗用用户cookie进入后台。
防护措施
- 使用防火墙
测试方法
- 删除请求包的Referer字段,如仍能访问则可能有CSRF漏洞
- 使用BP、CSRFTester、CSRF Request Builder等工具
跨站脚本(XSS)
基本概念
攻击者在网页中嵌入客户端脚本(如JavaScript),当用户浏览时脚本执行,可获取用户Cookie、导航到恶意网站或携带木马等。
漏洞原因
用户输入的数据变成了代码,未对用户输入进行HTML Encode处理。
利用方式
-
Dom-Based XSS:
- 通过邮件发送含漏洞的链接
- 在用户浏览器执行恶意脚本获取数据并发送到攻击者服务器
-
存储型XSS:
- 常见于留言板等
- 在漏洞页面嵌入恶意脚本提交到服务器
- 他人浏览时触发恶意代码盗取信息
防护措施
- 防火墙、D盾等
测试方法
- 手动测试,常用payload:
/><script>alert(document.cookie)</script><!-- - 尝试绕过防护
- 使用BP、XSpear、XSSer等工具
服务端请求伪造(SSRF)
基本概念
网站从其他服务器加载数据时,如果将请求URL作为参数,攻击者可将其替换为内网地址实现内网访问。
相关函数
- curl()
- file_get_contents()
- fopen()
- fsocksopen()
利用方式
- 对内网进行信息收集(端口、指纹等)
- 使用curl支持的其他协议(file、http、dict、gopher等)
- 对内网进行漏洞利用
测试方法
- 手动测试常用payload
- 使用BP自带扫描器、SSRFmap等工具
- 尝试绕过防护
XML外部实体注入(XXE)
基本概念
当服务器允许解析XML外部实体(默认关闭)时,通过注入恶意XML外部实体可能造成:
- 任意文件读取
- 内网端口扫描
- 命令执行(条件苛刻)
- DDOS(条件苛刻)
防护措施
- 防火墙(安全狗无此功能)
- D盾部分拦截
测试方法
- 手动测试常用payload
- 使用BP自带扫描、BP插件Hacker Bar、XXEinjector工具
逻辑漏洞
特点
- 属于正常流量,难以防护
- 隐蔽性强,开发中难以发现
常见测试点
- 登录处
- 密码找回
- 支付页面等有价值的地方
常见类型
- 用户名或其他信息可枚举
- 验证码绕过
- 验证码可爆破
- 验证码回传
- 验证码未绑定用户
- 订单金额任意修改
- 越权访问等