- 每日一句:时间说明一切。今天可以后悔昨天,但绝不明天愧疚今天。
- 本篇内容:Cookie注入简介
如何修改Cookie
Cookie注入实战注意
一、Cookie注入简介
1.什么是cookie?
cookie就相当于身份证,网站根据cookie来识别你是谁;
如果你获取了cookie,你就可以免密登录管理员账户。
2.cookie机制本身就不安全
安全与用户的体验性是成反比例,为了部分的体验性,只好牺牲部分安全性;
http和https都是无连接无状态协议,事实上http刚设计出了来的时候,每一步操作基本上需要登录验证身份;
时间长了,哪个用户受得了,浏览一个网站登录好几次。于是乎cookie就诞生了;
本质:如果你浏览某网站,服务器先检测cookie是否存在,不存在就给你一个,如果你没有登录,那么这个cookie就是游离状态,当你登录了此账户,那么这个cookie就与此账户有了联系(给cookie附上session),即那个cookie就代表了此账户。
3.cookie和注入擦出了爱情的火花
动态脚本语言存在全局变量可以获取多种传参方式,比如php中:
$_GET 可以获得get类型的传参
$_POST 可以获得post类型的传参
$_REQUEST 可以获得get、post、cookie类型的传参
注意:在高于5.4版本以上就不会接受cookie传参了
所以说cookie注入发生在asp站点和使用老版本php的站点
如何知道使用什么语言和版本?
信息收集之网站指纹收集(不懂得可以看看前面的信息收集部分)
为什么说cookie注入。用get和post不行吗?
以后在实战中会遇到一种叫waf的东西,会进行拦截。而有的waf就比较傻,
不对cookie就行检查,我们可以尝试用cookie进行传参,然后进行绕过。
二、如何修改Cookie
1.方法一:burp抓包修改
方法二:在浏览器中,按F12调出控制台(console)进行修改,输入document.cookie=“id=”+escape(“171”),回车即可。
方法三:在火狐上比较好用,按F12,点击存储,左侧栏第一个就是cookie,直接修改名称与值就行了
三、Cookie注入实战注意
1.Access数据库很老,它只有一个库,没有什么系统自带库(没必要知道库名);
因此,数据库不会瞎命名
像以前的人比较纯,也没什么安全意识
例如:数据库名为:admin
类似新闻的表:news
用户的表:users
2.不知道表名字
只能爆破,利用exists函数
用法:document.cookie=“id=”+escape(“xxx and exists(select * from admin)”)
若返回正常,则存在admin表;若不正常,则不存在
在这里可以用burp爆破,或直接sqlmap跑(常见的表名可以自己收集或者sqlmap的文件夹里)
3.sqlmap的跑法:
sqlmap -u “url” --cookie “id=xxx” --level 2
这个等级等于大于2都可以,实战建议3(2基本上扫描的很全面
四、总结
- 工具很方面,但是IP老是被ban
- 手工虽说很麻烦,但是还是有惊喜的
- 多挖挖src增加实战经验