SlideShare a Scribd company logo
- Webアプリって奥が深いんです。 -
■ 自己紹介
twitter:abend
セキュリティエンジニアをやってます。
メインは、Webアプリケーションセキュリティ。
MS08-067とCVE-2013-0422になぜか惹かれます。
本が出てます。
■ 今日の内容
Webアプリケーションのセキュリティのお話です。
あと、デモです。
※本稿の内容を管理下ではない環境に対して実施
しないでください。
■ HTTPができてから20年以上経ちました。
GETしかできなかったHTTP
欧州原子核研究機構(CERN)で生まれたHTTPも大きくなりました。
HTTP/0.9はGETのみしかできなかったが、HTTP/1.0でPOSTなど追加される。
HTTP/1.1では、いろいろと追加されたんです。
プロトコルだけでなく、利用用途も変化しています。
静的コンテンツから始まり、動的コンテンツ、AJAXなど様々場面で利用される
ようになりました。
表現力がアップし、利用範囲が拡大。
Googleストリートビュー
■ いろいろな使われ方があります。
情報をただ発信するだけではないんです。
SSL-VPNはクライアント環境による影響度がIPSecよりも低い(導入しやすい)。
ブラウザさえあれば、自宅からでも仕事をし放題という「社畜の社畜による社畜のため」
のWebシステムということも可能である。
使われ方が多様化する中、犯罪行為も多様化しています。
SSL-VPN
■ 凶悪化する犯罪行為 抜粋
事件は現場で起きている。
・URLの一部を改変すると他人のパスワードを初期化(パスワード定期変更補助機能)
悪用する人間はもちろん悪いが、セキュリティに無関心なエンジニアも十字架を
背負ってください。
セキュリティに対して無頓着であると様々な人が残念な思い抱くことに。
・パラメータの値がSQL文そのもの(もはやSQLインジェクションを凌駕)
「あなた」が利用者を脅威から守ってあげないといけません。
「アクセス管理者」は、不正アクセス禁止法でも防御措置の努力
義務が明記されてます。
・パラメータの値を数字から記号にしたらサービス停止(安心シャットダウン機能)
・認証後のURLさえ分かれば、誰でも管理者!!(管理者増幅機能)
■ 犯罪を犯さないために
なぜ脆弱性が生まれるか
脆弱なプログラム
開発者
チェック・知識不足
バグ
セキュアコーディング(仕組み)やセキュリティに関する学習が必要となる。
チェック・知識不足やバグにより
脆弱性を埋め込んでしまう。
参考情報がIPAから
出てます。
なう。
■ Webアプリに携わるなら
RFC2616と「安全なWebサイトの作り方」、徳丸本を熟読
いいから黙って読んどけ、以上
なぜ、RFC2616を読んだ方がいいのか。
→だって、HTTPのルールだから。。。
なぜ、徳丸本を読んだ方がいいのか。
→セキュアなコーディング例だけでなく、考え方が書かれているため、セキュリティ上
の「正解」をいち早く身に着けることができる。
技術書でありながらマネジメントにも触れられており、Webシステムに携わる
マネージャも是非とも一読してもらいたい一冊。
グループ、課で1冊という時代から1人1冊という時代に。
※ちなみに筆者とは一切関係なく、宣伝ではありません。
なぜ、「安全なWebサイトの作り方」を読んだ方がいいのか。
→その名の通りだから。。。
■ いろいろと「めんどくさい」と思うが
学習が必要なんです。
IPA「安全なウェブサイトの作り方」より
いろいろと書かれているが、今日は以下
1点のみの説明となります。
(時間の都合上)
◎ SQLインジェクション
<これを選んだ理由>
説明とテストサイトを用意するのが楽
だから。あと、楽しいから。
それ以外は次回で。
■ SQL インジェクション
外部から悪意のあるリクエストによりデータベースの不正操作が可能な脆弱性
・ 認証の迂回によるサービスの不正利用
・ データベースに保存された情報の漏洩
・ データの破壊や改竄
Application
Server
Database
攻撃者
被害
認証の迂回
情報漏洩
データの破壊・改竄
■ SQL インジェクション
フォーム等から入力値がそのままDBに渡され、SQL文として評価されている。
ログイン
ユーザ名:
パスワード:
test
’ OR ’1’=’1
SELECT * FROM users WHERE id = ’ $id ’ AND pwd = ’$pwd ’;
SELECT * FROM users WHERE id = ’ test ’ AND pwd = ’ ’ OR ’1’=’1 ’;
a) Prepared Statementを利用
b) SQL特殊文字をエスケープ(非推奨)
ログインに成功しました。
②
①
攻撃手法
原因
対策
■ SQL インジェクション
Prepared Statementって
準備された文という意味。
SELECT * FROM users WHERE id = ’ test ’ AND pwd = ’ ’ OR ’1’=’1’ ;
入力の結果、「OR '1'='1'」としてSQLが評価(赤箇所)され、作成者の意図と
異なる挙動(SQL文の構文が変更される)になる。
そうならないために・・・
SELECT * FROM users WHERE id =
AND pwd = ;?
?
実行されるSQLを事前に用意しておく。
データベースアプリケーション
id =
pwd =
test
pass
必要な情報だけ引き渡す。
Prepared Statementは、引き渡される情報(パラメータ)のみ受け渡してSQL文の
構文変化を行わせないようにしている。
SELECT * FROM users WHERE id = ’ test ’ AND pwd = ’ ’ ’ OR ’ ’ 1’ ’ =’ ’ 1 ’ ;
String driver = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8";
Connection con = DriverManager.getConnection(driver, "user", "pass");
String loginName = request.getParameter("loginnm");
String passwd = request.getParameter("passwd");
String sql = "Select UserId From Users Where LoginName = '" + loginName + "'" +
" and Passwd = '" + passwd + "'";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
String driver = "jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8&useServerPrepStmts=true";
Connection con = DriverManager.getConnection(driver, "user", "pass");
String loginName = request.getParameter(“loginnm");
String passwd = request.getParameter(“passwd")
String sql = “Select UserId From Users Where LoginName = ?" +
" and Passwd = ?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, loginName);
stmt.setString(2, passwd);
ResultSet rs = stmt.executeQuery();
※Prepared Statementを利用している場合でもlike検索を行うときは、%、_はエスケープ
する必要があります。
また、根本解決ではないが、入力値の確認(例:数値チェックなど)、エラーメッセージ
出力の制御、DBの権限見直しを行うことでリスクは軽減される。
詳細:http://www.ipa.go.jp/security/vuln/documents/website_security_sql.pdf と 徳丸本を。
■ SQL インジェクション対策
脆弱な例
改善例
■ ちゃんと作ったけど
ほんとにできたのか確かめる方法
セキュアであることを確かめるには
・チェックリストなどを用いて確認(意味合い的にホワイトボックス)
・セキュリティ診断(ブラックボックス)
ただの宣伝です。
← これを話します
■ここからの話
セキュリティ診断がメイン
セキュリティ診断 ≒ 攻撃
なので、自分の管理可にないシステムに対して、セキュリティ診断やそれに準ずる
行為は行ってはいけません。
じゃあ、なんでそんな話をするのかというと
・セキュリティに少しでも興味を持ってもらうため
・これしかネタがないため
■ セキュリティ診断とは
1) セキュリティ診断(擬似攻撃)により「脆弱性」を顕在化。
2) 優先度に沿って、適切な「対策」を実施。
Security
①診断(擬似攻撃)
による脆弱性検出
②優先度に応じ
「対策」
機密情報など
修正
■診断対象
OS / Middleware
オープンソースや商用製品に存在するセキュリティホールや設定不備などの脆弱性
を顕在化する。(プラットフォーム診断)
Webアプリケーション診断
仕様上の
欠陥 バグ脆弱性
Webアプリケーション
セキュリテ
ィホール
設定不備 脆弱性
OS/Middleware
プラットフォーム診断
Webアプリケーション
Webアプリケーションの画面表示や処理に存在する仕様上の欠陥やバグなどの個々の
画面に存在する脆弱性を顕在化する。(Webアプリケーション診断)
■ 「Webアプリケーション診断」っ
て?
診断対象
脆弱性の有無を判定
リクエスト
レスポンス
1)リクエストに攻撃パターンを付加。
2)レスポンスの内容から脆弱性の有無を判定。
Proxy
※Proxyが必要な理由
ブラウザ(IEなど)では、できることに制限があるため
例:ヘッダの改変、選択形式の入力項目に対する改変
都道府県:
性別: 男 女
東京都
Burp Proxy、Fiddler、Doormanなどがあります。
攻撃パターン付加
■ 「Webアプリケーション診断」は何する
の?
診断対象画面
ログイン画面
ユーザ名:
パスワード:
ログイン
様々な攻撃パターンを試行。
・「"><script>alert()</alert>」
・「'」
・「'|||'」
・記号やNull文字(空文字)
・5000バイトの文字列
1)各項目に数十~百パターン程度試行。
2)レスポンスの内容により、攻撃パターンを修正し試行。
「'」を入力
Webアプリ
「java.sql.SQLException:[Microsoft][ODBC
SQL Server Driver][SQL Server]オブジェク
ト名 'xxxx' は無効です。」が出力
リクエスト レスポンスブラックボックス
この結果なら、次は
「'+'」にしよう。
■いろいろ入力してみます。
アプリの動きを見切る。
SQL文の断片を入力しますが、それだけではありません。
脆弱性が存在していた場合に、正常に動作するパターンやエラーとなるパターン
も入力します。
① 文法通りのSQL文の断片
検索画面
検索: te'||'st
検索結果 20件
---
---
---
正常に動作するはず。
② 文法から逸脱したSQL文の断片
検査精度向上(誤検知を減らす)のために、いろいろ試すわけです。
検索画面
検索: te'|||'st
エラーにならないとおかしい。
エラーが発生しました。
SELECT * FROM goods WHERE name = ’ te’||’st ’ ;
SELECT * FROM goods WHERE name = ’ te’|||’st ’ ;
そもそもオマイは誰だ!!
■ SQL インジェクションでどう遊ぶ
いろいろあって、SQLインジェクションを見つけて、それで終わりでも
いいのだが、せっかくのSQLインジェクションなので遊んでみる。
①稼働しているデータベースの種類の特定
データベースの種類によって評価される関数などが異なります。その違いから
どんなデータベースなのか特定。
例:
・sysdate()やifnull()が評価されたらMySQL
・getdate()が評価されたらSQLServer
②接続ユーザの権限有無
アプリケーションで使用するデータベース接続ユーザの権限がどこまでできる子
なのか確認。すべてを特定するのは現実的に難しいので、いろいろと推測します。
例:
・SQLServerの場合、sysusersテーブルへのアクセス可否
・MySQLの場合、mysql.userテーブルへのアクセス可否
などなど
それだけはやめて
■ 遊びにもルールがある
どんな遊びにもルールがあるようにSQLインジェクションを見つけてもやっては
いけないこともある。
①「or」はあまり好ましくないんです。
②複文もあまり好ましくないんです。
UPDATE table SET password = ’ xxx’ WHERE id = 1 OR 1 = 1
全員のパスワードが「xxx」になってしまう。
UPDATE table SET password = ’ xxx’ WHERE flg = 1;SELECT 0;-- AND id = 1
「AND id = 1」 が評価されないため、「flg」が1であるユーザのパスワードが
「xxx」になってしまう。
ブラックボックステストなので、脆弱性が存在していれば対象システムを結果的に
壊すこともある。なので、テスト環境での実施をお勧めしてます。
評価されない
デモで・・・
会員情報変更画面
MySQLの場合、デフォルトだと文字列連結はconcat(文字列1,文字列2, ...)しか利用できないが、sql_modeにPIPES_AS_CONCAT
をセットすることでパイプ(||)で文字列連結となる。デフォルトでは設定されていない。
「'|| user() ||'」と入力するとDBへの
接続ユーザ名が表示される。
UPDATE users SET NAME = ' '|| user() ||' ' WHERE id = ’ $id ’;
「空文字」 "結合" user() "結合"「空文字」をセットしろ
接続ユーザ名が表示される
■ SQL インジェクション
文字列連結と論理和トラップ
MySQLの場合、「||」は論理和を意味しており、さらに暗黙の型変換が行われる
ため、文字列を入力されてもエラーとはならず評価されてしまう。そのため、
Oracleなどで動作する文字連結とは挙動が異なるため、思わぬ動作をしてしまう
場合がある。
■ SQL インジェクション
※表示上、半角スペースを入れてます。
No 評価内容 評価結果
① SELECT ' 数字(0以外) ' || ' 数字(0以外) ' 1
② SELECT ' 0 ' || ' 数字(0以外) ' 1
③ SELECT ' 文字列 ' || ' 数字(0以外) ' 1
④ SELECT ' 文字列 ' || ' 0 ' 0
⑤ SELECT ' 文字列 ' || ' 文字列 ' 0
UPDATE users SET password = 'xxx' WHERE id = '1' || '1';
全ユーザの「password」が「xxx」に変わってしまう。
論理和トラップを調査してみた
こんなテーブル(users)にデータをセット。
ID:varchar NAME:varchar
■ SQL インジェクション
ID NAME
1 aaa
2 bbb
3 cccc
a ddd
b eee
論理和の第二オペランドがTrueかどうかが肝。Falseの場合でも第一オペランドの値で
マッチする条件が対象となる。Trueの判定も最初の文字が0以外の数字ならいけちゃう。
(環境:CentOS MySQL5.1.67、WinXP MySQL5.6.11)
① SELECT * FROM users WHERE id = '1' || '1'; 実行結果:全5件出力された。
② SELECT * FROM users WHERE id = '1' || '0'; 実行結果:ID「1」のみ1件出力された。
③ SELECT * FROM users WHERE id = 'a' || '1'; 実行結果:全5件出力された。
④ SELECT * FROM users WHERE id = 'a' || '0'; 実行結果:ID「a」のみ1件出力された。
⑤ SELECT * FROM users WHERE id = 'a' || '1xx'; 実行結果:全5件出力された。
⑧ SELECT * FROM users WHERE id = 'c' || 1; 実行結果:全5件出力された。
⑥ SELECT * FROM users WHERE id = 'a' || '01'; 実行結果:全5件出力された。
⑦ SELECT * FROM users WHERE id = 'a' || 'x1'; 実行結果:ID「a」のみ1件出力された。
文字列連結と論理和トラップ
<結論>
データベースが特定できていない状況の場合、第2オペランドがFalseとなる
ような値にした方がいい。
入力例:「元の値'||'a」、「元の値'||'0」、 「元の値'||'あ」
入れない方がいい値:「元の値'||'数字(0以外の値)から始まる文字列」
※最初の1文字目が0以外の数字でTrueとして評価される。
■ SQL インジェクション
SELECT文の場合、全件出力されることの影響度は低いが、UPDATE文やDELETE文の
場合、全件を対象に実行されると影響度は高い。
■ 最後に
セキュリティって
SQLインジェクションって悪用された場合、影響度が非常に大きいので開発中から
注意して(ちゃんと対策してあるか)確認しながら実装してください。
SQLインジェクション以外にもいろいろあって、セキュアなWebシステムを維持し
続けることは非常に大変ですし、それを適切に助言することも大変です。
いろいろな人の助けが必要です。
セキュリティ業界はあなたの助けを必要としています。

