HTTPSを使ってもCookieの改変は防げないことを実験で試してみた
寺田さんのブログエントリ「他人のCookieを操作する」には、通信路上の攻撃者がいる場合は、SSLを使っても、Cookieの盗聴を防ぐことはできるが、Cookieの改変を防ぐことはできないと指摘されています。いかにも寺田さんらしい簡にして要を得たエントリで、これに付け加えることはあまりないのですが、残念ながらまだ読んでいない人が多そうだと言うことと、より広い読者に向けて具体的に説明した方がよいだろう...
View Articlesession_regenerate_id関数の第1引数はtrueにすべきか
以前tumblrに書いたエントリ「データベースのデータを信用してはいけないか?」にて、PHP技術者認定試験の想定問題について取り上げましたが、その後、書籍「徹底攻略 PHP5 技術者認定 [上級] 試験問題集...
View ArticlePHPのsetcookie関数で空文字列を設定しようとするとクッキーが削除される
PHPでスクリプトを書いていて、setcookieの第2パラメータ(クッキーの値)の変数をタイプミスしたところ、以下のレスポンスヘッダが送信されていました。setcookie('A', $misspelled_variable);↓ 結果Set-Cookie: A=deleted; expires=Thu, 01-Jan-1970 00:00:01...
View ArticleCGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました
昨夜に、魔法少女アパッチ☆マギカ攻撃を観測しました。魔法少女アパッチ☆マギカとは、PoCのソースコードに Apache Magica by...
View Article徳丸本のDRMなしPDF版が達人出版会からお買い求めいただけます
昨日から、拙著「体系的に学ぶ安全なWebアプリケーションの作り方」が達人出版会から発売されました。DRMフリーのPDF形式になります。ということで、紙の本に加え、電子版が5種類販売されることになります。紙の本(Amazon)PDF版(達人出版会)PDF版(bookpub)KindleKoboGoogle...
View ArticleAdobeサイトから漏えいした暗号化パスワードはなぜ解読されたか
Adobe社のサイトの不正アクセス(参照、参照)によって、少なくとも3800万人のIDと暗号化されたパスワードが漏えいしたと言われています。既に報告したように、私のアカウントも漏えいしていました。その後、『Adobeの情報流出で判明した安易なパスワードの実態、190万人が「123456」使用』というニュースが流れてきました。安易なパスワードが使われている統計は今までもあり、「パスワードの実態」に関し...
View ArticleGitHubに大規模な不正ログイン試行
GitHubのブログおよび国内の報道によると、GitHubに対して大規模な不正ログインが試みられたようです。GitHubは米国時間の2013年11月19日、ブルートフォース攻撃を受けたことを明らかにした。攻撃の時期や被害を受けたアカウント数は公にしていないが、今回の攻撃を踏まえ、より強固なパスワードや二要素認証などを利用するようユーザーに呼び掛けている。GitHubにブルートフォース攻撃、一部のパス...
View ArticleXSSとSQLインジェクションの両方が可能なRFC5322適合のメールアドレス
メールアドレスの「ルール」に関する話題が盛り上がっていますね。「メールアドレスのルール」系まとめがそろって間違ってるのでご注意を...
View ArticlePHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた
table.table1{ border-top:1px solid #0000FF; border-left:1px solid #0000FF; border-collapse:collapse; border-spacing:0; background-color:#ffffff; empty-cells:show; } .table1 th{ border-right:1px solid...
View ArticlePHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能
基礎からのPHPという書籍を読んでおりましたら、SQLインジェクションの攻撃例として、以下のSQL文ができあがる例が紹介されていました。PHP+PDO+MySQLという組み合わせです。SELECT * FROM tb2 WHERE ban=1;delete from tb22つのSQL文がセミコロンで区切って1つにまとめられていますが、これを「複文(multiple...
View ArticlePHPだってシェル経由でないコマンド呼び出し機能が欲しい
このエントリはPHP Advent Calendar 2013 in Adventarの21日目です。OSコマンドインジェクションとはOSコマンドインジェクションという脆弱性があります。PHPから外部コマンドを呼んでいる場合に、意図したコマンドとは別のコマンドを外部から指定され、実行されてしまうものです。下記のように、myprog...
View Article間違いだらけのSQL識別子エスケープ
これから3回連載の予定で、SQL識別子のエスケープの問題について記事を書きます。SQL識別子のエスケープについてはあまり解説記事などがなく、エンジニア間で十分な合意がないような気がしますので、これらの記事が議論のきっかけになれば幸いです。3回の予定は以下のとおりです。間違いだらけのSQL識別子エスケープ(本稿)SQL識別子エスケープのバグの事例SQL識別子は結局どうすればよいかということで、まずはS...
View ArticleSQL識別子エスケープのバグの事例
昨日のエントリに続いてSQL識別子のエスケープの話題で、今回は著名アプリケーションにおけるSQL識別子のエスケープ処理のバグについてです。MySQL Workbenchには識別子のエスケープに関するバグがあった以下の画面は、MySQLが提供するMySQL Workbenchの旧バージョン(5.2.34)の様子です(CentOS6.5上で動作)。MySQL...
View ArticleSQL識別子は結局どうすればよいか
今まで2回にわたって、SQL識別子のエスケープの問題を取り上げました。間違いだらけのSQL識別子エスケープSQL識別子エスケープのバグの事例3回目となる本稿では、SQL識別子の取り扱いに関する問題を整理して、一般的な原則を導きたいと思います。SQL文が動的に変化する場合のSQLインジェクション対策「間違いだらけの…」で示したように、識別子エスケープが必要な局面でそれが洩れていると脆弱性の要因になるこ...
View Article今年のページビューランキング上位15を発表します
2013年も終わりですので、徳丸浩のブログの今年のページビューランキング上位15を発表します。ロリポップのサイト改ざん事件に学ぶシンボリックリンク攻撃の脅威と対策パスワードの定期的変更について徳丸さんに聞いてみた(1)イケダハヤトさんへの手紙 : 敵意ある他者との対話についてヤフー株式会社様に「秘密の質問と回答」に関して要望しますそろそろSQLエスケープに関して一言いっとくか:...
View ArticleWindows版PHPのbasename関数はドライブレターを除去しない場合がある
Windows版PHPのbasename関数は、パス名にディレクトリセパレータ(「\」および「/」)がない場合、ドライブレター(「C:」など)を除去しないことが分かりました。具体的には、basename('c:autoexec.bat') の結果は、引数そのまま c:autoexec.bat となります。一方、basename('c:\autoexec.bat') の結果は、autoexec.bat...
View Article書籍「気づけばプロ並みPHP」にリモートスクリプト実行の脆弱性
書籍「気づけばプロ並みPHP」のサンプルスクリプトにリモートスクリプト実行の脆弱性があるので報告します。はじめにYahoo!知恵袋の質問を読んでいたら、以下の質問がありました。気づけばプロ並みPHP (著)谷藤賢一...
View ArticleIE8以前はHTMLフォームでファイル名とファイルの中身を外部から指定できる
一昨日のエントリ『書籍「気づけばプロ並みPHP」にリモートスクリプト実行の脆弱性』にて、ファイル送信フォームに対するCSRF攻撃の文脈で、私は以下のように書きました。通常のHTMLフォームを使ったCSRF攻撃では、Content-Typeをmultipart/form-dataにすることまでは可能ですが、ファイルの中身とファイル名を指定する方法がありません。従って、HTMLフォームによる攻撃経路はあ...
View ArticleIE9以降でもHTMLフォームでファイル名とファイルの中身を外部から指定できる
昨日の日記「IE8以前はHTMLフォームでファイル名とファイルの中身を外部から指定できる」にて、福森大喜さんから教えていただいた内容として、ファイルアップロードのHTMLフォーム(enctype="multipart/form-data")にて、アップロードするファイル名とファイルの中身を外部から指定できることを報告しました。この際にIE8以前という条件がありましたが、今度は、三井物産セキュアディレ...
View Article