弁財天

ゴフマン「専門家を信じるのではなく、自分自身で考えて判断せよ」

サイバー兵器「Shift_JIS」と「BIG5(繁体字中国語)」update4

redhat.com→Critical: bash Shift_JIS security update

え?bashの脆弱性の話は知ってたけど、それってSJISの話だったのかw

Shift_JIS, also known as "SJIS", is a character encoding for the Japanese language. This package provides bash support for the Shift_JIS encoding.

A flaw was found in the way Bash evaluated certain specially crafted environment variables. An attacker could use this flaw to override or bypass environment restrictions to execute shell commands. Certain services and applications allow remote unauthenticated attackers to provide environment variables, allowing them to exploit this issue. (CVE-2014-6271)

シフトJISのロケールを導入することは簡単。しかしSJISの文字コードにはエスケープ文字が含まれている。 これは環境的に文字コードの制約を外すことになる。 Linuxの環境変数をSJIS(LANG=ja_JP.SJIS)にしたのは攻撃者の意図があるのだw。

旧通産省が決めたSJISコード体系はサイバー攻撃の為の攻略ポイントだったw さすがー。サイバー土人。感動したw。

これがLinuxの標準ディストリビューションからSJISロケールが外されている理由。

ubuntu-tw.net→Ubuntu 行為規範(第二版)

Yosuke Hasegawa discovered that the Mozilla browser engine mishandled invalid sequences in the Shift-JIS encoding. It may be possible to trigger this crash without the use of debugging APIs, which might allow malicious websites to exploit this vulnerability. An attacker could possibly use this flaw this to steal data or inject malicious scripts into web content. (CVE-2011-3648)

うーむ。Shift-JISにするとあちこち動かなくなるのは理解できるけど、 土人が期待してるのは攻略できる文字列を埋め込めるようにすること。

vulners.com/metasploit→Advantech Switch Bash Environment Variable Code Injection (Shellshock)

exploit-db.com→GNU Bash - Environment Variable Command Injection (Shellshock)

security.stackexchange.com→Multibyte character exploits - PHP/MySQL

If an HTML page is rendered via Shift-JIS then it is possible to consume control characters to obtain XSS. An excellent example of this was provided in "A Tangled Web" (fantastic book!) on page 207:

<img src="http://fuzzybunnies.com/[0xE0]">
...this is still a part of the mkarup...
...but the srever dosn't know...
" onload="alert('this will execute!')"
<div>
...page content continues...
</div>

In this case the 0xE0 is a special byte that signifies start of a 3 byte symbol. When the browser renders this html the flowing "> will be consumed and turned into a single Shift-JIS symbol. If the attacker controls the following input by means of another variable then he can introduce an event handler to obtain code execution.

Shift_JISに3バイトコードなど存在しない。 そしてUTF-8では0xE0は3バイト文字列の先頭1バイト。 Shift_JISに設定されたHTMLをブラウザで0xE0">の3バイトを表示するとそれぞれが1バイト文字列と認識される。 ブラウザは>でタグが閉じている認識してJavaScriptを実行できるようになるとーかw。

はぁ?

実装コードに依存する話なので、Shift_JISには3バイトのSJISコードなどないのに0xE0を先頭に付けて2バイトめと3バイトめに構文を崩すキャラクターを入れて誤動作させるテクニックらすい。

オレンジ工房→UTF-8の文字コード表
noocyteのプログラミング研究室→文字コードに関する覚え書きと実験

Linuxみたいなオープンソースのプログラムでは日本独特なShift_JISの事情など考慮しない実装になっている。 なのでShift_JISは未サポートにしてある。 しかしCOBOL資産を無理やり動作させる為にShift_JISロケールを導入して文字コードの制約を外してしまうと攻略されてしまうのだw。

news.ycombinator.com→UTF-8 – "The most elegant hack" (hackaday.com)

Let's not forget that nearly every important pre-Unicode text representation was at least partly compatible with ASCII: ISO-8859-* & EUC-CN were explicitly ASCII supersets, Shift-JIS & Big5 aren't but still preserve 0x00-0x3F, and even EBCDIC, NUL is still NUL. Absent an actual spec, it was no less reasonable to expect that an international text encoding would be ASCII-compatible than it was to expect that such a spec would break compatibility with erverything. Trying to anticipate the latter would rightly have been called out as overengineering, anyway.

わかったw。これでFBIアカデミーを攻略したのか?w

バージニア州のFBIアカデミーのセキュリテイ・クリアランスのソフトウェアのテスト要員。NTTデータ・フェデラル・サービスw

投稿されたコメント:

コメント
コメントは無効になっています。