首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >渗透测试XSS漏洞原理与验证(6)——Cookie攻击

渗透测试XSS漏洞原理与验证(6)——Cookie攻击

原创
作者头像
zhouzhou的奇妙编程
发布2024-11-08 22:16:52
发布2024-11-08 22:16:52
7910
举报
文章被收录于专栏:渗透测试专栏渗透测试专栏

Cookie基础

简介

Cookie 是用户浏览网页时网站存储在用户机器上的小文本文件。

主要记录与用户相关的一些状态或者设置,比如用户名、ID、访问次数等。当用户下一次访问这个网站的时候,网站会先访问用户机器上对应的该网站的Cookie文件。

Cookie用来保存信息,比如:自动登陆、记住用户名、浏览记录等。

Cookie的特性

  • 同一个网站中所有的页面共享一套Cookie(因为不可能在同一个网站,打开页面都要登录一次,以域名为单位)
  • 数量、大小限制(过大的存储是不现实的)
  • 过期时间(如果不设置过期时间,关闭浏览器就会自动清除Cookie)

Cookie的作用

Cookie最大作用维持会话的凭证,减少登录网站的次数,记录关于用户信息

Cookie的类型

根据Cookie的时效性以及相关特点,可以把它分为两种类型:持久型Cookie和临时型Cookie

  • 持久型Cookie以文本形式存储在硬盘上,由浏览器存取
  • 临时型Cookie也称为会话Cookie,存储在内存中,关闭当前浏览器后会立即消失

Cookie的操作

浏览器通过Document对象访问Cookie

若要创建一个Cookie,只要将特定格式的字符串赋给document.cookie即可:

cookieName=cookieValue;expirationdate;path

后端语言处理方式:PHP setrawcookie(),setcookie()

Cookie的属性

Name--Cookie的名称;

Value--读写Cookie的值;

Expires--通过给定一个过期时间来创建一个持久化Cookie;

Path--关联到Cookie的路径,默认为/;

Domain--设置关联Cookie的域名;

Secure--用于指定Cookie需要通过安全Socket层连接传递;

HttpOnly--用于避免Cookie被JavaScript访问;

尝试操作Cookie

创建一个Cookie,需要提供Cookie的名字、对应值、过期时间和相关路径等

代码语言:php
复制
<?php

setcookie('user_id',123);   //创建一个Cookie变量user id=123

?>

代码作用是创建一个Cookie变量user_id,它的值为123。

在地址栏(f12开发者工具中)输入javascript:alert(document.cookie),按下【Enter】键就会弹出当前的Cookie信息,如下图所示。

Cookie攻击

常见的Cookie攻击方式

实现基于HTTP Cookie攻击的前提是目标系统在Cookie中保存了用户ID、凭证状态等其它可以用来进行攻击的信息。

常见的基于Cookie的攻击方式有三种:

  • 直接访问Cookie文件查找想要的机密信息;
  • 在客户端和服务端进行Cookie信息传递的时候进行窃取,从而冒充合法用户操作;
  • 攻击者修改Cookie信息,所以在服务端接收到客户端获取的Cookie信息的时候就会对攻击者伪造过的Cookie信息操作。

获取Cookie信息的主要途径

  • 直接读取磁盘的Cookie文件;
  • 使用网络嗅探器来获取网络上传输的Cookie;
  • 使用Cookie管理工具获取内存或文件系统中的Cookie;
  • 使用跨站脚本盗取Cookie。

获取客户端cookie信息

在远程服务器上,有一个接收和记录Cookie信息的文件,代码示例如下:

代码语言:txt
复制
<?php

$cookie = $_GET['cookie'];
$log = fopen("cookie.txt","a");
fwrite($log, $cookie ."\n");
fclose($log);

?>

相关函数介绍

fopen("cookie.txt","a");

以写入方式打开cookie.txt

fwrite($log, $cookie ."\n");

将$cookie变量的内容写入文件指针$log处

fclose($log);

关闭已经打开的$log指针

XSS钓鱼攻击

网络钓鱼(Phishing)是一种利用欺骗性的电子邮件和伪造的Web站点进行网络诈骗,意图引诱受害者给出敏感信息(如用户名、口令、身份证号等信息)的攻击手段主要通过对受害者心理弱点、好奇心、信任度等心理陷阱来实现诈骗。属于社会工程学的一种。

假设有一个网页文件含有以下HTML代码:

代码语言:html
复制
<a href="http://www.qq.com">    baidu  </a>

XSS重定向钓鱼

将正常用户访问重定向到恶意网站,将恶意网站伪造的和正常访问的网站一样

假设www.bug.com上有一处XSS:

http://www.bug.com/index.php?search=【Expliot】

代码语言:txt
复制
http://www.bug.com/index.php?search=" '><script>document.location.href="http://www.baidu.com"</script>

这样便会让用户从当前访问的网站跳转到一个钓鱼网站。

HTML注入式钓鱼

HTML注入式钓鱼是指直接利用XSS洞注入HTML或JavaScript代码到页面中

这段代码会在正常页面中嵌入一个Form表单,如右图所示。该例子中,相应的利用代码被附加到URL处,然后构造出一个登录表单该表单可以覆盖原页面显示,强迫用户输入账号和密码等信息。

iframe钓鱼

iframe钓鱼是通过标签嵌入远程域的一个页面实施钓鱼。

代码语言:html
复制
<iframe src="http://www.baidu.com" height="100%" width="100%" </iframe>

高级钓鱼技术

注入代码劫持HTML表单、使用JavaScript编写键盘记录器等。


本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!

本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cookie基础
    • 简介
    • Cookie的特性
    • Cookie的作用
    • Cookie的类型
    • Cookie的操作
    • Cookie的属性
    • 尝试操作Cookie
  • Cookie攻击
    • 常见的Cookie攻击方式
    • 获取Cookie信息的主要途径
    • 获取客户端cookie信息
    • 相关函数介绍
  • XSS钓鱼攻击
    • XSS重定向钓鱼
    • HTML注入式钓鱼
    • iframe钓鱼
    • 高级钓鱼技术
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档