raskors adlı üyeden alıntı:
mesajı görüntüle
harbiden hacklenmiş. https://www.anayasa.gov.tr/galeri360...ch-lie-gvxmnjd
Bu bağlantı, Türkiye Cumhuriyeti Anayasa Mahkemesi'nin resmi web sitesinde yer alan Galeri 360 (sanal tur / 360 derece görsel galeri) sayfasına yönlendirmektedir.
Ancak bağlantının sonundaki parametreler incelendiğinde, bu adresin standart bir tur linkinden farklı olarak güvenlik ve yönlendirme açığı (open redirect / injection riski) barındırabilecek harici bir kod (base64 ile kodlanmış gizli bir dış kaynak ve farklı bir parametre) içerdiği görülmektedir. Yani tıklandığında sizi Anayasa Mahkemesi'nin kendi sunucularındaki zararsız bir sanal tur sayfasına götürse bile, içerideki parametreler başka harici (GitHub veya benzeri üçüncü taraf) betiklerin veya içeriklerin yüklenmesine zemin hazırlayacak şekilde tasarlanmıştır. Bu tür yabancı kaynaklı ve manipüle edilmiş parametre içeren bağlantılara karşı dikkatli olmanız önerilir.
Kodun içinde yüklenen harici kaynak dosyası şurasıdır:
https://leogoats.github.io/bf.edu/ujm.xml
Bu XML dosyası, sanal tur yazılımı olan krpano aracılığıyla arka planda çağrılmaktadır.
Bu dosya çalıştırıldığında (veya doğrudan yönlendirme zinciri izlendiğinde) kullanıcıyı kaçak maç yayını veya yönlendirme yapılan ilgili Blogspot bloğuna sevk eder.
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>Anayasa Tarihi Galerisi 360° Sanal Tur</title>
<meta name="description" content="Anayasa Tarihi Galerisi 360° Sanal Tur" />
<meta name="keywords" content="Anayasa Tarihi Galerisi 360° Sanal Tur" /> <meta name="medium" content="mult" /> <meta name="video_height" content="480"></meta> <meta name="video_width" content="640"></meta> <link rel="image_src" href="indexdata/thumbnail.jpg" /> <!-- <meta name="directory" content="PATH/"></meta> --> <!-- <link rel="target_url" href="index.html" /> --> <meta name="generator" content="Anayasa Tarihi Galerisi 360° Sanal Tur" />
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"/> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="default"> <style type="text/css"> @-ms-viewport { width: device-width; } @media only screen and (min-device-width: 800px) { html { overflow:hidden; } } * { padding: 0; margin: 0; } html { height: 100%; } body { height: 100%; overflow:hidden; } div#container { height: 100%; min-height: 100%; width: 100%; margin: 0 auto; } div#tourDIV { height:100%; position:relative; overflow:hidden; } div#panoDIV { height:100%; position:relative; overflow:hidden; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -o-user-select: none; user-select: none; } </style> <!--[if !IE]><!--> <script type="text/javascript" src="indexdata/lib/jquery-2.1.1.min.js"></script> <!--<![endif]--> <!--[if lte IE 8]> <script type="text/javascript" src="indexdata/lib/jquery-1.11.1.min.js"></script> <![endif]--> <!--[if gt IE 8]> <script type="text/javascript" src="indexdata/lib/jquery-2.1.1.min.js"></script> <![endif]-->
<link type="text/css" href="indexdata/lib/jquery-ui-1.11.1/jquery-ui.min.css" rel="stylesheet" /> <script type="text/javascript" src="indexdata/lib/jquery-ui-1.11.1/jquery-ui.min.js"></script> <script type="text/javascript" src="indexdata/lib/jquery.ui.touch-punch.min.js"></script> <script type="text/javascript" src="indexdata/lib/Kolor/KolorTools.min.js"></script> <script type="text/javascript" src="indexdata/graphics/KolorBootstrap.js"></script>
<style type="text/css"> div#panoDIV.cursorMoveMode { cursor: move; cursor: url(indexdata/graphics/cursors_move_html5.cur), move; } div#panoDIV.cursorDragMode { cursor: grab; cursor: -moz-grab; cursor: -webkit-grab; cursor: url(indexdata/graphics/cursors_drag_html5.cur), default; } </style>
<script type="text/javascript">
function readDeviceOrientation() { // window.innerHeight is not supported by IE var winH = window.innerHeight ? window.innerHeight : jQuery(window).height(); var winW = window.innerWidth ? window.innerWidth : jQuery(window).width(); //force height for iframe usage if(!winH || winH == 0){ winH = '100%'; } // set the height of the document jQuery('html').css('height', winH); // scroll to top window.scrollTo(0,0); } jQuery( document ).ready(function() { if (/(iphone|ipod|ipad|android|iemobile|webos|fennec|bl ackberry|kindle|series60|playbook|operasmini|opera smobi|operastablet|symbianos|palmsource|palmos|bla zer|windowssce|windowssphone|wp7|bolt|doris|doroth y|gobrowser|iris|maemo|minimo|netfront|semc-browser|skyfire|teashark|teleca|uzardweb|avantgo|d ocomo|kddi|ddipocket|polaris|eudoraweb|opwv|plink| plucker|pie|xiino|benq|playbook|bb|cricket|dell|bb 10|nintendo|up.browser|playstation|tear|mib|obigo| midp|mobile|tablet)/.test(navigator.userAgent.toLowerCase())) { if(/iphone/.test(navigator.userAgent.toLowerCase()) && window.self === window.top){ jQuery('body').css('height', '100.18%'); } // add event listener on resize event (for orientation change) if (window.addEventListener) { window.addEventListener("load", readDeviceOrientation); window.addEventListener("resize", readDeviceOrientation); window.addEventListener("orientationchange", readDeviceOrientation); } //initial execution setTimeout(function(){readDeviceOrientation();},10 ); } }); function accessWebVr(){ unloadPlayer();
eventUnloadPlugins();
setTimeout(function(){ loadPlayer(true); }, 100); } function accessStdVr(){ unloadPlayer();
resetValuesForPlugins();
setTimeout(function(){ loadPlayer(false); }, 100); } function loadPlayer(isWebVr) { if (isWebVr) { embedpano({ id:"krpanoSWFObject" ,xml:"indexdata/index_vr.xml" ,target:"panoDIV" ,passQueryParameters:true ,bgcolor:"#000000" ,html5:"only+webgl" ,focus: false ,vars:{skipintro:true,norotation:true} }); } else { var isBot = /bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent); embedpano({ id:"krpanoSWFObject"
,xml:"indexdata/index.xml"
,target:"panoDIV" ,passQueryParameters:true ,bgcolor:"#000000" ,focus: false ,html5:isBot ? "always" : "only"
}); } //apply focus on the visit if not embedded into an iframe if(top.location === self.location){ kpanotour.Focus.applyFocus(); } } function unloadPlayer(){ if(jQuery('#krpanoSWFObject')){ removepano('krpanoSWFObject'); } } function isVRModeRequested() { var querystr = window.location.search.substring(1); var params = querystr.split('&'); for (var i=0; i<params.length; i++){ if (params[i].toLowerCase() == "vr"){ return true; } } return false; } </script> </head> <body> <div id="container">
<div id="tourDIV"> <div id="panoDIV"> <noscript>
You must activate javascript to visualize the Virtual Tour : Anayasa Tarihi Galerisi 360° Sanal Tur
</noscript> </div>
<script type="text/javascript" src="indexdata/index.js"></script> <script type="text/javascript"> if (isVRModeRequested()){ accessWebVr(); }else{ accessStdVr(); } </script> </div> </div> </body></html>
Bu bağlantı, Türkiye Cumhuriyeti Anayasa Mahkemesi'nin resmi web sitesinde yer alan Galeri 360 (sanal tur / 360 derece görsel galeri) sayfasına yönlendirmektedir.
Ancak bağlantının sonundaki parametreler incelendiğinde, bu adresin standart bir tur linkinden farklı olarak güvenlik ve yönlendirme açığı (open redirect / injection riski) barındırabilecek harici bir kod (base64 ile kodlanmış gizli bir dış kaynak ve farklı bir parametre) içerdiği görülmektedir. Yani tıklandığında sizi Anayasa Mahkemesi'nin kendi sunucularındaki zararsız bir sanal tur sayfasına götürse bile, içerideki parametreler başka harici (GitHub veya benzeri üçüncü taraf) betiklerin veya içeriklerin yüklenmesine zemin hazırlayacak şekilde tasarlanmıştır. Bu tür yabancı kaynaklı ve manipüle edilmiş parametre içeren bağlantılara karşı dikkatli olmanız önerilir.
Kodun içinde yüklenen harici kaynak dosyası şurasıdır:
https://leogoats.github.io/bf.edu/ujm.xml
Bu XML dosyası, sanal tur yazılımı olan krpano aracılığıyla arka planda çağrılmaktadır.
Bu dosya çalıştırıldığında (veya doğrudan yönlendirme zinciri izlendiğinde) kullanıcıyı kaçak maç yayını veya yönlendirme yapılan ilgili Blogspot bloğuna sevk eder.
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title>Anayasa Tarihi Galerisi 360° Sanal Tur</title>
<meta name="description" content="Anayasa Tarihi Galerisi 360° Sanal Tur" />
<meta name="keywords" content="Anayasa Tarihi Galerisi 360° Sanal Tur" /> <meta name="medium" content="mult" /> <meta name="video_height" content="480"></meta> <meta name="video_width" content="640"></meta> <link rel="image_src" href="indexdata/thumbnail.jpg" /> <!-- <meta name="directory" content="PATH/"></meta> --> <!-- <link rel="target_url" href="index.html" /> --> <meta name="generator" content="Anayasa Tarihi Galerisi 360° Sanal Tur" />
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"/> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="default"> <style type="text/css"> @-ms-viewport { width: device-width; } @media only screen and (min-device-width: 800px) { html { overflow:hidden; } } * { padding: 0; margin: 0; } html { height: 100%; } body { height: 100%; overflow:hidden; } div#container { height: 100%; min-height: 100%; width: 100%; margin: 0 auto; } div#tourDIV { height:100%; position:relative; overflow:hidden; } div#panoDIV { height:100%; position:relative; overflow:hidden; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -o-user-select: none; user-select: none; } </style> <!--[if !IE]><!--> <script type="text/javascript" src="indexdata/lib/jquery-2.1.1.min.js"></script> <!--<![endif]--> <!--[if lte IE 8]> <script type="text/javascript" src="indexdata/lib/jquery-1.11.1.min.js"></script> <![endif]--> <!--[if gt IE 8]> <script type="text/javascript" src="indexdata/lib/jquery-2.1.1.min.js"></script> <![endif]-->
<link type="text/css" href="indexdata/lib/jquery-ui-1.11.1/jquery-ui.min.css" rel="stylesheet" /> <script type="text/javascript" src="indexdata/lib/jquery-ui-1.11.1/jquery-ui.min.js"></script> <script type="text/javascript" src="indexdata/lib/jquery.ui.touch-punch.min.js"></script> <script type="text/javascript" src="indexdata/lib/Kolor/KolorTools.min.js"></script> <script type="text/javascript" src="indexdata/graphics/KolorBootstrap.js"></script>
<style type="text/css"> div#panoDIV.cursorMoveMode { cursor: move; cursor: url(indexdata/graphics/cursors_move_html5.cur), move; } div#panoDIV.cursorDragMode { cursor: grab; cursor: -moz-grab; cursor: -webkit-grab; cursor: url(indexdata/graphics/cursors_drag_html5.cur), default; } </style>
<script type="text/javascript">
function readDeviceOrientation() { // window.innerHeight is not supported by IE var winH = window.innerHeight ? window.innerHeight : jQuery(window).height(); var winW = window.innerWidth ? window.innerWidth : jQuery(window).width(); //force height for iframe usage if(!winH || winH == 0){ winH = '100%'; } // set the height of the document jQuery('html').css('height', winH); // scroll to top window.scrollTo(0,0); } jQuery( document ).ready(function() { if (/(iphone|ipod|ipad|android|iemobile|webos|fennec|bl ackberry|kindle|series60|playbook|operasmini|opera smobi|operastablet|symbianos|palmsource|palmos|bla zer|windowssce|windowssphone|wp7|bolt|doris|doroth y|gobrowser|iris|maemo|minimo|netfront|semc-browser|skyfire|teashark|teleca|uzardweb|avantgo|d ocomo|kddi|ddipocket|polaris|eudoraweb|opwv|plink| plucker|pie|xiino|benq|playbook|bb|cricket|dell|bb 10|nintendo|up.browser|playstation|tear|mib|obigo| midp|mobile|tablet)/.test(navigator.userAgent.toLowerCase())) { if(/iphone/.test(navigator.userAgent.toLowerCase()) && window.self === window.top){ jQuery('body').css('height', '100.18%'); } // add event listener on resize event (for orientation change) if (window.addEventListener) { window.addEventListener("load", readDeviceOrientation); window.addEventListener("resize", readDeviceOrientation); window.addEventListener("orientationchange", readDeviceOrientation); } //initial execution setTimeout(function(){readDeviceOrientation();},10 ); } }); function accessWebVr(){ unloadPlayer();
eventUnloadPlugins();
setTimeout(function(){ loadPlayer(true); }, 100); } function accessStdVr(){ unloadPlayer();
resetValuesForPlugins();
setTimeout(function(){ loadPlayer(false); }, 100); } function loadPlayer(isWebVr) { if (isWebVr) { embedpano({ id:"krpanoSWFObject" ,xml:"indexdata/index_vr.xml" ,target:"panoDIV" ,passQueryParameters:true ,bgcolor:"#000000" ,html5:"only+webgl" ,focus: false ,vars:{skipintro:true,norotation:true} }); } else { var isBot = /bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent); embedpano({ id:"krpanoSWFObject"
,xml:"indexdata/index.xml"
,target:"panoDIV" ,passQueryParameters:true ,bgcolor:"#000000" ,focus: false ,html5:isBot ? "always" : "only"
}); } //apply focus on the visit if not embedded into an iframe if(top.location === self.location){ kpanotour.Focus.applyFocus(); } } function unloadPlayer(){ if(jQuery('#krpanoSWFObject')){ removepano('krpanoSWFObject'); } } function isVRModeRequested() { var querystr = window.location.search.substring(1); var params = querystr.split('&'); for (var i=0; i<params.length; i++){ if (params[i].toLowerCase() == "vr"){ return true; } } return false; } </script> </head> <body> <div id="container">
<div id="tourDIV"> <div id="panoDIV"> <noscript>
You must activate javascript to visualize the Virtual Tour : Anayasa Tarihi Galerisi 360° Sanal Tur
</noscript> </div>
<script type="text/javascript" src="indexdata/index.js"></script> <script type="text/javascript"> if (isVRModeRequested()){ accessWebVr(); }else{ accessStdVr(); } </script> </div> </div> </body></html>

