最新ソーシャルハック手口!skypeとfacebookを使えば個人情報ダダ漏れ状態!

タイトルにある様に、驚くべき情報が入ってきました。最新のソーシャルハッキングの手口で、skypeとfacebookを使って個人情報ダダ漏れになっていると言うのです。

取得できる情報は、氏名・メールアドレスからetc・・・

調べたい相手がskypeにさえ登録してあれば、メールアドレスが解かってしまい、更に相手がfacebookにも登録してあれば、本名を始めとして様々な個人情報を把握する事が出来るのです!

今回は啓発の意味も含めてその対策方法まで公開致します。

尚、この手順テストを行なう方は、facebook及びskypeの登録が必要になります。

手順

まず、この手順を開始する前に一つ注意点を述べます。

この手順を開始すれば、SkypeIDがFacebookで表示されるようになるので、それが嫌な方は非公開設定にしてください。非公開設定の仕方は、

  1. 基本データを編集
  2. 連絡先情報
  3. 編集
  4. IMスクリーンネーム
  5. 人のマーク▼
  6. 鍵「自分のみ」に設定

それでは、手順説明に入ります。

手順は、FaceBookにログインした状態で、

  1. SkypeのIDとパスワードを入力して検索ボタンを押す
  2. 【スキップ】を押す
  3. 警告が出るが【スキップ】を押す
  4. 【いいえ】を押す
  5. 【スキップ】を押す

※この手順通りに行なわないと、「友だちを検索」をした時に入力したSkypeアカウント名で、連絡先に入れている人に対して『招待』が行く事になります。ご注意下さい。

それでは、まず

https://www.facebook.com/find-friends/

にアクセス!!!

fb_1

自分のSkypeネームとパスワードを入力して、「友達検索」をクリック。

すでに、Skypeに登録されている友人がFaceBookを利用している場合は、以下のように表示されます。

fb_2
「スキップ」をクリックします。

警告がでますが、「スキップ」をクリックします。

fb_3 - コピー

最後に、リクエストを送るか聞いてきますので、「いいえ」をクリックします。

fb_4

Skypeのリストが取り込まれ、一覧が表示されます。

fb_5

「スキップ」をクリックします。

最初の画面に戻りますので、「インポートした連絡先を管理」のリンクをクリックします。

fb_6

取り込んだリストが表示されますので、メールアドレスを表示したい個所のリンクをクリックします。

fb_7

メールアドレスをクリックすると、セキュリティーチェック画面が表示されます。
画面上に表示されている文字を入力して、「送信」をクリックします。

fb_8

画面が閉じて、最初の画面上にメールアドレスが表示されます。

fb_9

如何でしょうか?上手く表示されましたか?

この手順を行うことにより、私に対して本名とメールアドレスを明かしていなかったAさんは、メールアドレスに本名を使用していたこともあり、本名とメールアドレスを私に知られてしまいました。問題は下記にあるのではないでしょうか。

■Facebookの友達検索でSkype側からFacebookに提供されるデータに、Skypeに登録されているメールアドレスが含まれる。

■それを受け取ったFacebookは、Facebookユーザーに対し、各連絡先のメールアドレスを(CAPTCHA認証をかましてるとは言え)開示してしまっている。

■メールアドレスを漏洩させられる被害者側は、自身がFacebookを使用しているか否かにかかわらず、Skypeに登録した「プライベートな」メールアドレスを、何の断りもなくコンタクトしているというだけの他人に知られてしまう。

何故か?

Facebookがやっている作業は、おそらくSkypeの連絡先に居るアカウントのメールアドレスが、Facebookに登録していたらこの人は友達かもしれないよって表示する仕組みなんですが、この作業をFacebook側は連絡先のインポートと呼んでいて連絡先を、Facebookのアカウント情報と照合していると思います。Facebooには「インポートした連絡先を管理」という機能があってFacebookに登録していないか調べた、「メールアドレス」が一覧表示されます。つまり、Facebookに登録してもいなくてもSkypeの連絡先のアカウントのメールアドレスがまず照合されるので、それがFacebook側の「ミス」だと言う事になります。

これから更に検証が必要ではありますが、対策としては、

SkypeとFacebookのアドレスを別にすること!

これにて対応するしかなさそうです。特にネットとリアルを分けてる人にとっては面倒な問題だと思いますので、一日も早い対策が必要では無いかと考える次第にございます。

JavaScriptとは何なのか?

JavaScriptとは何なのか?基本的な特徴

JavaScriptは非常にシンプルな言語であり、インタプリンタ言語として設計されている。プログラミング言語JavaはJavaScriptとは別物である。特徴としては次の様になものがあげられる。

  • ポインタ演算を除き、何となくCから影響を受けている構文
  • シンプルなクラスレスのオブジェクトモデル(Self言語の影響)
  • 自動的なガベージコレクション
  • 動的で弱い型付け

