ウェブリブログの脆弱性

久しぶりです(ω

今回はウェブリブログで発見した脆弱性を紹介します。


http://www.youtube.com/watch?v=HroKVrlU5OQ

d0210354_17352323.jpg


管理人室のブログの設定ページに入ります。
そこのソースを開き、フォームタグのところを見ます

送信先のactionの部分は相対パスなので
自分で絶対パスに書き換えます

d0210354_1738437.jpg


設定ボタンを押しても、JavaScriptでなにかしら制御されるので
onclickのところからとっぱらってしまいます(ω

まぁ、なんやかんやでURLを踏んだだけで改ざんさせることができます!

ノシ
[PR]

by r-skull | 2011-05-27 17:47 | 攻撃・脆弱性

CSRFがコメント欄に・・・

このブログにも、あった見たいです・・・
CSRF(クロス・サイト・リクエスト・フォージェリ)
信じてたけど・・・orz


下のURL踏んで見てください。
この記事に名前:CSRF 内容:こんにちは!
っていうコメントが増えるはずです・・・。

http://rskull.css1.jp/csrf/

増えましたでしょーか?
それはあなたがコメントしたことになってます。

もしこれが殺人予告なんかだったら大変です。
今回の場合はタダの挨拶なので心配しないでください。

うん。
[PR]

by r-skull | 2011-02-22 00:57 | 攻撃・脆弱性

セッションハイジャック


セッションハイジャック・・・PHPにおける脆弱性です。

攻撃目標
○典型的な脆弱コード
セッション鍵をクッキー以外からも取得する状況でのセッション開始。

セッション鍵とはセッションIDのことで、ログインしたときに発行され
いったんクッキーファイルとして保存されます。

セッションIDについてはコチラをお読みください。

攻撃方法
※http://example.com/ は攻撃目標サイトとします。

http://example.com/index.php?PHPSESSID=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

このようなリンクを、サイト管理者に何らかの方法で踏ませます。

踏んだことをアクセスログなどで確認できたら、以下のセッションを目標サイトにセットしてアクセス!
PHPSESSID=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
これで目標サイトにログインできます。

PHPSESSIDは、ログインを保つためにそのつど発行されるもので、普通なら他人に漏れることは絶対にありません!
本物はもっと複雑な文字列になっていますが、わかりやすくするためにaのみにしました。

IDとパスワードを入れ、ログインした代わりにこのPHPSESSIDが発行されます。
ログアウトするとこのコードは破棄され使えなくなります。

つまりこのコードが盗まれると、相手がログイン中の間だけIDとパスのかわりになってしまいます。
よってその人のアカウントにログインできてしまいます。

今回の脆弱性は盗まれたのではなく、攻撃者が作った任意のPHPSESSIDを
上のリンクで管理者に踏ませたことにより、aaaaa...... のコードがセットされてしまい
必然的に知っていることになってしまいます。

この攻撃が成功したら
あとは個人情報を盗むなり、設定を変えるなどの攻撃が可能ということです。

大抵のさいとは自分でセットしたPHPSESSIDは受付ないようになっているので
その場合、この攻撃は成立しません!

しかし以下の脆弱性がある場合には可能です。

○XSS
○クライアント・サイド・スクリプティング
○HTTPレスポンス分割攻撃
○session関連の設定ミス

などです。
書き換えではなく、いずれも盗む形になります。

もぅ12時なので寝ます。。。

おやすみー(ω
[PR]

by r-skull | 2011-01-20 23:59 | 攻撃・脆弱性

XSS(クロス・サイト・スクリプティング)

お久しぶりです!
今回は脆弱性の話です(ω

Webアプリケーションの脆弱性といったらコレ!
XSS(クロス・サイト・スクリプティング)です!
クロスのスペルはCからですが、CSSだとウェブのデザインする言語とかぶるのでXSSです。
この脆弱性がいちばんやっかいで
数多くあるサイトの中でもいちばん?多いかと思いますΣ(Д

この脆弱性はURLのパラメーターに不正なスクリプトを含ませ
そのURLをターゲットに踏ませることでそのユーザーのPCで任意のスクリプトを
実行できるというものです。

まぁ簡単に説明すると・・・・
こんなサイトがあったとします!(例えばね
d0210354_0384697.jpg

名前を入力し、OKを押します!すると・・・・
d0210354_0392242.jpg


ちょっと切れてますが、URLをみると
?name=R.SkuLL
と入力した名前がパラメーターとなって、この情報がサーバーで解釈されて
ブラウザに表示されるというものです。

なので、このURLでアクセすると誰でも
ようこそ!R.SkuLLさん と表示されます。

↓↓実際にやってみてb
名前入力のやつ

では!今度は入力欄にスクリプトを書いてみましょう!
この方法は、実際に脆弱性がないかチェックするのによく使います(ω)
d0210354_0523114.jpg

これでOKを押しますっと!!
d0210354_05336.jpg


このようにスクリプトのアラートが実行されました。
この時点でXSSの脆弱性確定です!
普通はユーザーが入力した値はそのまま表示してはいけません。
一度<>などのHTMLタグに関係する特殊記号はサニタイズして、意味の無い文字に変換して・・・・
と、すこしめんどうなことをしなければいけないんです。

まぁ、本題に戻ると・・・
これでは自分のPC上でスクリプトを実行してるだけになってしまいます。
どーするかというと!

さっきも説明したURLですよ!
スクリプトの含まれたURLをコピって、どっかの掲示板なんかに貼って
誰かに踏ませれば、その人のPC上でさっきのスクリプトが実行できるというわけです!!

セキュリティ上の問題で、このブログ
そのスクリプト入りのURL貼れなかったΣ(Д;

まぁ、これだとただアラートを実行させただけなんですけどね。

前にDecooとモバスペで説明した
スクリプト・インジェクション(クライアント・サイド・スクリプティング)で、クッキーを盗む!
というものがありました。

あれはXSSとは別で、サイト自体にスクリプトを埋め込み、そのサイトのURLに
アクセスさせることでスクリプトを実行させるというものでした。
今回はURLにより、一時的に生成されたスクリプト入りのサイトを見ることにより
実行させるというものです。

なのでURLのパラメーターに例のクッキーを盗むスクリプトを付け足して
踏ませれば、同じことができるというわけです!

まぁ、XSSの脆弱性があれば!の話ですけどね。

でもスクリプト入りのURLはブラウザ自体が受け付けてくれない場合もあるので
クライアント・サイド・スクリプティングのほうが確実ですね(∀

てか、もうこんな時間Σ(A

じゃぁこれでノシ
[PR]

by r-skull | 2010-12-28 00:31 | 攻撃・脆弱性

アクセスログの付け足しですがなにか?

今日学校から帰ってきて気づいたんだけどさ
明日誕生日だww
12月21日をもちまして18歳になりまーっす(ω`//)

そして昨日は静岡まで釣りをしにいったから疲れた!
アジがいっぱい釣れた!
夜中の3時に起きて兄の車で静岡まで行ったからね(山梨から
ちょーねみぃケド書くかぁ~ブログ(-ω-)

あ、コメントありがとうございます。
下の記事のリンクは同じサーバーですよb

あれはただ ?log= 以降の部分が書き込まれるよに作っただけで
アクセスログとは違いますね(Д

モバスペでもDecooでも説明した攻撃用スクリプトは、 http://localhost/? の部分を
アクセスログのとれるURLに変えてくださいって意味です。

もちろん自分の契約したサーバーじゃないとログ確認できないですよ!
詳しく書いといてアレですが、悪用禁止ってことになってます。。。。

前の記事で無理矢理ログ?残すのに作ったサイトは
http:// ~ /?log=+ の後にリファラーやらクッキーやらつけると(動画でURLの後ろにつけた+~のヤツです)
リンクのサイトにその部分が書き込まれます!見たいなやつですb

アクセスログがあれば、いちいち書き込まれるように無理矢理作らなくても
どんなURLでアクセスされたか記録してくれるので、楽なんですけどね。

まぁリンクの場合は攻撃受けた人も書き込まれたサイト見る可能性あるので
攻撃用のURLにアクセスしたら例のカギの部分だけ書き込ませといて
別のページにリダイレクトさせればいい話なんですけどね(ω

なんか『ね』が多いんですけどね←

今日はこんだけですみませんね←
あと約1時間15分で18歳でーす、、、ね。

まぁみんなコレ見るころには18ですがw


ではさよーーならねぇ~!
[PR]

by r-skull | 2010-12-20 22:48 | 攻撃・脆弱性

アクセスログ


・・・につて質問があったので説明します。(できるだけ

とりあえずアクセスログのとれるレンタルサーバーと契約しないと
ダメですね(Д

今自分が使ってるのは
http://podboy.jp/

ここです!無料でPHPやCGIなどがアップロードできる
Apacheサーバーです!

でも実際ココだとリアルタイムでアクセスログを見れませんΣ(Д
昨日のログしか見れないっぽい・・・。

こんなのがアクセスログ

d0210354_2144879.jpg


FFFTPってソフトでログインしてみると

こんな感じでログファイルがあります。
d0210354_21443362.jpg


まぁリアルタイムでアクセスログとれる無料のレンタルサーバーがあれば
いいんですけどね・・・。

他にやるとしたら自分で無理やり作るしかないですね(ω
こんな感じで・・・。
ってかメッチャ適当ですけど。

http://rskull.css1.jp/log/index.php

これが確認画面です。

このURLの最後に?log=とつけて、このあとに書き込みたい情報を付け加えると・・・
例えばこんな感じです。

http://rskull.css1.jp/log/index.php?log=123456

これでアクセスすると123456の部分が書き込まれます。
基本、確認するときは最初のURLです。

アップロードしておいたので、123456の部分変えたりしてやってみると
意味分かると思います。

動画で説明にあったhttp://localhost/のURLの部分をさっきのに変えてやります。。。。。

するとセッションIDやらリファラーやら書き込まれるとおもいまーす(ω)

ローカル環境で実験の意味はと言うと・・・
PHPという言語でサイトを作る場合、開発するためのソフトをPCにインストールしなくてな
なりません!このソフトの機能でアクセスログがあるだけです。
別にネット上でのアクセスログではなく、自分でアクセスしたログが記録されているだけです。

う~ん。。わかりにくくてすみません(Д;

とにかくローカル環境でテストは気にしなくていいです。。。

だいぶ説明が下手だったので、またわからないことコメしてください。

説明できるか保障できませんけどねww

では今日はこのへんでーーノシ
[PR]

by r-skull | 2010-12-18 22:22 | 攻撃・脆弱性

CSRF2

ちょっと久しぶりの更新!
てかモンハンやらなんやらで更新してなかった(笑
今日なんて授業中何回狩りに行ったことやら(∀)
もちろん友達連れて4人で!

てかふたご座流星群見逃したぁぁ!!
しかも進学先の日本工学院から課題レポート的なやつ届くしさ。

まじだりぃーー!!

まぁちょっとは記事かきますか。

CSRFの続きってコトで、こんなこともできます的な・・・

<img src="http://www.yahoo.co.jp/">

普通は画像のURLなんですけど・・・
上みたいなイメージタグを使って、ソースのところをサイトのURLを設定します。

すると、もちろん画像エラーのマークがでます(Д
d0210354_2212794.jpg


でも実際には画像を取りにいこうとして、一度Yahooにアクセスしたことになってしまいます。
例えばこのURLを自分のブログなんかに変えて、どこか閲覧数の多いページにでも貼れれば
ウェブを見てる人が実際に自分のブログに来てなくても、画像タグを貼ったまったく別のページに入ったとこで
自分のブログにアクセスしたことになり、アクセスカウンターが増えますw

これは脆弱性とか関係なしのセコイ技?的なやつですね(ω
まぁその画像タグ張るサイトが全く人来てなかったら意味無いんですけどね。

他にもいろいろ使い道はありますが
実際に前回はなした「ぼくはまちちゃん事件」でも使われていた手法らしいですよ(∀

今日は簡単でしたが終わりマース(ω)ノシ
[PR]

by r-skull | 2010-12-16 22:12 | 攻撃・脆弱性

CSRF(クロス・サイト・リクエスト・フォージェリ)

久しぶりです(ω)ノ
最近、ネタを何にしようか迷ってたんですけど
CSRFにしようと思います。
てかMHP3rd今日やり込みすぎて疲れた・・・(Д

まぁ説明いきますよ!
d0210354_0344297.jpg


とくに掲示板などで、書き込む時になんでわざわざ数字なんて入力するんだよ!って
思ってた人もいると思いますが、ちゃんと意味があります。

それは、CSRF(クロス・サイト・リクエスト・フォージェリ)の脆弱性の対策です。

CSRFとは、相手に意図しない動作を無理やりさせることができてしまう脆弱性です。
例えば、仕掛けがしてあるサイトに入っただけで、アクセスした人は
脆弱性のあるターゲットサイトへと知らないうちに書き込みさせられてしまうのです。
この何が問題かと言うと、昔実際にあったらしいんですけど、、、
そのCSRFの脆弱性があった掲示板サイトに殺人予告が書き込まれました。
しかも何回もです。
IPアドレスを調べてみたらみんな違う人だったらしいです。
詳しく調べた結果、CSRFの脆弱性があることが判明!
悪意のユーザーが仕掛けた罠に掛かり、みんな書き込みをさせられたのです。
このようにIPアドレスで問題になるケースもあるのです。

3~4年前にもmixiでもありました。
別に殺人予告とかではないんですけど、『ぼくはまちちゃん事件』
って呼ばれていると思います。

興味のある方は調べばたくさん出てきますよ(ω//

攻撃方法で簡単な例を言ってみれば・・・
※Wiki参照↓↓
d0210354_0452614.jpg


この、下のclickme.htmlは、実際にアクセスさせるwebページです。
ソースはその枠の中の通りです。

<iframe width="1" height="1" src="attack.html"></iframe>
このインラインフレーム要素で、attack.htmlのwebページを読み込ませているのですが、
縦横の大きさを最小にすることで、ほぼ攻撃ページを見えなくすることができます。

d0210354_115528.jpg


そして、attack.htmの、実際に攻撃ソースが書かれている方は、
攻撃目標ページの書き込みフォームをそのまま抜き取ります。
そしてclickmeのインラインフレームにセットして、送信ボタンはJacaScriptで
読み込まれた時に無理矢理押されるようにしてあります。

d0210354_123327.jpg


ちなみに
<input type="hidden" name="title" value="攻撃者が指定した題名">
このtype="hidden"というのは隠しフィールドと言い、
実際には表示されません、さらに気づかれにくくするための偽装だと思います。
type="hidden"は逆にCSRFの対策で、不正な操作をされないようにと使われることが多いです。

上のようなページが完成したら、攻撃ページに誘導するような書き込みをしとけば
いいってわけです!

まぁ今日はこのくらいにしておきます。。。

では(ω)ノシ
[PR]

by r-skull | 2010-12-12 01:24 | 攻撃・脆弱性

スクリプト・インジェクション2

こんにちは(-ω-)ノ

前回予告した通り、Decoo編で書きたいと思います!

モバスペへんでは管理人にメールでおくりましたが、
今回は自分のリアルにスクリプトを書き込めてしまいます。
これも攻撃に成功すると、アカウントを乗っとることができます(Д

とりあえずPCで自分のリアルにログインした人(PCでログイン中)にだけ有効の攻撃です!

デクーでのログインは、セッション管理というものをしています。
ログインすると、昨日説明したパラメーターとして ・・・・ ?PHPSESSID=123456789
見ないな感じのが発行されます。 123456789のとこは、実際もっと複雑な文字列ですけど
これが一時的にログインを保つためのカギみたいなものです。

自分のURL+?PHPSESSID=123456789

みたいになり、このカギをもっている間は、ログイン中となります(ω
そしてログアウト、または時間が立ってタイムアウトしたときには無効となり
さいどアクセスしたときにはもぅ、ログアウト中になっています。

ログインしてる時、ページを色々移動して、再度アクセスしても『ログイン中!』と
セッションを保つために、一時的に自分のパソコンにCookieファイルとして
カギが保存されます。

誰かのブログにコメントするとき、2回目からは名前の欄に
前回使用した名前がすでにセットされていた!

みないなのがCookieの一例です。

これは初めてコメントした時に、名前に入力された値をCookieファイルとして
自分のHDDに保存し、2回目からはそのCookieを呼び出し
「あら便利!すでに名前入ってるわぁ~♪」
となる仕組みです。 あ、これCookie(クッキー)と読みます・・・・

このクッキーはどこからでも呼び出せる分けじゃありません!
ちゃんとそのクッキーを保存したサイトじゃないと呼び出せません!
つまり、この名前の値は、コメントしたブログじゃないと呼び出すのは無理ってことです。

じゃぁどーいうことかというと、、、、

そのサイト内ならいくらでも呼び出せるということです!
厳密に言うと、そのドメインじゃないとだめ・・・だった気がします。

まぁとにかくサイト内ならOKってこんですよ
クッキーはJavaScriptで簡単に呼び出せます。

では本題(ω//)

昨日説明したスクリプト・インジェクション
サイト内にスクリプトを埋め込めてしまう・・・というものでした。

デクーでは、PCでリアルを書くとき、HTMLモードと言うものがあります。
このモードでスクリプトを書いて投稿すると、自分のリアルのページで
スクリプトが発動するようになってしまいます。

最初に説明したセッション管理は、ログインしたときクッキーとして
一時的にログイン状態を保つためのカギのようなものが発行されるといいました。

つまりこのカギの書かれたクッキーファイルは
スクリプト・インジェクションにより自分のリアルに埋め込んで
PCでログイン中の人に踏ませることで、カギを盗むことができます!

最後は昨日と同じで、URLのパラメーターにつけてアクセスさせ、
ログファイルに記録させると言う方法をとります。

取得できたらターゲットがログアウト、またはタイムアウトする前に
このカギでアクセスしなければ失敗です。

カギを取得したとこでターゲットがログアウト→カギ無効
となったら意味ないですからね(ω)ノ

ターゲットの管理画面URL?PHPSESSID=取得したカギ
でアクセスすると・・・ログインできてしまいます!

詳しくはまたYouTubeみてください。
前回とBGM一緒ですが気にしないでくださいwww

あ、これギリギリ最大化できるんで大画面でみてねb




またネタ考えなくちゃ・・・
さよなら~(ω)ノシ
[PR]

by r-skull | 2010-12-04 14:06 | 攻撃・脆弱性

スクリプト・インジェクション1

こんにちは!

けっこう前に(って言っても2~3ヶ月前
モバイルスペースことモバスペに
スクリプト・インジェクションの脆弱性があることを発見しました!

このスクリプト・インジェクションとは
例えは掲示板など、自分の書いた文字が投稿されるシステムで
任意のスクリプト(JavaScript)を投稿することで掲示板自体に
プログラムが埋め込まれてしまう脆弱性です。

わかりにくいですね・・・

たとえばJavaScriptで
画像の左のように打ち込んで実行すると・・・

d0210354_14303313.jpg


こんにちは! のアラートがでます。

このコードをコメント欄にいれ投稿すると
対策のされていない掲示板なら 誰が見ても上の画像のような
アラートが表示されるようになってしまいます
d0210354_15151446.jpg


JavaScriptはほぼPCでしか読み込めないので、携帯じゃ無理です(Д)ショーック

ここで本題ですが、この脆弱性は、モバスペの
管理画面のメール受信箱にありました。
つまり、、、、モバスペには管理人にメールを送る機能がありますので
そのメールフォールにスクリプトを埋め込んで送信してやると
管理人がPCでメール受信箱を開いたとき、仕込んだスクリプトが発動しますΣ(Д

しかも、この攻撃が成功すると
アカウントを乗っ取れてしまいますΣ(Д

そんなの一番上の画像のようにアラートがでてくるだけじゃないの?
と言う人もいると思いますが、JavaScriptは結構いろんなことができちゃいます・・・

YouTubeに投稿した動画をみると
わかりやすいかと・・・



実際動画でURLが記録されたファイルは
アクセスログと言い、そのサイトにアクセスしたパソコンの情報が
記録されるファイルのことです。

いろいろなサイトのURLを見ていれば分かりますが
URLの最後に『?何とか=何とか』みたいに、ハテナ=なんとか
となってるのがあります。
これはパラメーターといい、普通はこれにより
何の処理をするか、何を表示するかなどなど、、、
決めることができます。

アクセスログにはどんなパラメーターがついてアクセスされたかも
記録されます。

ここの動画で埋め込んだスクリプトについて
JavaScriptのリファラー関数は、どこのURLから飛んできたのかを
調べる関数です。
つまり→管理画面です

なので上の動画では、リファラー関数で取得した管理画面のURLを
意味のないパラメーターとして送り、アクセスログに記録させる!
というこんたんです(~`;)

脆弱性にはXSS(クロス・サイト・スクリプティング)や
CSEF(クロス・サイト・リクエスト・フォージェリ)などといったものもあります

のちのち紹介できたらと・・・思います!

次回は『リアル』のDecoo編で書きます。

よろしくぅ!(ω//)ノシ
[PR]

by r-skull | 2010-12-03 15:57 | 攻撃・脆弱性