(渗透-摘录) cookie 注入
2019年2月11日 (渗透--摘录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规定是按QueryString、Form、Cookies、ServerVariables的顺序来获取数据的。
我们来研究一下怎样情况下才会有Cookie注入
如果你学过ASP,你应该会知道Request.QueryString(GET)或Request.Form(POST)
备注:客户端向服务器提交HTTP请求,两种HTTP请求方法GET和POST
·GET -从指定的资源请求数据
·POST -向指定的资源提交要被处理的数据
这就是我们用于读取用户发给Web服务器的指定键中的值
我们有时为了简化代码,会写成 ID=Request(“ID”)
这样写法是简单了,但问题就来了
Web服务器是先取GET中的数据,没有再取POST中的数据,还是会取Cookies中的数据
防注入系统会检测GET和POST中的数据,如果有特殊字符(这里当然有特殊字符啦),就禁止数据的提交,但防注入系统没有检测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保存在cookie的ID中
会看到弹出一个对话框,内容是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.QueryString或Request.Form获取客户端提交的数据的话,是无法利用cookie绕过防注入系统进行注入的,因为服务器程序直接从GET或POST中读取数据,并不会去读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,
打开明小子,利用这个url做sql注入检测。
或使用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
sqlmap做cookie注入获取表段、字段、字段中的值
- 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 |
+--------+
- 获取字段
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 |
+----------+-----------+
- 获取字段中的内容
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
(渗透-摘录) cookie 注入相关推荐
- 【渗透测试】cookie注入笔记
目录 什么是cookie? 什么是cookie注入? Cookie手注流程 一.判断注入点 二.判断字段数 三.判断回显点 四.查询相关内容 补充 答疑 1.为什么是select 1,2 不是 sel ...
- 关于sql注入之cookie注入
小知识:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后 ...
- 渗透学习-SQL注入篇-基础知识的学习(持续更新中)
提示:仅供进行学习使用,请勿做出非法的行为.如若由任何违法行为,将依据法律法规进行严惩!!! 文章目录 前言 一.SQL注入产生的原因 二.手工注入大致过程 1.判断注入点: 2.猜解列名 3.猜解能 ...
- 渗透测试之SQL注入基础
渗透测试之SQL注入基础 SQL注入类型 按照数据类型类型来分类 按照执行效果来分类(页面回显效果) 按照数据提交的方式来分类 判断注入类型的方法 MySQL注入基础 联合查询注入 布尔注入 时间盲注 ...
- MySQL cookie注入
MySQL cookie注入 1.cookie介绍 服务器可以利用cookie包含信息的任意性来筛选并经常性维护这些信息,以判断在HTTP传输中的状态.cookie最典型的应用是判定注册用户是否已经登 ...
- MySQL注入读写文件、HTTP头中的SQL注入和cookie注入
MySQL注入读写文件 MySQL数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(前提是权限足够) 读取前提: 1.用户权限足够高,尽量具有root权限 2. ...
- Cookie注入是怎样产生的
Cookie注入是怎样产生的 现在很多网站都加了防注入系统代码,你输入注入语句将无法注入~~感觉这样的防注入系统不错,但防注入系统没有注意到 Cookies 的问题!所以就有了Cookies注入~~ ...
- 【CyberSecurityLearning 60】ACCESS数据库的注入+ACCESS数据库的cookie注入
目录 ACCESS注入 雷驰新闻系统v1.0环境搭建: ACCESS数据库注入演示1: 雷驰新闻系统v3.0环境搭建: cookie注入演示2: ACCESS数据库注入用sqlmap怎么做?演示: A ...
- 手工、工具分别实现cookie注入
最开始的判断access类型的网站注入点可以用"1 and 1=1"来判断. 不过现在的网站基本上被挡住了.之后呢,可以考虑cookie注入. Dim Tc_Post,Tc_Get ...
最新文章
- 深入理解FFM原理与实践
- JavaScript DOM 6 - 节点的创建,插入,替换,删除
- Ubuntu 使用 Smina 对接教程
- chromium禁用ajax,页面加载时,jQuery AJAX不会在Chrome / Chromium中启动
- IP地址转化为32位无符号数
- 学习廖雪峰的Python教程之Python基础
- 3ds Max 2012 简体中文版 带注册机32位64位
- 机械类和计算机类哪个累哪个难,这几个大学专业累死人还难学,但是毕业却很好就业...
- html5音效,HTML5之Audio(六)—— 3D音效
- ERP标准物料编码规则指南
- 机器人学:(3)机器人运动学
- word域锁定和更新
- window本地代理及共享端口445修改
- Sonatype Nexus安装
- 浅谈FromHandle
- 关于向数据库中插入数据时报“An explicit value for the identity column in table can only be specified when ...“的错误
- Windows删除流氓软件方法记录
- Python小游戏-Las Vegas Black Jack- CASINO (21点)
- python显示图片 播放mp3_如何在python中从Mp3文件中提取和显示唱片集图片
- C++编程永不过时的语言,原因何在?
热门文章
- sp经营许可证适用范围是什么?
- 快速有效的从零开始学习3d建模?
- spark读取excel表格
- wxpython中表格顶角怎么设置,wxpython listctrl并修复列宽
- ZDM2004工具式绘图软件v1.7 for AutoCAD2004 1CD(水电版)
- spring加载不到.properties中属性问题(spring中类:PropertyPlaceholderConfigurer出现多次)
- 【Python】EasyGUI实例——实现NJUCM绩点计算器程序
- 音频特征提取——常用音频特征
- pikachu-远程代码、命令执行漏洞(RCE)
- python休假管理_Python 假期自学小结 其六