通常のウェブブラウザの実装におけるXMLHttpRequestやインラインフレームを使った通信では、セキュリティ上の制限から他のドメインのリソースにアクセスすることができない。
JavaScript自体には組み込みのI/O機構はない。ブラウザ内では、あらかじめ定義されている一連のメソッドやプロパティを介して、そのホスト環境とやり取りする程度の事は可能であるが、他の多くのプログラミング言語とは異なり、これらのインターフェイスは限定的で特化した機能しか持ち合わせていなのである。簡単なJavaScriptのプログラムは以下参照。

[javascript]

var text = "何処かでお会いしましたか?";
function display_string(str) {
alert(str);
return 0;
}

//"何処かでお会いしましたか?" を表示
display_str(text);

[/javascript]

さて、基本的な事に関しては他のサイトに譲るとして以降はセキュリティ関連の特性を説明しよう。

スプリクト処理モデル

ブラウザに表示される全てのHTMLドキュメントには、独りしたJavaScript実行環境のインスタンスが付与される。この実行環境には、読み込んだスクリプトで作成されるグローバル変数や関数が保存される単一の名前空間が備わっている。特定のドキュメントのコンテキストで実行される全てのスクリプトが、この共通サンドボックスを共有している事になり、またスクリプトはブラウザが提供するAPIを使用して他のコンテキストとのインタラクションを行なう事も可能なのである。このようなドキュメント間でのインタラクションは明示的に行なう必要があり、インタラクションを明示的に行なう事によりドキュメント間で無意識に相互に干渉してしまう可能性を低くする事が出来るのである。

特定の実行コンテキスト内ではそのコンテキストに含まれる全てのJavaScriptブロックは個別に実行される事となります。各ブロックは以下の3つでである。

  1. パース
  2. 関数の解決
  3. コードの実行

各コードブロックは任意の自己完結型で適切な構文を持った構文単位をその構文要素とする必要がある。以下個別に見て行く事にしよう。

1.パース

パースステージでは、スクリプトブロックの構文が検証されると共に、通常はスクリプトブロックから中間的なバイナリ表現への返還も行なわれる。コードがグローバルに影響を及ぼす事は皆無だが構文エラーが発生した場合には、問題を起こしたブロック全体がバッサリと棄て去られ、パーサーはコード内で次に処理可能なチャンクへと処理を進める事となる。

では、JavaScriptがパーサーがどんなもんか見て行くことにしよう。

[html]

<script> //ブロック1
var my_variable1 = 1;
var my_variable2 =
</script>

<script>
2; //ブロック2
</script>

[/html]

C言語をマイン言語として習得した人にとっては、上のコードシーケンスと下のコードシーケンスが等価だと感じるだろう。

[html]

<script>
var my_variable1 = 1;
var my_variable2 = 2;
</script>

[/html]

しかし、全く異なるものであり別次元のものなのである。等価とならないのは、パースの前にあらかじめ<script>ブロックが連結されていないからである。その為最初のスクリプトブロックは単に構文エラーを発生し、結果ブロック全体はその存在を一切無視される事となり実行ステージへとたどり着けなくなってしまうのである。グローバルな副作用が発生する前にブロック全体が切り捨てられると言う事は以下のコードとも等価でないと言う事である。

[html]

<script>
var my_variable1 = 1;
</script>

<script>
2;
</script>

[/html]

これがBashなど他の多くのスクリプト言語との大きな大きな違いでるのだ。では、最初に記述したサンプルコードのパースで何が起こるのかというと、最初のブロックは無視されるのだが、2つ目のブロック(<script>2;</script>)は適切にパースされるのだ。ただし、実行時にno-opとみなされ、コードステージメントとして数値だけが記述される形となることは申し添えておく。

2.関数の解決

パースステージが完了すると次のステップではパーサーが現在処理を行なっているブロック内で発見した、名前を持つグローバル関数全ての登録を行なうこととなり、登録が行なわれると、パーサーが発見した各関数はその後のコード実行で利用できるようになるのである。実行前にこのステップが入る事により、以下の構文が正しく実行出来るようになる。

[html]

<script>
hello_japanese_p();

function hello_japanese_p() {
alert(‘何処かでお会いしましたか?’);
}
</script>

[/html]

逆にこれをいじってしまった以下のコードは思った通りに作動できない。

[html]

<script>
hello_japanese_p();
</script>

function hello_japanese_p() {
alert(‘何処かでお会いしましたか?’);
}
</script>

[/html]

実行エラーとなるのだが、何故かと言うと、個々のコードブロックは同時に処理されずに、JavaScriptエンジンでの処理が可能になった順列に従って処理するからに他ならない。一つ目のブロックを実行する準備が整った段階においては、hello_japanese_p()を定義しているブロックのパースはまだ行なわれていないのである。

ここで見たグローバル名解決は関数だけに適用され、変数宣言には適用されない為に、難解になってしまう要因であろう。変数は、実行時に連続して登録され、この点に関しては他のインタプリンタ型のスクリプト言語と似ているといえるであろう。この為、以下のサンプルコードは思ったように動いてはくれない。(グローバルなhello_japanese_p()を、グローバル変数に代入されている無名関数に置き換えてみた)

[html]

<script>
hello_japanese_p();

var hello_japanese_p = function() {
alert(‘何処かでお会いしましたか?’);
}
</script>

[/html]

