Access数据库——Cookie注入

目录

1、Cookie注入

什么是Cookie?

Cookie注入简介

Cookie和注入有什么关系?

Cookie的核心

2、如何设置Cookie?

方法一:依靠浏览器进行设置

方法二:抓包直接修改

方法三:个别浏览器插件也可以设置Cookie

方法四:通过浏览器自带的JS设置

3、Access数据库的特点

4、例题讲解——手动注入

在Access数据库中,如何用手动注入的方法获取数据?

①判断是否存在SQL注入

②查看字段

③绕过拦截

④如何判断网页是什么数据库?

⑤Access数据库获取表名

⑥获取字段信息

 5、 例题讲解——利用工具注入

在Access数据库中,如何利用工具注入的方法获取数据?

①跑包测试

②获取表名

③获取字段名

6、JS如何设置Cookie?

7、Cookie注入存在于什么网站?

8、思维误区


1、Cookie注入

SQL注入的本质是用户输入的数据会被当作代码执行


什么是Cookie?

Cookie就是代表你身份的一串字符串,网站根据Cookie来识别你是谁,如果获取了管理员的Cookie,你可以无需密码直接登录管理员账号;


Cookie注入简介

数据库有很多种类,常见的数据库有Access、Mysql、msSQL(sql server)、Oracle,前面我们学的联合查询和盲注那些语句都是Mysql的内容;

POST注入和HEAD注入其实就是传参方式不同来分类,比如说POST注入的GET传参和POST传参 就是根据传参方式不同来分类的,POST注入不存在数据库限制,Cookie注入其实和Post、Head注入一样都是属于特殊的传参方式产生的注入,主要介绍和Access数据库有关的Cookie注入;

Cookie注入可以在Oracle数据库或者其他数据库做,因为Cookie注入跟数据库是没有关联的,它只和传参方式有关,其他的一概没有关系;


Cookie和注入有什么关系?

当动态脚本语言存在超全局变量可以获取多种传参方式,比如说开发人员在做开发的时候接受多种传参,像php中的$_REQUEST[]可以获取POST、GET、Cookie传参,我们写一个这样的SQL语句:

select * from news where id=$_REQUEST['id']

从上面这条语句中我们可以知道这里存在SQL注入,id只传入了数据,并没有经过任何的处理和过滤,我们只要在后面拼接union select,就可以得到我们想要的信息;

比如说现在我们遇到一种情况,这个网站会对GET、POST数据进行检测,但是不会对Cookie做检测,这个时候就可以去获取信息和数据了;

举个例子,打开Phpstudy,先切换到低版本;

启动之后,打开网站根目录;

在www文件目录下新建一个php文件,自定义命名,这里命名为1.php;

输入代码;

<?php
$id=$_REQUEST['id'];
$sql="select*from news where id='$id'";
echo $sql;
?>

打开My HomePage;

打开My HomePage后会看到这样的页面;

将index.php修改为我们的文件名1.php;

回车后,会出现下面这样的语句;

我们随便传个1,它就会把数据拼接过来;

我们在这里写个单引号,就会出现魔术引号;

我们之前有学过,魔术引号一定要用宽字节来绕过,它支持GBK编码,如果说这个地方我们不用GBK编码能否绕过呢?

前面我们知道魔术引号会对字符串的GET和POST请求进行一个处理,那我们来想一个问题,$_REQUEST会接受Cookie的传参,那我们试试看如果给它改一个Cookie,看看会不会对我们的传参进行一个魔术引号的拦截

[注:本地搭建的情况下由于代码和环境的限制,导致SQL查询语句只能在前端执行,并没有将cookie数据传入后端,所以数据库才没有返回默认的cookie(一句话理解:前端没有链接数据库,只是在前端输出cookie的内容,不能cookie存储,所以页面没有默认cookie)]

从上面这张图, 可以到依旧是做了转移符的执行,魔术引号在宽字节注入的情况下,无论是POST传参还是GET传参或者Cookie传参,只要用了$_REQUEST那它就会对其进行防御

如果说我们直接写$id,会是什么情况;

<?php
$id=$_REQUEST['id'];
echo $id;
?>

可以看到上面的传参是1,但下面显示的是9,是因为我的Cookie和刚才输入的数据(id,9)是一起传参的;

上面输入的是1,但是下面显示的是9,是因为Cookie传参会比GET传参优先级更高


Cookie的核心

Cookie的核心在于POST和GET被拦截的时候,我们可以尝试使用Cookie


2、如何设置Cookie?

方法一:依靠浏览器进行设置

首先,在网页里打开开发人员工具;

看到这个页面之后,在应用程序里找到Cookie,然后再点击Cookie的值;

然后就会出现这样的界面,你可以在这里面添加或者删除Cookie;

我们添加一个Cookie看看;

刷新之后页面显示的就是100;

也可以写点其他的东西;

也一样会显示;

这是一个方法,依靠浏览器去设置


方法二:抓包直接修改

我们可以利用Burp数据包进行直接修改;

Cookie其实是在数据包的请求头里面,它会被写在里面一起上传,所以我们也可以通过抓包的方法将Cookie拦截下来

举个例子,这是我自己添加的Cookie,我们现在对它进行抓包;

抓到的包;

现在我们将Cookie改一下;

修改好后,再点击Forward;

然后再回到我们网页这里,就会发现显示的是Hello;

利用Burp数据包进行直接修改,这也是一个比较好用的方法;


方法三:个别浏览器插件也可以设置Cookie

比如这个插件,就可以设置Cookie;

安装方式很简单,只需要点击网页右上角拼图的图标,选中管理扩展程序; 

就会看到这样的页面;

直接将文件夹里的插件拖进去即可;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值