Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#BurpISTE v0.2.0の新機能+BSQLi復習 / What's New in ISTE v0.2.0 and Explanation of BSQLi

2c4ef0f20c4f05ca30e6c9917f0c17b6?s=47 okuken
April 22, 2021

#BurpISTE v0.2.0の新機能+BSQLi復習 / What's New in ISTE v0.2.0 and Explanation of BSQLi

Webアプリケーション脆弱性診断員を煩雑な作業から解放し、全集中へと導く Burp extension 「ISTE: Integrated Security Testing Environment」の v0.2.0 新機能紹介と、それに絡めてBSQLiを解説します。
ハッシュタグ:#BurpISTE

2c4ef0f20c4f05ca30e6c9917f0c17b6?s=128

okuken

April 22, 2021
Tweet

Transcript

  1. #BurpISTE v0.2.0 の新機能 + BSQLi 復習 @okuken3 2021.04.22 第6回 初心者のためのセキュリティ勉強会

  2. 0. 自己紹介 1. ISTE v0.2.0 の新機能  1-1. ISTE: Integrated Security

    Testing Environment  1-2. ISTE v0.2.0 の新機能  1-3. ISTE v0.2.0 の改善点  1-4. デモ 2. BSQLi 復習  2-1. SQL Injection  2-2. Blind SQL Injection 3. まとめ Agenda
  3. Kenichi Okuno  Twitter: @okuken3 略歴  1. SIerで色々  2. 業務パッケージベンダで開発  3.

    Web事業会社でプロダクトセキュリティチーム立上げ  4. 情報セキュリティサービス会社でWeb脆弱性診断 最近の出来事  ・ISTE v0.2.0 公開  ・Among Us 楽しい(上手くはない)
  4. ISTE v0.2.0 の新機能

  5. ISTE: Integrated Security Testing Environment Webアプリケーション脆弱性診断員を 煩雑な作業から解放し 全集中へと導く 全部入り環境な Burp

    extension 2021年2月19日 公開 (v0.1.0) https://github.com/okuken/integrated-security-testing-environment
  6. ISTE v0.2.0 の新機能 機能 概要 起動経路 Blind SQL injection 検出済みBSQLi脆弱性を利用したデータ

    抽出作業を自動化する機能 ※1 ISTE > List > (Context menu) > Exploit > Blind SQL injection URL一覧の コピーテンプレート設定 URL一覧内のレコードをクリップボード にコピーする際のテンプレ設定機能 ISTE > Options > User options > Copy templates URL単位メモの テンプレート設定 プロジェクト単位メモと同様に、URL単 位メモのテンプレを設定する機能 ISTE > Options > User options > Note templates > List Send To Repeat履歴 URL一覧内の特定URLのRepeat履歴に Send Toする機能 Proxy > HTTP history > (Context menu) > Send to ISTE as history of repeat ※1 脆弱性診断において、BSQLi脆弱性が利用可能であることの証明を目的として、バージョン情報等を抽出する際に用いる。   対象システムの管理者の許可なく実行しないよう注意すること。(不正アクセス禁止法等の法令違反に当たる可能性がある)
  7. 対象機能 改善点 Repeater ・アカウント指定Repeatに、「セッション更新+送信」機能を追加した(Shift + Send) ・Sendボタンにキーボードニーモニックを設定した(Alt + S) ・アカウント選択時に表示するセッションIDを、右クリックでコピーできるようにした

    URL一覧 ・使用中のISTEプロジェクトの名前とBurpプロジェクト名が異なる場合に、誤操作防止の観点 から、プロジェクト名を赤文字表示(警告表示)するようにした ・ISTEプロジェクト選択ダイアログにおいて、Burpプロジェクト名と同名のISTEプロジェクト を強調表示するようにした ISTE v0.2.0 の改善点
  8. 1. 復習  - 基本の流れ  - アカウント指定リピート 2. v0.2.0の新機能  - 改善点

     - 新機能 デモ
  9. BSQLi 復習

  10. 出典:https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_1.html 出典:https://jvndb.jvn.jp/ja/cwe/CWE-89.html SQL Injection とは

  11. SQL Injection の例 出典:https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_1.html 出典:https://jvndb.jvn.jp/ja/cwe/CWE-89.html

  12. Blind SQL Injection とは 出典:https://owasp.org/www-community/attacks/Blind_SQL_Injection

  13. Blind SQL Injection の方法 参考:https://portswigger.net/web-security/sql-injection/blind 真偽の判別方法 利用ケース 判別例 レスポンス内容の差異 SQLiによる取得データそのものはレス

    ポンスに出力されないが、レスポンス 内容に差異を出せるケース ログイン成功 / 失敗 エラー発生の有無 レスポンス内容に差異は出せないが、 SQLでエラーを発生させることで、異 常レスポンスを得られるケース 正常(200) / 異常(500) レスポンス遅延の有無 SQLエラーでも異常レスポンスを得ら れないが、同期処理中に発行される SQLであり、遅延を検知できるケース 遅延有り / 無し 外部通信発生の有無 非同期処理中に発行されるSQLである ため遅延は検知できないが、SQLiで外 部通信をさせることが可能なケース 通信有り / 無し
  14. Blind SQL Injection の例 真偽の判別方法 ペイロード例(MySQL) / ISTE設定例 レスポンス内容の差異 xxx'

    and (SELECT ASCII(SUBSTRING(version(),3,1))) < 64 and ''=' xxx' and (SELECT ASCII(SUBSTRING(version(),$ISTE:INDEX$,1))) $ISTE:OPEVAL$ and ''=' エラー発生の有無 xxx' and (SELECT IF(ASCII(SUBSTRING(version(),3,1))<64,(SELECT table_name FROM information_schema.tables),0))=0 and ''=' xxx' and (SELECT IF(ASCII(SUBSTRING(version(),$ISTE:INDEX$,1))$ISTE:OPEVAL$, (SELECT table_name FROM information_schema.tables),0))=0 and ''=' レスポンス遅延の有無 xxx' and (SELECT IF(ASCII(SUBSTRING(version(),3,1))<64,(select sleep(1)),0))=0 and ''=' xxx' and (SELECT IF(ASCII(SUBSTRING(version(),$ISTE:INDEX$,1))$ISTE:OPEVAL$,(select sleep(1)),0))=0 and ''=' 外部通信発生の有無 (ISTE未対応)
  15. 脆弱性診断でBSQLi脆弱性を検出したけれど、データ抽出作業が面倒…  ⇒ ISTEのBSQLi機能を使って楽しよう ISTEでURL一覧を作っても、Excelや独自システムへの転記、ちょっとした共有が面倒…  ⇒ 「クリップボードにコピー」の自分最適テンプレを作って楽しよう まとめ \ISTEでWeb診断員を全集中へ/ GitHubスターで応援お願いします! 目標:5月中に50スター達成

  16. ご清聴ありがとうございました