この場合、hello_japanese_p()を呼びだそうとしているタイミングでは、まだhello_japanese_p()変数への代入が行なわれていない

3.コードの実行

関数の解決が終了したら、JavaScriptエンジンは通常、関数ブロックに含まれていないステートメント全てを順次実行していくことになるが、この段階では、未処理の例外によって、あるいはよくわからない原因でスクリプトの実行が失敗する事がある。ただし、エラーが発生してもエラーを起こしたコードブロック内にある解決済みの関数は依然として呼び出し可能な状態におかれており、また、それまでに実行されたコードによりもさらされた状態変化も現在のスクリプト実行コンテキストの中でその状態を保つこととなる。

以下に示すサンプルコードは非常に興味深い点があり、JavaScriptにおける例外処理と実行特性が見える濃縮度の高いサンプルコードと言えるだろう。

[html]

<script>

↓この関数は何処からも呼び出されないので実行されない。

function not_called() {
return 72;
}

↓この関数は呼び出された時のみ実行される。ダイアルログ
の表示は行なうが、do_stuff()という名前の関数への参照が
解決されていないので例外を吐き出す。

function hello_japanese_p() {
alert(‘何処かでお会いしましたか?’);
do_stuff();
}

↓このステートメントからプログラムが実行される。

alert(‘はじめまして。名刺交換宜しいですか?’);

↓それから「何処かでお会い~」メッセージが表示される。

hello_japanese_p();

↓未処理の例外がhello_japanese_p()で吐き出された為
ここまでは届かない。

alert("一枚でよかったでしょうか?");
</script>

↓これは独立したブロックなので上で例外が発生しても、この
実行が妨げられる事無く実行される。

<script>
alert("私になんでも聞いて下さいね。");
</script>

[/html]

この例からも分かる通り、予期せぬ例外が発生した際にきちんと処理を行なわないと、どの様な結果が待ち受けているか想像もできない。例外によって、アプリケーションの状態が不安定になるかもしれないし、その状態でも何とかこうとか実行出来るかもしれない。例外とは、予想外のエラーが発生した際にそれが伝達していく事を避ける為の手段であり、それゆえにgotoステージメントの禁止などの関連から、JavaScriptはより原理主義的な姿勢を貫き通すのであった。

それでは、次回のJavaScriptシリーズでは実行順序の制御より更に理解を深めていきましょう。

Twitter image Downloader

特定ユーザーのTwitterのすべての写真をダウンロード

Twitter image Downloadertwitterdownloader

Twitter image Downloaderダウンロードはこちら

ソースコードはこちらです。

Form1.cs

[html]
<div id="sourceContentPlaceHolder">
<div id="sourceBrowserContainer">
<div id="splitView">
<div id="rightPane">
<div id="FileContentView">
<div id="FileView">
<div id="FileViewContainer">
<div>
<div id="fileContent">
<div>
<pre>using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Xml;
using System.Security.Cryptography;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;

namespace TwitterImageDownloader
{
public partial class Form1 : Form
{
delegate void AddImageHandler(Image image);//The delegate

public Form1()
{
InitializeComponent();
listView1.View = View.LargeIcon;
imageList1.ImageSize = new Size(150, 150);
listView1.LargeImageList = this.imageList1;
}

private void button1_Click(object sender, EventArgs e)
{
Thread t = new Thread(new ThreadStart(getImages));
t.Start();
}

private void getImages()
{
String userTimelineUrl = @"http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + tbScreenName.Text + @"&count=200&trim_user=1&exclude_replies=1&include_rts=0";
//String tweetUrl = @"http://api.twitter.com/1/statuses/show.xml?trim_user=1&include_entities=1&id=";

////First lets get the users tweets
WebClient webClient = new WebClient();
String userTimeLine = webClient.DownloadString(userTimelineUrl);
XmlDocument doc = new XmlDocument();
doc.LoadXml(userTimeLine);
XmlNodeList tweetList = doc.SelectNodes("//status");
foreach (XmlNode tweet in tweetList)
{
String tweetID = tweet.SelectSingleNode("id").InnerText;
String TweetText = tweet.SelectSingleNode("text").InnerText;

Match m = Regex.Match(TweetText, @"(?<twitterURL>t.co)/(?<subdir>[^\s]*)");
if (m.Success)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(new Uri(@"http://t.co/" + m.Groups["subdir"].Value));
request.Method = "HEAD";
request.AllowAutoRedirect = false;

string location;
using (var response = request.GetResponse() as HttpWebResponse)
{
location = response.GetResponseHeader("Location");
}
string imageURL = String.Empty;

request = (HttpWebRequest)WebRequest.Create(location);

using (var response = request.GetResponse() as HttpWebResponse)
{
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
List<ImgTag> images = GetImageTags(sr.ReadToEnd());
sr.Close();
foreach (ImgTag image in images)
{

if (location.StartsWith("http:/") && location.IndexOf("/photo/") > -1)
{
//For twitter.com look for media-slideshow-image
if (image.classAtt == "large media-slideshow-image")
{
imageURL = image.src;
}
}
if (location.StartsWith("http://instagr.am"))
{
//For instagram look for for the image tag
if (image.classAtt == "photo")
{
imageURL = image.src;
}

}
}
}
}
if (imageURL != String.Empty)
{
//found an Image
Image img = LoadImage(imageURL, tweetID);
listView1.Invoke(new AddImageHandler(ImageThread),new object[]{img});
}
}
catch (Exception ex)
{
//skip tweet
Console.WriteLine(ex.Message);
}
}

}
MessageBox.Show("Done.");
}

