Access数据库——Cookie注入

Access数据库——Cookie注入

Cookie注入简介
什么是Cookie?
Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息。说白了Cookie就是代表你身份的字符串,网站根据Cookie来识别你是谁,如果你获取了管理员的Cookie,你可以无需密码直接登录管理员账号。

目前有些 Cookie 是临时的,有些则是持续的。临时的 Cookie 只在浏览器上保存一段规定的时间,一旦超过规定的时间,该 Cookie 就会被系统清除 。

在ASP中,request对象获取客户端提交数据常用的是get和post两种方式,同时request对象可以不通过集合来获得数据,即直接使用"request(“name”)"。但它效率低下,容易出错,当我们省略具体的集合名称时,asp是按QueryString(get),Form(post),Cookie,Severvariable,集合的顺序来搜索的。cookie是保存在客户端的一个文本文件,可以进行修改,这样一来,就可以利用Request.cookie方式来提交变量的值,从而进行注入攻击。
在PHP中$_REQUEST[]可以接受POST|GET|COOKIE的传参(php5.4以上版本就不会接受cookie传参了)。

如果说开发用了$_REQUEST[]来接受参数,如果POST和GET传参被WAF拦截的话,或许没有对Cookie进行检测,尝试用cookie进行传参,或许就能绕过防护机制。

怎么设置Cookie?
方法一:
抓取数据包直接修改数据包的值,添加Cookie字段在请求头里面。
Access数据库——Cookie注入注意:Cookie传参需要URL编码,记得要把传参的值编码。
在线URL编码地址:http://tool.chinaz.com/Tools/urlencode.aspx

方法二:用JavaScript设置cookie
先按下F12调出浏览器的开发者工具
Access数据库——Cookie注入选择Console,打开浏览器的控制台,输入设置Js的语句就可以了
document.cookie=“id=”+escape(“171”)
通过浏览器Document.cookie来设置。
cookie名字为id escape是一个编码参数,这个参数会进行一次URL编码。

Access数据库Cookie注入介绍
由于是Access数据库,没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。对于获取access数据库的表名和字段名,方法只有**。
注意:Cookie注入的时候一定要把GET类型的传参删除,不然优先执行GET类型传参。

对于表名只能靠**了,and exists (select*from 表名) 如果页面正常,就是存在这个表 。
exists 这个函数就是检查子查询能否查询到数据,如果能会返回一个True

SQLMAP跑Cookie注入:
sqlmap -u “URL地址” --cookie “id=参数” --level 2