0


【SQL注入】cookie注入:原理、步骤、示例

一、简介

1.1、cookie定义:

Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

通常被用来辨别用户身份、进行session跟踪,最典型的应用就是保存用户的账号和密码用来自动登录网站



二、cookie注入原理

2.1、简介:

cookie注入与传统的SQL注入基本上是一样,都是针对数据库的注入,就是注入的位置不同,注入形式不同

2.2、原理:

ASP脚本中的request对象,被用于从用户那里获取信息。

Request对象的使用方法:request.[集合名称](参数名称)效率低下,容易出错

eg获取从表单中提交的数据时:request.form("参数名称")


但ASP中规定也可以省略集合名称:request("参数名称"),当使用这样的方式获取数据时,ASP规定是按QueryString、Form、Cookies、ServerVariables的顺序来获取数据的。这样,当我们使用request("参数名称")方式获取客户端提交的数据,并且没有对使用request.cookies("参数名称")方式提交的数据进行过滤时,可能存在Cookie注入

2.3、条件:

(从原理可以分析出存在cookie注入的条件)

1:cookie提交到数据库的语句未被过滤,或过滤不严谨

2:程序对提交数据获取方式是直接request("xxx")的方式,未指明使用request对象的具体方法进行获取

2.4注入步骤:

第一步:寻找参数位置

eg:.asp?id=xx这样带参数id=xx


第二步:去掉参数,观察参数影响

eg:将“id=xx”删掉,看页面是否正常,正常,则说明参数不起作用。反之不正常,说明参数在数据传递中启直接作用


第三步:(先清空网址)输入“javascript:alert(document.cookie=“id=”+escape(“xx”));”

按Enter键后弹出一个对话框,内容是“id=xx”

然后重新输入原来URL回车

如果显示正常,说明是用Request(“id”)方式获取数据

//注释

document.cookie:表示当前浏览器中的cookie变量

alert():表示弹出一个对话框

escape():对字符串进行编码


第四步:判断是否存在漏洞

将SQL判断语句带入,并重复第三步

①“javascript:alert(document.cookie=“id=”+escape(“xx and 1=1”));”

②“javascript:alert(document.cookie=“id=”+escape(“xx and 1=2”));”。

若①正常,②不正常,则说明存在注入漏洞,并可以进行cookie注入


第五步:cookie注入

构造cookie注入payload

javascript:alert(document.cookie="smallclass="+escape("xx order by 2"));

javascript:alert(document.cookie="id="+escape("284 union select 1,…… from xx"));

……



三、插件示例

3.1、sqli-lasb21

用admin登录进去,可以看出这是cookie注入,value一看就是加密过

YWRtaW4%3D 中的%3D 对应URL码中的 =

一般get和post的参数采用base64等加密方式将数据进行加密,再通过参数传递给服务器

----->YWRtaW4= ---------> admin


方法一:用burpsuite进行抓包后修改

方法二:安装火狐的cookie manager等插件进行修改cookie

第一步:先将注入语句转换为base64加密后密文


第二步: 将加密后密文填到cookie value里并保存


第三步:刷新页面,使cookie重新加载

标签: web安全 数据库 sql

本文转载自: https://blog.csdn.net/qq_53079406/article/details/125685994
版权归原作者 黑色地带(崛起) 所有, 如有侵权,请联系我们删除。

“【SQL注入】cookie注入:原理、步骤、示例”的评论:

还没有评论