More Related Content

What's hot

Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Preferred Networks
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
Masakazu Ikeda
 
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
zaki4649
 
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティスAWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティス
Amazon Web Services Japan
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
NTT DATA Technology & Innovation
 
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ  AWS IAMAWS Black Belt Techシリーズ  AWS IAM
AWS Black Belt Techシリーズ AWS IAM
Amazon Web Services Japan
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
akira6592
 
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)abend_cve_9999_0001
 
SQLインジェクション再考
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考
Hiroshi Tokumaru
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
AWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS CognitoAWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS Cognito
Amazon Web Services Japan
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
Kan Itani
 
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったことAWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
Takayuki Ishikawa
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
Kohei Tokunaga
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)Hiroshi Tokumaru
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
Yoshitaka Kawashima
 

What's hot (20)

Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
 
脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ脆弱性検査ツールってどうよ
脆弱性検査ツールってどうよ
 
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
 
AWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティスAWS Well-Architected Security とベストプラクティス
AWS Well-Architected Security とベストプラクティス
 
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
AWS Organizations連携サービスの罠(Security JAWS 第26回 発表資料)
 
AWS Black Belt Techシリーズ AWS IAM
AWS Black Belt Techシリーズ  AWS IAMAWS Black Belt Techシリーズ  AWS IAM
AWS Black Belt Techシリーズ AWS IAM
 
Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-Ansible 2.8 アップデート情報 -機能追加と注意点-
Ansible 2.8 アップデート情報 -機能追加と注意点-
 
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
フリーでできるセキュリティWeb編(SQLMあpを楽しもう)
 
