11.05.2014 Views

OWASP テスティングガイド

OWASP テスティングガイド

OWASP テスティングガイド

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ザェキサュヱがあると 仮 定 するかも 知 れません。そして、 攻 撃 プキソを 選遥 択 し、その 経 路 にファザヱギプキソー([1])を 使 い、<br />

応 答 を 確 認 します。 例 えば、ウェブアプヨクーサュヱがキウヨを 使 って 書 籍 を 検 索 する 場 合<br />

select * from books where title=text entered by the user<br />

侵 入 テシソーはテカシトで'Bomba' OR 1=1- 入 力 するかも 知 れません。そしてもしデーソが 適遚 切 にテシトされていなければ、<br />

キウヨは 実 行 され、すべての 書 籍 のヨシトが 返 るでしょう。これは SQL イヱザェキサュヱの 脆 弱 性 が 存 在 する 証 拠 になります。<br />

侵 入 テシソーはこの 脆 弱 性 の 深 刻 度 を 評 価 するために、 後 でキウヨと 戯 れるかも 知 れません。<br />

もし 1 つ 以 上 のエラーミチスージが 表 示 されたら<br />

一 方 で、 重 要 な 情 報 が 一 切 無 い 場 合 でも、まだ 隠 れタメネラを 使 った 攻 撃 が 可 能 であるかも 知 れません。 詳 細 なウョーミ<br />

ッスーザが 止 められていても、ウョーミッスーザはまだ 何 か 情 報 を 与 えてくれるかも 知 れません。<br />

• いくつかのクーシでは、ウェブアプヨクーサュヱ( 実 際 にはウェブコーバ'は、 典 型 的 な 500: Internal Server Error を<br />

返 すかもしれません。これは 閉 じていないキエートのキウヨによりアプヨクーサュヱが 例 外 を 返 すかも 知 れません。<br />

• 他 のクーシではコーバは 200 OK のミッスーザを 返 すのに、ウェブアプヨクーサュヱは 開 発 者 に 挿 入 されたウョーミ<br />

ッスーザを Internal server error や bad data で 返 します。<br />

この 1 ビットの 情 報 はウェブアプヨクーサュヱでゾイナポッキ SQL キウヨがどのように 組 み 立 てられているかを 理 解 し、 攻 略 方<br />

法 を 改 良 するのに 十 分 であるかも 知 れません。<br />

他 のアウトバヱドの 方 法 は、HTTP で 閲 覧 可 能 なファイラに 結 果 を 出 力 するというものです。<br />

タアポンヱギ 攻 撃<br />

アプヨクーサュヱからのフィードバッキを 見 ることができない 場 合 にブョイヱド SQL イヱザェキサュヱ 攻 撃 を 行 うことができる 他<br />

の 方 法 として、ウェブアプヨクーサュヱがヨキウシトの 応 答 に 掛 かる 時 間 を 計 測 するというものがあります。この 種 の 攻 撃 は<br />

Anley によって 書 かれています([2]'。 典 型 的 なアプルータは waitfor delay ケボヱドを 使 います8 攻 撃 者 が'pubs'というコヱ<br />

プラのデーソプーシが 存 在 するかを 確 認 したいとします。 単 純 な 攻 撃 は 下 記 のケボヱドになります8<br />

if exists (select * from pubs..pub_info) waitfor delay '0:0:5'<br />

キウヨが 返 るまでに 掛 かる 時 間 によって、 答 えを 知 ることができます。 実 際 のところ、ここに 持 っているものは 2 つ8 侵 入 テシソ<br />

ーに 各 キウヨで 1 ビットの 情 報 を 得 ることのできる SQL イヱザェキサュヱの 脆 弱 性 と 隠 れタメネラです。したがって、いくつも<br />

のキウヨを 使 うことで( 必 要 な 情 報 のビットと 同 じくらい 多 くのキウヨ'、 侵 入 テシソーはデーソプーシ 内 のあらゆるデーソを 手<br />

に 入 れることができます。 以 下 のキウヨを 見 てください。<br />

declare @s varchar(8000)<br />

declare @i int<br />

select @s = db_name()<br />

select @i = [some value]<br />

if (select len(@s)) < @i waitfor delay '0:0:5'<br />

応 答 時 間 を 計 測 し、@i に 異 なる 値 を 使 うことで、デーソプーシの 名 前 の 長 さを 推 測 することができます。そして、 以 下 のキウ<br />

ヨで、その 名 前 自 体 の 抽 出 を 開 始妵 します8<br />

if (ascii(substring(@s, @byte, 1)) & ( power(2, @bit))) > 0 waitfor delay '0:0:5'<br />

242

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

Saved successfully!

Ooh no, something went wrong!