11.05.2014 Views

OWASP テスティングガイド

OWASP テスティングガイド

OWASP テスティングガイド

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• PHP ケネキソは、 構 文 の 区 切 に「;」を 使 うことで、 複 数 の 構 文 を 実 行 することができます<br />

• SQL 文 は、ケミヱト 文 字 「--」を 追 加 することで、 切 り 捨 てられます。<br />

• LIMIT と OFFSET は SELECT 文 の 中 で 使 わわれ、キウヨによって 生 成 された 結 果 の 一 部邪 を 取 り 出 すために 使 わわれます。<br />

以 降 では、http://www.example.com/news.php?id=1 は SQL イヱザェキサュヱ 攻 撃 に 脆 弱 であると 仮 定 します。<br />

脆 弱 性 の 解 説<br />

PostgreSQL の 識 別<br />

SQL イヱザェキサュヱが 発 見 された 場 合 、バッキウヱドのデーソプーシウヱザヱを 注 意 深 く 判 定 する 必 要 があります。カメシト<br />

演 算 子婡 「::」を 使 って、PostgreSQL であるということを 断 定 できます。<br />

例 :<br />

http://www.example.com/store.php?id=1 AND 1::int=1<br />

version() 関 数 は、PostgreSQL のバナーを 取 得 することに 使 えます。これは、OS のソイプとバーザュヱも 併 せて 表 示 します。<br />

例 :<br />

http://www.example.com/store.php?id=1 UNION ALL SELECT NULL,version(),NULL LIMIT 1 OFFSET 1-<br />

-<br />

PostgreSQL 8.3.1 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu4)<br />

ブラアンヱデアンヱジェクシュンヱ<br />

ブョイヱド SQL イヱザェキサュヱ 攻 撃 のために、 以 下 のビラトイヱ 関 数 を 考 慮 に 入 れるべきです。<br />

• 文 字 の 長 さ<br />

LENGTH(str)<br />

• 与 えた 文 字 から 一 部邪 を 取 り 出 す<br />

SUBSTR(str,index,offset)<br />

• サヱギラキエートがない 文 字 列 の 表 現<br />

CHR(104)||CHR(101)||CHR(108)||CHR(108)||CHR(111)<br />

8.2 PostgreSQL より、ビラトイヱ 関 数 として pg_sleep(n)が 導 入 されました。これは、 現 在 のスッサュヱのプルスシを n 秒 間 シヨ<br />

ープさせます。<br />

以 前 のバーザュヱでは、libc を 使 って、ォシソマの pg_sleep(n)を 簡 単 に 作 成 することができます。<br />

CREATE function pg_sleep(int) RETURNS int AS '/lib/libc.so.6', 'sleep' LANGUAGE 'C' STRICT<br />

シンヱギルクオーテのアンヱエスクープ<br />

サヱギラキエートのウシクープを 防 ぐために、 文 字 列 は chr() 関 数 を 使 ってウヱケードできます。<br />

* chr(n): 数 値 n に 該 当 する ASCII 値 の 文 字 を 返 します<br />

* ascii(n): 文 字 n に 該 当 する ASCII 値 を 返 します<br />

248

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!