SQLインジェクション再考
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
AWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS CognitoAWS Black Belt Online Seminar 2017 AWS Cognito
AWS Black Belt Online Seminar 2017 AWS Cognito
 
NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定NetApp XCP データ移行ツールインストールと設定
NetApp XCP データ移行ツールインストールと設定
 
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったことAWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
AWS導入から3年 AWSマルチアカウント管理で変わらなかったこと変えていったこと
 
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
 
ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?ソフトウェアにおける 複雑さとは何なのか?
ソフトウェアにおける 複雑さとは何なのか?
 

Viewers also liked

Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話
Muneaki Nishimura
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
Isao Takaesu
 
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
ichikaway
 
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack  proxyをぶん回せ 130821 owasp zed attack  proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
Minoru Sakai
 
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話
Muneaki Nishimura
 
Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話
Muneaki Nishimura
 
Ipsj77フォレンジック研究動向
Ipsj77フォレンジック研究動向Ipsj77フォレンジック研究動向
Ipsj77フォレンジック研究動向
UEHARA, Tetsutaro
 
ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策Hiroshi Tokumaru
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
zaki4649
 
辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか
ozuma5119
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
 

Viewers also liked (13)

Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話Mozillaの報奨金制度で200万円ほど稼いだ話
Mozillaの報奨金制度で200万円ほど稼いだ話
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
 
脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!脆弱性もバグ、だからテストしよう!
脆弱性もバグ、だからテストしよう!
 
130821 owasp zed attack proxyをぶん回せ
130821 owasp zed attack  proxyをぶん回せ 130821 owasp zed attack  proxyをぶん回せ
130821 owasp zed attack proxyをぶん回せ
 
Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話Mozillaの報奨金制度で100万円ほど稼いだ話
Mozillaの報奨金制度で100万円ほど稼いだ話
 
Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話Firefoxの日和見暗号がカジュアルに無効化された話
Firefoxの日和見暗号がカジュアルに無効化された話
 
Ipsj77フォレンジック研究動向
Ipsj77フォレンジック研究動向Ipsj77フォレンジック研究動向
Ipsj77フォレンジック研究動向
 
ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
 
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
 
いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか辞書攻撃をする人は何をどう使っているのか
辞書攻撃をする人は何をどう使っているのか
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 

Similar to Webアプリって奥が深いんです

ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
Takahisa Kishiya
 
Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様
yuki-f
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
Shintaro Hosoai
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
Yosuke HASEGAWA
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumilab
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
IIJ
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
Koichiro Sumi
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
Taiji Tsuchiya
 
ゼロから学ぶIoT
ゼロから学ぶIoTゼロから学ぶIoT
ゼロから学ぶIoT
Masaru Takahashi
 
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
Satoshi Nakada
 
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
fisuda
 