private void ImageThread(Image img)
{
imageList1.Images.Add(img);
ListViewItem item = new ListViewItem();
item.ImageIndex = listView1.Items.Count + 1;
listView1.Items.Add(item);
listView1.Refresh();
}

private List<ImgTag> GetImageTags(String html)
{
List<ImgTag> imgTags = new List<ImgTag>();
MatchCollection m1 = Regex.Matches(html, @"(<img.*?>.*?>)", RegexOptions.Singleline);
foreach (Match m in m1)
{
string value = m.Groups[1].Value;
ImgTag imgTag = new ImgTag();
Match m2 = Regex.Match(value, @"src=\""(.*?)\""", RegexOptions.Singleline);
if (m2.Success)
{
imgTag.src = m2.Groups[1].Value;
}
m2 = Regex.Match(value, @"class=\""(.*?)\""", RegexOptions.Singleline);
if (m2.Success)
{
imgTag.classAtt = m2.Groups[1].Value;
}
imgTags.Add(imgTag);
}
return imgTags;
}

private class ImgTag {
public String src = String.Empty;
public String classAtt = String.Empty;
}

private Image LoadImage(string url,string tweetID)
{
System.IO.Directory.CreateDirectory(System.IO.Path.Combine(Environment.CurrentDirectory.ToString(), tbScreenName.Text));
String fileLocation = System.IO.Path.Combine(Environment.CurrentDirectory.ToString(), tbScreenName.Text, tweetID + ".jpg");
using (var wc = new System.Net.WebClient())
{
wc.DownloadFile(url, fileLocation);
}
Bitmap bmp = new Bitmap(fileLocation);

return bmp;
}
}
}</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div></div>
</div>
</div>
<div></div>
</div>
</div>
<div></div>
<div id="footer"></div>
[/html]

Form1.Designer.cs

[html]namespace TwitterImageDownloader { partial class Form1 { /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support – do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.tbScreenName = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.listView1 = new System.Windows.Forms.ListView(); this.imageList1 = new System.Windows.Forms.ImageList(this.components); this.SuspendLayout(); // // tbScreenName // this.tbScreenName.Location = new System.Drawing.Point(97, 12); this.tbScreenName.Name = "tbScreenName"; this.tbScreenName.Size = new System.Drawing.Size(216, 20); this.tbScreenName.TabIndex = 0; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(13, 13); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(72, 13); this.label1.TabIndex = 1; this.label1.Text = "Screen Name"; // // button1 // this.button1.Location = new System.Drawing.Point(367, 10); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 2; this.button1.Text = "Download"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // listView1 // this.listView1.Location = new System.Drawing.Point(12, 39); this.listView1.Name = "listView1"; this.listView1.Size = new System.Drawing.Size(638, 555); this.listView1.TabIndex = 8; this.listView1.UseCompatibleStateImageBehavior = false; // // imageList1 // this.imageList1.ColorDepth = System.Windows.Forms.ColorDepth.Depth8Bit; this.imageList1.ImageSize = new System.Drawing.Size(16, 16); this.imageList1.TransparentColor = System.Drawing.Color.Transparent; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(670, 604); this.Controls.Add(this.listView1); this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Controls.Add(this.tbScreenName); this.Name = "Form1"; this.Text = "TwitterDownloader – CodeBetweenTheLines.com"; this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.TextBox tbScreenName; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button button1; private System.Windows.Forms.ListView listView1; private System.Windows.Forms.ImageList imageList1; } }[/html]

Form1.resx

[html]
<div id="sourceContentPlaceHolder">
<div id="sourceBrowserContainer">
<div id="splitView">
<div id="rightPane">
<div id="FileContentView">
<div id="FileView">
<div id="FileViewContainer">
<div>
<div id="fileContent">
<div>
<pre><?xml version="1.0" encoding="utf-8"?>
<root>
<!–
Microsoft ResX Schema

Version 2.0

The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.

Example:

… ado.net/XML headers & schema …
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, …</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, …</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>

There are any number of "resheader" rows that contain simple
name/value pairs.

Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don’t support this are serialized and stored with the
mimetype set.

The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:

Note – application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.

mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.

mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
–>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root></pre>
</div>
&nbsp;
<pre></pre>
&nbsp;

</div>
</div>
</div>
</div>
</div>
<div></div>
</div>
</div>
<div></div>
</div>
</div>
<div></div>
<div id="footer"></div>
[/html]

Program.cs

[html]using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace TwitterImageDownloader { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }[/html]

TwitterImageDownloader.csproj

[html]<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" ‘$(Configuration)’ == ” ">Debug</Configuration> <Platform Condition=" ‘$(Platform)’ == ” ">x86</Platform> <ProductVersion>8.0.30703</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{41AD11AE-D2B5-48DC-BE79-13062E82C6C5}</ProjectGuid> <OutputType>WinExe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>TwitterImageDownloader</RootNamespace> <AssemblyName>TwitterImageDownloader</AssemblyName> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <TargetFrameworkProfile>Client</TargetFrameworkProfile> <FileAlignment>512</FileAlignment> <SccProjectName>SAK</SccProjectName> <SccLocalPath>SAK</SccLocalPath> <SccAuxPath>SAK</SccAuxPath> <SccProvider>SAK</SccProvider> </PropertyGroup> <PropertyGroup Condition=" ‘$(Configuration)|$(Platform)’ == ‘Debug|x86’ "> <PlatformTarget>x86</PlatformTarget> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>bin\Debug\</OutputPath> <DefineConstants>DEBUG;TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" ‘$(Configuration)|$(Platform)’ == ‘Release|x86’ "> <PlatformTarget>x86</PlatformTarget> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release\</OutputPath> <DefineConstants>TRACE</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="System.Core" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="Microsoft.CSharp" /> <Reference Include="System.Data" /> <Reference Include="System.Deployment" /> <Reference Include="System.Drawing" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> <ItemGroup> <Compile Include="Form1.cs"> <SubType>Form</SubType> </Compile> <Compile Include="Form1.Designer.cs"> <DependentUpon>Form1.cs</DependentUpon> </Compile> <Compile Include="Program.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <EmbeddedResource Include="Form1.resx"> <DependentUpon>Form1.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="Properties\Resources.resx"> <Generator>ResXFileCodeGenerator</Generator> <LastGenOutput>Resources.Designer.cs</LastGenOutput> <SubType>Designer</SubType> </EmbeddedResource> <Compile Include="Properties\Resources.Designer.cs"> <AutoGen>True</AutoGen> <DependentUpon>Resources.resx</DependentUpon> </Compile> <None Include="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> </None> <Compile Include="Properties\Settings.Designer.cs"> <AutoGen>True</AutoGen> <DependentUpon>Settings.settings</DependentUpon> <DesignTimeSharedInput>True</DesignTimeSharedInput> </Compile> </ItemGroup> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <!– To modify your build process, add your task inside one of the targets below and uncomment it. Other similar extension points exist, see Microsoft.Common.targets. <Target Name="BeforeBuild"> </Target> <Target Name="AfterBuild"> </Target> –> </Project>[/html]

TwitterImageDownloader.csproj.vspscc

[html]""
{
"FILE_VERSION" = "9237"
"ENLISTMENT_CHOICE" = "NEVER"
"PROJECT_FILE_RELATIVE_PATH" = ""
"NUMBER_OF_EXCLUDED_FILES" = "0"
"ORIGINAL_PROJECT_FILE_PATH" = ""
"NUMBER_OF_NESTED_PROJECTS" = "0"
"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
}[/html]

WHZ養成学院公式PVついに完成!

学院公式PVがついに完成しました!

学院歌を制作してくれたのは・・・

Candy Box です!!!

《 Whitehackerz養成学院 校歌歌詞 》作詞:Whitehackerz養成学院
作曲:手島 晴輝
アーティスト:Candy Box feat bucci

ブラックなhackerが何処かで成果?
ファッカなhackerが何処かで進化?
ワンクリックじゃ済まない・・シートダウン・・
『白Zシャットダウン』
胸に秘めた腕に秘めた想い
時代のGAP 先端のhacker
コマンドでkill 何でもできる
不確かな光景に革命と解決
SOSに。。。

当てにならないこんな時代に
突然現れる正義のハッカー
呼べばすぐ来るホワイトハッカー
ハッカーハッカーハッカーホワイトハッカー
日本の誇り学園
昨日見た夢コマンドプロンプト
希望の夢はインジェクショイン
あいつを見返す為に怒りをキーにぶちまける
XSSとか SQLの脅威から守るため
ホワイト ハッカー!!!

—————————————————————-
《 アーティスト紹介 》

【アーティスト:Candy Box】
vocal:MIKI、Guiter/Keybord:HARUKIの男女ユニット。
POPSもROCKも関係なく、皆が楽しめる音楽を届けたいと2005年結成。
業界関係者から数々の高評価を受けながら、福岡の博多・天神にて路上ライブを重ねる
着実にライブを重ね、活動の幅を広げている。
自主制作CDは4000枚以上の売り上げ。

2007年~2008年 二年連続「九州沖縄音楽祭」福岡大会にて「More Music by docomo賞」受賞
2008年 「春の光」リョーユーパンCMソング「晴れるヤ」スペースワールドHPソング
2010年 「はなうた」九州安達学園CMソング
2011年 福岡BEAT STATIONにて初のワンマンライブ開催! 「Believe」Earth With Life(サーフィン世界大会)テーマソング
2012年 初の全国発売アルバム“アイのうた”九州総合アルバムチャート週間第一位!

【ホームページ:Candy Box Official web site】
http://cb-info.net/

【YouTube:Candy Box  PV】
「たまゆら青春DAYS」

「最大級の愛の唄」

「Earth With Life」

—————————————————————-

【アーティスト: bucci(BRO’S)】
Hiphopグループ「BRO’S」でラッパーとして活動。

【ホームページ:BRO’S Official web site】
http://www.olmecabucci.com/

【YouTube:BRO’S  PV】
「未来世紀 JIPANG 2000」
http://youtu.be/GYjV8IJQKhc

更に!!!

もしかすると・・・

もしかすると・・・

もしかすると・・・

着うたフルのリリースも・・・・

ご期待くださいませ!!

0.1を10回足してみた結果PHPが神と言う事が判明しました

0.1を10回足してみた。

PHPの場合

PHPでの結果、

//——————————————————————————–

JavaScriptの場合

JavaScriptでの結果、 0.9999999999999999
//——————————————————————————–

Python(Ver2.7)の場合

Pythonでの結果、0.9999999999999999

//——————————————————————————–

Rubyの場合

Rubyでの結果、1.0

//——————————————————————————–
Haskellの場合

Haskellでの結果0.9999999999999999

//——————————————————————————–

結論、PHPは神、その次、Ruby

遠隔操作ウィルス事件時系列まとめ(2012/6/29~2012/10/20)

遠隔操作ウィルス事件が連日報道されておりますが、時系列やいくつもの予告や誤認逮捕者がいてぐちゃぐちゃになっている方も多いと思われますので時系列にまとめます。
正確性には万全を喫したつもりではありますが、間違いなどあればご指摘頂けると幸いです。

遠隔操作ウィルス事件時系列まとめ(2012/6/29~2012/10/20)

2012年6月29日
CSRFを踏ませるURLを2ちゃんねるへ書き込み。
横浜市へ小学校襲撃を予告する書込みが行われる。

2012年7月1日
神奈川県警が威力業務妨害容疑で杉並区男性を逮捕。

2012年7月8日
杉並区男性が横浜家庭裁判所に送検。

2012年7月27日
ウイルスの配布先URLを2ちゃんねるへ書き込み。

2012年7月27日
大阪市男性がウィルスをダウンロード。

2012年7月29日
大阪市HPに大量殺人予告の書込みが行われる。
首相官邸HPに大量殺人予告の書込みが行われる。

2012年8月1日
JALへ航空機爆破予告メールが送られる。
吹田市男性からPCの任意提出。

2012年8月2日
IP捜査から吹田市男性が浮上。大阪府警、警視庁が連携捜査を開始。
吹田市男性へ任意での事情聴取を開始。

2012年8月9日
2ちゃんねるへコミックマーケットや天皇陛下を殺害する予告が書き込まれる。

2012年8月15日
杉並区男性が静岡家裁浜松支部より保護観察処分を受ける。

2012年8月26日
大阪府警が威力業務妨害容疑で吹田市男性を逮捕。

2012年8月27日
お茶の水女子大付属幼稚園の襲撃を予告するメールが送られる。
学習院初等科の襲撃を予告するメールが送られる。
部落解放同盟中央本部の襲撃を予告するメールが送られる。
大阪府警が威力業務妨害容疑で吹田市男性を逮捕。

2012年8月28日
ウイルスの配布先URLを2ちゃんねるへ書き込み。

2012年9月1日
警視庁が威力業務妨害容疑で福岡市男性を逮捕。

2012年9月10日
2ちゃんねるへ任天堂、伊勢神宮の破壊予告が書き込まれる。

2012年9月14日
大阪地検が偽計業務妨害罪で吹田市男性を起訴。
三重県警が伊勢神宮への犯行予告をした疑いで威力業務妨害容疑で津市男性を逮捕。

2012年9月18日
津市男性のPCがウイルスに感染し、遠隔操作で書込みが出来るようになっていたことが判明。

2012年9月21日
大阪地検が勾留取消を申請し、吹田市男性を釈放。
津地検が処分保留として津市男性を釈放。
東京地検が処分保留として福岡市男性を釈放。
警視庁が脅迫容疑で福岡市男性を再逮捕。

2012年9月27日
福岡市男性のPCがウイルスに感染していたことが判明。
東京地検が処分保留として福岡市男性を釈放。

2012年10月上旬
警察庁や国家公安委員会へ安倍総裁の殺害予告メールが送られる。

2012年10月7日
警察庁が各都道府県警へサイバー犯罪捜査でなりすましの可能性に十分注意するよう指示。

2012年10月10日
警視庁から検体の提供を受けトレンドマイクロが解析結果と注意喚起。
真犯人とされる人物からTBSラジオDig宛にメールが送られる。

2012年10月11日
最高検察庁が全国の検察庁にIPアドレスから容疑者を特定した事件が現在あるかの確認と、
同種事件の際はウィルス感染や遠隔操作の可能性について注意喚起。

2012年10月12日
警察庁が国民向けに遠隔操作ウィルスに関する注意喚起。

2012年10月16日
警察庁、警視庁、大阪府警、三重県警の緊急捜査会議が開かれる。

2012年10月17日
杉並区男性に再聴取。

2012年10月18日
「真犯人でない方を逮捕した可能性が高く、逮捕した方には謝罪を検討している」
と警察庁長官が記者会見。

2012年10月19日
警視庁、大阪府警、三重県警、神奈川県警の合同捜査本部を設置。
大阪地検が吹田市男性の起訴を取消。
三重県警が福岡市男性へ謝罪訪問。

以上2012年10/20午前01:00時点まで。以下、情報が出次第更新予定

TOR ~The Onion Router~の使い方

 

Tor(トーア、The Onion Router)は、TCP/IPにおける接続経路の匿名化を実現するための規格、及びそのリファレンス実装であるソフトウェアの名称であり、P2P技術を利用したSOCKSプロキシとして動作する。Torは高い匿名性を維持しながらインターネットをする目的で、
当初はオニオンルーティングの開発元でもある、米海軍調査研究所(United States Naval Research Laboratory)によって支援されていたが、2004年以降は電子フロンティア財団(Electronic Frontier Foundation)により支援されるプロジェクトとなった。2005年11月以降はEFFによる金銭の支援は終了した。なお、ウェブホスティングは継続されている。

「匿名インターネット」と言うとどうしても「犯罪目的」などとイメージされがちだが、本来は発展途上国などで政府による検閲を避けてインターネットをするためであったり、その高い匿名性からクラッカーの侵入を防いだりするためのものだ。

Torは3つのTorノード(接続を中継するサーバ)をランダムに選択し、それぞれのノード間を暗号化しながら経由してWebサイトにアクセスするので、アクセスログをたどろうとしても何重にも暗号化が施されているため逆探知ができない。さらに、1分おきに経路を変更するので同一人物によるアクセスであると思われるのを防ぐことができる。

使い方

http://www.torproject.org/

http://www.torproject.org/easy-download.html.en

Stable Vidalia Bundle works with Windows 7, Vista, XP, Download Stable (sig)

Torは以下の部分から構成されている。

Tor…p2pの通信部分本体。
Vidalia…TorをコントロールするGUIツール。普通はこれでtorをコントロールする。
Polipo…Torを使うためのproxy。以前はprevoxyがバンドルされていたが、最近はpolipoがバンドルされている。
Torbutton…firefoxのproxyを切り替えるためのaddon。他のブラウザを使う場合は無視してOK。firefoxを使う場合でも手動で切り替えるなり、他のproxy切り替えツールを使うなら不要。

Vidalia Bundle版をインストールすれば上記がすべて自動的に入る。

WindowsのスタートメニューにVidalia Bundle – Vidaliaが登録されるのでこれを起動。待ってると自動的に接続が完了する。「Connected to the Tor network!」と表示されればOK。基本的にここまで設定らしい設定はない。

自分が使っているWebブラウザのProxy設定の項目を開き、

アドレス 127.0.0.1
ポート 8118

を設定する。

Proxyを設定した状態でアクセスすれば、すべてTor経由でアクセスされる。目に見えて速度が遅いので直ぐ分かるはず。試しにここにアクセスしてみて、

https://check.torproject.org/

「Congratulations.」と出ればOK。Tor経由でない場合は「Sorry」になる。

使い終わったらVidaliaのコントロールパネルの「Exit」をクリック。これでTorが停止する。パネルをクローズボタンで閉じただけではトレイにアイコン化されるだけで、Tor自体は動き続けるので注意。またデフォルトではWindows起動時にTorが自動起動するので、嫌な人はSettings – General – Start Vidalia when my system startsのチェックボックスをoffに。

最後にブラウザのProxy設定をもとに戻す(Proxyを使わない設定に戻す)。TorをProxyに指定したままTorを止めると、当然のことながらブラウザでWebにアクセスできなくなるので注意。

http://mechag.asks.jp/400857.htmlをかなり参考にさせて頂いた事は付け加えておく。

新DOS攻撃ツールの検証~超危険!悪用厳禁~

我々は読者の方々にDOS攻撃の恐ろしさを伝える為@AnonOpsJapanからもらったツールを使用し後世に残る実験を行った。
これはその一部始終を記録した絶対にやってはいけないDOS攻撃啓発記事である。

https://twitter.com/AnonOpsJapan/status/257778524558073856

https://twitter.com/AnonOpsJapan/status/257784909479940096

ここからダウンロード後検証開始

開くとこの画面

そして次に注意書き

そして攻撃画面登場

攻撃したいURLを入力し今回はHTTPを選択で攻撃開始してみたのだが・・・

ああああああぁぁぁぁあぁぁぁあぁぁぁぁぁぁぁぁっぁっぁぁぁぁぁぁぁぁぁあぁっぁぁぁぁっぁぁあぁぁぁ

サイトが停止しました。

サーバがあぁぁぁぁあぁぁぁぁぁぁぁぁぁぁlっぁぁぁぁあっぁぁぁぁぁぁぁぁぁぁぁぁぁっぁっぁぁぁぁぁぁぁ

Logはこんな感じ

124.154.121.254 – – [15/Oct/2012:19:11:08 +0900]
“dekitayo——nwaraidekitayo-—–nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——n”
414 334
124.154.121.254 – – [15/Oct/2012:19:11:08 +0900]
“dekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——nwaraidekitayo——n”
414 334

https://twitter.com/AnonOpsJapan/status/257792339903406080

心配した方が・・・

しかし、なんとサーバの朱雀降臨により難なくクリア(正常モード)!!
さすが学院の鏡!!!

結論:DOSは危ないけんがやめときない!!!

上記検証は、当校が用意したテストサーバー(やられサーバー)を使って行いました。

当人が所有・管理・運営していないサーバーに対して同攻撃を行うことは、犯罪行為で、場合によっては刑法第234条-2、電子計算機損壊等威力業務妨害罪 に問われる可能性がありますので、絶対に他社サーバーに対して行ってはいけません。

WEBセキュリティ対策

今号は、WEBセキュリティ対策として、開発者が意識すべき攻撃手法を簡単にを紹介します。
まず、最近の動向として、かつてはOSやサーバーソフトウエアの脆弱性をついた攻撃が多かったのですが、近年ではWEBプログラム・アプリに対する攻撃も増加しています。

そこで、まず大きく2つに分けます。

①サーバサイドプログラムに対する攻撃手法
②クライアントサイドで実行される攻撃手法 

まず①ですが、ここでは5つご紹介いたします。

1.SQLインジェクション
WEBページからの入力値やパラメータ値を利用したSQL文でデータベース問い合わせをす  るシステムに対して行なわれる攻撃。
攻撃者は任意のSQL文を実行できるため、データベースの情報に対してあらゆる問題が引  き起こされる可能性がある。

2.ディレクトリトラバーサル
WEBページからの入力値やパラメータ値を用いてファイルを読み書きするシステムに対し   て行なわれる攻撃である。
「../」など相対パス記法を用いて、開発者の意図しないディレクトリのファイルにアクセス    することで、機密情報が読みだされるなどの問題を引き起こす。

3.OSコマンドインジェクション
外部のコマンド呼び出しプログラムの不備を利用し、WEBサイト管理者が意図して無いOS  コマンドを実行する攻撃。
サーバ内の情報漏洩やデータ破壊、改ざんに利用される可能性がある。また、この脆弱性  を利用して、サーバ管理者権限の乗っ取りや他のサーバへの攻撃の踏み台にされる事も   ある。

4.パラメータ改ざん
WEBサイトに送信するパラメータを、WEBサイト管理者が意図しない物に書き換える事に  よる攻撃。
データの改ざんや、情報老兵に利用される可能性がある。

5.ファイルアップロード
ファイルアップロードも外部から受け取るパラメータのひとつである。アップロードしたファイ   ルをWEBブラウザ上で表示するWEBサイトの場合、アップロードするファイルに悪意のある  コードを含める事で、XSSはじめ、JavaScriptを利用した攻撃が可能となる。

 

②については3つ

1.XSS
入力内容をそのまま表示する場合に、表示するコンテンツに埋め込まれる攻撃である。
攻撃者は任意のJavaScriptコードを実行する事でフォームの入力内容や、Cookieの情報を  攻撃者に送るように書き換えることが出来る。

2.CSRF
CSRFは、特定の情報を特定のページにユーザの意図とは無関係に送信させる攻撃であ   る。
ログイン中のシステムに対して行われると、ログイン情報の改ざんなど設定を書き換えられ  ることができる。

3.HTTPヘッダインジェクション
サーバからWEBブラウザに送信するHTTPレスポンスのヘッダを出力するプログラムの不   備を利用し、WEBサイト管理者が意図して無いHTTPヘッダをユーザのWEBブラウザに読  み込ませる攻撃。
ユーザを偽サイトに誘導したり、CookieをWEBブラウザにセットされる可能性がある。

 

ここまで8つを簡単に解説しましたが、当学院は特にWEBセキュリティについては力を入れており、この様な熾烈極める多彩な攻撃に対する防御方法を伝授しております。
当学院の門をたたかねば・・・

画像を2進数へ変換

ハッカーに欠かせない技術に2進数の理解が挙げられます。そこで、簡単な問題を。
その前に2進数とは?を簡単に説明します。
御存じの方はスルーして頂いて下の2進数欄へお進み下さい。

私達が日常で使う数字の数え方が10進数です。0から9迄の10個の数字を使います。 これは手の指が10本有ることから自然に発達した数え方です。
数字が10回大きくなると1が左にずれる。
(00001=1だとすると、9の次は10ですが、00010←1の場所が1つずれます)

2進数は、「バイナリーデジット」と言います。
「バイナリー」とは「2進数の…」と言う意味です。
2進数は、0と1の2つの数字だけを使い計算、表示します。
数字が0.1.2と2回大きくなれば(つまり2になれば)00010と左にずれます。
3だと00010の次なので00011 4だと00012にしたい所ですが2=00010ですので00020…
あれ?おかしいですよね?なのでさらに1を左へ…00100これでOK! 4=100となります。
これが2進数の考え方です。
詳しくは学習ください。

それでは、以下の2進数を画像に変換してください。画像は当ブログにて過去に使用してある画像になりますので、あててみて下さい。