Cookie注入

发布于 2022-03-16  157 次阅读


一、什么是Cookie?

Cookie就是服务器用来识别用户信息的一串字符,Cookie由服务器提供给浏览器,然后由浏览器进行保存,在每次对网站进行访问时,会在请求头中包含Cookie的参数,让服务器对自身身份进行识别。

二、Cookie注入?

Cookie注入就是通过修改cookie的值达到注入的目的。

三、为什么会产生Cookie注入

是因为网站带代码中除了get、post传参,还接受了cookie传参,并带入了数据库,如果对cookie没有进行检测的话,就可能造成cookie注入。

如php中:$_REQUEST['a']既可以接受GET、POST传参,还可以接受COOKIE传参。

asp中:

四、靶场实操

image-20211217221825556

进入界面是这样的。随便逛逛。

image-20211217222046601

这个靶场对GET、POST传参进行了限制

image-20211217161451968

那就是尝试cookie注入

image-20211217161609588

页面刷新之后发现确实发生了变化。说明cookie传参成功,那测试一下是否可以注入

image-20211217161740182

页面显示正常

image-20211217161930056
image-20211217161920643

页面出错了,说明and 1=2注入成功了。

这里使用的是 exists()函数来猜测表名

image-20211217183932874

回显正常,说明存在这个admin表。也可以BURP进行对admin位置进行爆破,猜解其他表

然后猜解字段。

image-20211217184151477

username字段

image-20211217184236705

password字段

也可以进行爆破字段,即对列名对应的位置进行爆破

image-20211217184339822
image-20211217184353305

order by 进行判断字段数,10回显正常,11回显错误,说明存在10列

union select 判断回显位

image-20211217184544800

可以看到,2,3,7,8,9都是回显位置

查询admin表中的usernamepassword字段值

image-20211217184718197
image-20211217184725462

查到管理员用户的账号和密码(密码进行了md5加密,解码就好了)

adminwelcome

image-20211217184940021
image-20211217185052262

成功进入后台!

总结

  • access数据库,没有数据库的概念,所有的表都在一个数据库下
  • access数据库中没有注释符,即-- 空格#在access数据库中都不能使用。
  • access中的系统表是msysobjects,因此
  and exists(select * from msysobjects)  这个语句可以判断是不是Access数据库
  • access中常用的函数和语句
  select len(string)          返回字符串的长度
  select asc("a")             返回字符的ascii值
  select mid(string,start,length)    查询给定字符串从指定索引开始的长度
  top  n                      查询前n条数据

本当の声を響かせてよ