45分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 201245分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 2012
Yukio Saito
 
Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summaryYukio NAGAO
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
Masaki Yamakawa
 
クラウドセキュリティ基礎
クラウドセキュリティ基礎クラウドセキュリティ基礎
クラウドセキュリティ基礎
Masahiro NAKAYAMA
 
Elastic ML Introduction
Elastic ML IntroductionElastic ML Introduction
Elastic ML Introduction
Hiroshi Yoshioka
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project
Junichiro Tani
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Takashi Sogabe
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
 

Similar to Webアプリって奥が深いんです (20)

ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様Webセキュリティと W3CとIETFの仕様
Webセキュリティと W3CとIETFの仕様
 
Mqttで始めるIoT
Mqttで始めるIoTMqttで始めるIoT
Mqttで始めるIoT
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2Introduction to NetOpsCoding#2
Introduction to NetOpsCoding#2
 
ゼロから学ぶIoT
ゼロから学ぶIoTゼロから学ぶIoT
ゼロから学ぶIoT
 
AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!AWS IoT を使う上での Next Step!!
AWS IoT を使う上での Next Step!!
 
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
 
45分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 201245分で理解する ドッコムマスタートリプルスター受験対策 2012
45分で理解する ドッコムマスタートリプルスター受験対策 2012
 
Kobe sec#7 summary
Kobe sec#7 summaryKobe sec#7 summary
Kobe sec#7 summary
 
インメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギインメモリーで超高速処理を実現する場合のカギ
インメモリーで超高速処理を実現する場合のカギ
 
クラウドセキュリティ基礎
クラウドセキュリティ基礎クラウドセキュリティ基礎
クラウドセキュリティ基礎
 
Elastic ML Introduction
Elastic ML IntroductionElastic ML Introduction
Elastic ML Introduction
 
CgiSecure
CgiSecureCgiSecure
CgiSecure
 
【Tokyowebmining】open compute project
【Tokyowebmining】open compute project 【Tokyowebmining】open compute project
【Tokyowebmining】open compute project
 
Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)Tokyo ruby kaigi 10 (sogabe)
Tokyo ruby kaigi 10 (sogabe)
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 

More from abend_cve_9999_0001

Bypassing anti virus using powershell
Bypassing anti virus using powershellBypassing anti virus using powershell
Bypassing anti virus using powershell
abend_cve_9999_0001
 
ポートスキャンを擬人化してみた
ポートスキャンを擬人化してみたポートスキャンを擬人化してみた
ポートスキャンを擬人化してみた
abend_cve_9999_0001
 
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
abend_cve_9999_0001
 
Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)
abend_cve_9999_0001
 
Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介
abend_cve_9999_0001
 
バックアップファイルの管理
バックアップファイルの管理バックアップファイルの管理
バックアップファイルの管理
abend_cve_9999_0001
 
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
abend_cve_9999_0001
 
Your hash is.
Your hash is.Your hash is.
Your hash is.
abend_cve_9999_0001
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
abend_cve_9999_0001
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
abend_cve_9999_0001
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
abend_cve_9999_0001
 
Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
abend_cve_9999_0001
 
The vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayThe vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anyway
abend_cve_9999_0001
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
abend_cve_9999_0001
 
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらもしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
abend_cve_9999_0001
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
abend_cve_9999_0001
 
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
abend_cve_9999_0001
 
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
abend_cve_9999_0001
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)abend_cve_9999_0001
 

More from abend_cve_9999_0001 (20)

Bypassing anti virus using powershell
Bypassing anti virus using powershellBypassing anti virus using powershell
Bypassing anti virus using powershell
 
ポートスキャンを擬人化してみた
ポートスキャンを擬人化してみたポートスキャンを擬人化してみた
ポートスキャンを擬人化してみた
 
Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)Bypassing Windows Security Functions(ja)
Bypassing Windows Security Functions(ja)
 
Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)Bypassing Windows Security Functions(en)
Bypassing Windows Security Functions(en)
 
Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介Burp Suite Japanユーザグループ紹介
Burp Suite Japanユーザグループ紹介
 
バックアップファイルの管理
バックアップファイルの管理バックアップファイルの管理
バックアップファイルの管理
 
標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか標的型攻撃からどのように身を守るのか
標的型攻撃からどのように身を守るのか
 
Your hash is.
Your hash is.Your hash is.
Your hash is.
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
 
Nmap 9つの真実
Nmap 9つの真実Nmap 9つの真実
Nmap 9つの真実
 
Nmapの真実
Nmapの真実Nmapの真実
Nmapの真実
 
Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
 
The vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayThe vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anyway
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
 
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらもしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
 
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
 
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
 

Webアプリって奥が深いんです