通常我们的开发人员在开发过程中会特别注意到防止恶意用户进行恶意的注入操作,因此会对传入的参数进行适当的过滤,但是很多时候,由于个人对安全技术了解的不同,有些开发人员只会对get,post这种方式提交的数据进行参数过滤。
但我们知道,很多时候,提交数据并非仅仅只有get\post这两种方式,还有一种经常被用到的方式:request("xxx"),即request方法
通过这种方法一样可以从用户提交的参数中获取参数值,这就造成了cookie注入的最基本条件:使用了request方法,但是注入保护程序中只对get\post方法提交的数据进行了过滤。
cookie注入其原理也和平时的注入一样,只不过说我们是将提交的参数已cookie方式提交了,而一般的注入我们是使用get或者post方式提交,get方式提交就是直接在网址后面加上需要注入的语句,post则是通过表单方式,get和post的不同之处就在于一个我们可以通过IE地址栏处看到我们提交的参数,而另外一个却不能。
相对post和get方式注入来说,cookie注入就要稍微繁琐一些了,要进行cookie注入,我们首先就要修改cookie,这里就需要使用到Javascript语言了。另外cookie注入的形成有两个必须条件,条件1是:程序对get和post方式提交的数据进行了过滤,但未对cookie提交的数据库进行过滤。条件2是:在条件1的基础上还需要程序对提交数据获取方式是直接request("xxx")的方式,未指明使用request对象的具体方法进行获取。
cookie是代表身份的字符串。网站根据cookie来识别你是谁,如果你获取了管理员的cookie,你可以无需密码直接登录账号。
cookie本身机制就不安全。
检测是否存在cookie,不存在,服务器会给你一个。如果没有登录,那么cookie就是游客状态。如果你登录了AD账号,那么那个cookie代表的就是AD账号。
可通过此方法获取参数:火狐浏览器查看元素->存储器-》cookie->+->名称改为id->值改为zkaq->刷新页面
$_REQUEST:在PHP高于5.4的版本不会获取cookie,cookie注入一般在ASP的站点比较多。
注意点:cookie传参需要URL编码。
可以通过很多方法设置cookie:方法一:抓包、改包,添加一个cookie字段在请求里面。
方法二:用javascript来设置cookie。具体操作方法:打开控制台,输入document.cookie,回车(也可用hackbar)
escape():对字符串进行编码,这样就可以在所有的计算机谁给你读取改字符串。
Access数据库很老,严格来说只有一个库,没有系统自带库,一般来说账号密码就是在admin表的username字段和password字段。
用sqlmap:-u "URL" --cookie "id=xxx" --level 2
cookie注入不知道库名怎么办:就一库,没必要知道。
不知道表:exist()函数,eg:1.exists(select * from news)2.爆破
知道表名不知道列名(字段名)的时候可以考虑使用偏移注入
用select 表名.* from 表名 可以查出表
总的来说和联合查询显错注入很像
传统的偏移注入需要用到内连接
找注入点思路:瞎几把乱点找数据库传参,像什么图片啊、文章啊都可以
然后尝试注入
使用cookie的偏移注入时,需要将cookie的值用url编码加密一次
.png)
可以使用Javascript的document.cookie="id="+escape("105 order by 1");
直接输入正常字符串,通过escape函数来自动生成url编码过的cookie值
在设置完cookie传参之后,去掉url地址中的?传参,同样可以访问到该页面
以下是原网页
.png)
以下是构建了cookie的(注意地址栏对比)
.png)
也可以通过抓包修改cookie值
在Accssess数据库中,无法使用mysql数据库中的select 1,2,3…来直接猜显示点
在这个时候就需要穷举,穷举表,自己猜表然后用select 1,2,3… from 表 的方式来爆显示点
只要数据库存在这个表,那就可以显示表
比如说(已知这张表有26个字段)
105 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 from admin
.png)
有显示数字,说明这张表存在
表名不存在的时候直接报错
而有一些输出点是比较隐晦的,不直接显示在页面上,比如说图中的未加载图片,其实它也是一个输出点,在源码中的<img src='25'>会显示
现在已经知道有个admin表了,可以使用前面提到的admin.*了
但是在直接select 1,2,3,admin.*之前有一件事很重要,就是猜admin表的字段数。因为当你把admin.*插入select 语句时,要小心union select语句前后字段数不一致。也就是说当admin表字段数大于等于当前表字段数的时候,无法进行偏移注入,要么GG,要么找到一个字段数更多的表来偏移注入。
现在我们已知当前表的字段数是26,那么如果是union select 1,2,3…,24,25,26,admin.*的话,就相当于是select 26 union select 26+admin表字段数,这样联合查询前后表字段数不一致肯定会报错,现在就是猜admin表的字段数,猜是1个字段时:…25,26 union select 1,2,3…,24,25,admin.*——报错
然后猜admin表有两个字段:…25,26 union select 1,2,3…,24,admin.*——报错
然后猜admin表有三个字段
以此类推
……
……
最后试到union select 1,2,…10,admin.*的时候正常显示,说明admin表有16个字段
然后将admin.*平移到显示点,将后面的位置填上:
union select 1,2,3,4,5,6,admin.*,23,24,25,26
语句执行后,在显示点上显示的就是admin表中第一个字段的数据
查询admin表中第二个字段的数据时,再平移一位union select 1,2,3,4,5,admin.*,22,23,24,25,26
以此类推
通常用户表的设置是id,name,password,。。。这样的
而且通常遇到明显加密过的很有可能是password,这个时候用md5解密得到密码
也可以用火狐hackbar直接进行cookie注入,但注意需要URL加密。
- 3.羽翼sqlmap学习笔记之Cookie注入
Cookie注入: 1.假设这个网址"http://www.xxx.org/Show.asp?id=9"存在注入点.2.sqlmap命令提示符下输入下列内容进行跑表. sqlmap ...
- 注入语句详解(get注入,cookie注入,搜索型注入等)
注意:对于普通的get注入,如果是字符型,前加' 后加 and ''=' 拆半法 ###################################### and exists (select ...
- cookie注入讲解
我们首先还是来看看中网景论坛的最新版本"(CNKBBS2007)中网景论坛2007v5.0 "官方下载地址" http://www.cnetking.com/websys ...
- cookie注入的形成,原理,利用总结
一:cookie注入的形成 程序对提交数据获取方式是直接request("c.s.t")的方式.未指明使用request对象的具体方法进行获取. 二:原理 request(&quo ...
- 手工、工具分别实现cookie注入
最开始的判断access类型的网站注入点可以用“1 and 1=1”来判断. 不过现在的网站基本上被挡住了.之后呢,可以考虑cookie注入. Dim Tc_Post,Tc_Get,Tc_In,Tc_ ...
- 菜鸟详细解析Cookie注入原理
一.SQL注入原理 我以aspx为例,现在我们来研究下Cookie注入是怎么产生的,在获取URL参数的时候,如果在代码中写成Request[“id”],这样的写法问题就出现了.我先普及下科普知识,在a ...
- 第二次靶场练习:cookie注入
cookie注入 本文章目的是对相关的黑客内容进一步了解,如有人违反相关的法律法规,本人概不负责 一.学习目的: 利用手工注入网站 利用sqlmab注入 二.附件说明 靶场网址:http://120. ...
- access数据库之cookie注入
本来今天想写post注入的,但这几天正好看到chookie的注入的视频.就先写一下这个.大家对于我说的get post cookie注入可能会认为SQL注入就这几种方式.这概念是错的.Get post ...
- Cookie注入实战(非SQL注入)
cookie注入原理其实很简单,就是利用了session机制中的特性,只能说是特性,不能算是漏洞. 这里简单的说下原理,session的机制就相当于你有一张蛋糕店的会员卡,这张会员卡就是你浏览器中的c ...
- cookie注入原理详解(一)
那我们还是围绕以下几个问题来看看cookie注入: 1.什么是cookie注入? 2.为什么要cookie注入? 3.怎样cookie注入? 1.什么是cookie注入? ♦cookie注入的原理是: ...
随机推荐
- java 如何快速的获取浏览量
最近公司做了一个类似 于发帖,交友圈一个这样的功能 在如何精确快速的获取用户的浏览量,且及时的更新显示,最初我是这样想,把每条帖子内容浏览量放到reids 里面,但是redis只是用来存零时数据,想想 ...
- dubbo-admin监控台的搭建
一.dubbo-admin dubbo-admin是dubbo的控制台web程序,可以利用浏览器对dubbo进行性能监控.服务治理.降级.分组以及一些参数的设置.2.6版本及以前打包后是一个war包, ...
- 动态规划: 最大m子段和问题的详细解题思路(JAVA实现)
这道最大m子段问题我是在课本<计算机算法分析与设计>上看到,课本也给出了相应的算法,也有解这题的算法的逻辑.但是,看完之后,我知道这样做可以解出正确答案,但是我如何能想到要这样做呢? 课本 ...
- Fluent_Python_Part4面向对象,11-iface-abc,协议(接口),抽象基类
第四部分第11章,接口:从协议到抽象基类(重点讲抽象基类) 接口就是实现特定角色的方法集合. 严格来说,协议是非正式的接口(只由文档约束),正式接口会施加限制(抽象基类对接口一致性的强制). 在Pyt ...
- Bugku-CTF加密篇之简单加密(e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA)
简单加密 e6Z9i~]8R~U~QHE{RnY{QXg~QnQ{^XVlRXlp^XI5Q6Q6SKY8jUAA
- POJ1087 A Plug of UNIX
你作为某高管去住宿了,然后宾馆里有几种插座,分别有其对应型号,你携带了几种用电器(手机,电脑一类的),也有其对应型号:可是不一定用电器就能和插座匹配上,于是宾馆的商店里提供了一些转换器,这些转换器可以 ...
- EXPOSE ocker run -P 时,会自动随机映射 EXPOSE 的端口
EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]. EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用 ...
- MYSQL---外键 primary key 作用
https://www.cnblogs.com/x739400043/p/4732158.html 外键和级联 关于外键写的不错的网址:http://blog.csdn.net/lidaasky/ ...
- 【PAT甲级】1047 Student List for Course (25 分)
题意: 输入两个正整数N和K(N<=40000,K<=2500),接下来输入N行,每行包括一个学生的名字和所选课程的门数,接着输入每门所选课程的序号.输出每门课程有多少学生选择并按字典序输 ...
- Nginx禁止使用ip访问,只允许使用域名访问
Nginx虚拟主机配置,vhosts下面有很多域名的配置: [root@external-lb01 vhosts]# pwd/data/nginx/conf/vhosts [root@external ...