まったり技術ブログ

Webエンジニア向けのセキュリティブログ。たまに開発も

【Python】Waitress の ReDoS をやってみる(CVE-2020-5236)

いらすとや産のPython はじめに Waitress とは 検証 検証バージョン 環境構築 ReDoS をしてみる 脆弱なバージョン 1.4.2 パッチ適用バージョン 1.4.3 脆弱性が存在しないバージョン 1.4.1 脆弱性を掘り下げる 修正コミット 修正前 と 修正後 の正規表現 簡単…

【Webセキュリティ】依存ライブラリのセキュリティチェックツール(SCA)を使ってみる

はじめに 言語別 ツール一覧 PHP sensiolabs / security-checker 使い方 脆弱性データベース Web版 Ruby rubysec / bundler-audit 使い方 脆弱性データベース - rubysec / ruby-advisory-db Python pyupio / safety 脆弱性データベース 使い方 詳細情報レポ…

2018年 人気脆弱性 TOP 10 in GitHub

はじめに TOP 10 10位 541 ポイント 『Intel Core マイクロプロセッサを搭載したシステムにおける情報漏えいに関する脆弱性(CVE-2018-3620 通称「Foreshadow」)』 9位 575 ポイント 『Intel ハードウェアアーキテクチャのデバッグ例外を適切に処理していない…

2019年 人気脆弱性 TOP 10 in GitHub

はじめに TOP 10 10位 501 ポイント『Pulse Secure Pulse Connect Secure におけるパーミッションに関する脆弱性(CVE-2019-11510)』 9位 522 ポイント『Canonical snapd における入力確認に関する脆弱性(CVE-2019-7304)』 8位 545 ポイント『Firefox および …

【Python】Selenium側からネットワーク情報を取得する

はじめに 動作環境 取得対象 実装 パフォーマンス情報の取得 ブラウザが読み込むリソースのURLを取得 まとめ 更新履歴 はじめに Selenium側からページが読み込むリソース情報(URL)を取得する方法を紹介します。 言語はPythonを使います。 動作環境 Python 3.…

PHP-FPM RCE(CVE-2019-11043)の攻撃をAWS WAFでブロック

はじめに AWS WAFの設定 文字列マッチの条件を作成 ルールを作成 ACLにルールを追加 攻撃がブロックされることを確認 参考 更新履歴 はじめに 先日、PHP-FPMにRCEの脆弱性(CVE-2019-11043)があることが公表されました。 脆弱性の詳細について本記事で説明し…

Laravelで学ぶ「安全でないデシリアライゼーション」

はじめに 環境 事前知識 1つのPHPファイルでやってみる なぜOSコマンドが実行されたのか なにが問題なのか Laravel でやってみる 修正内容 脆弱性の確認 OSコマンド呼び出し部分の確認 Illuminate/Broadcasting/PendingBroadcast クラス Faker/Generator ク…

【セキュリティ】motikan2010作サイト『オープンハニーポット』とは

※金欠の為、サービスは終了いたしました。 はじめに どのようなサイト? 各画面の説明 トップ リクエスト一覧 リクエスト詳細 時間別アクセス数 日別アクセス数 ログイン画面 今後 参考 更新履歴 はじめに 前回のブログ更新から1ヶ月以上経ち、たまには更新…

OWASP Security Shepherdで入門するWebセキュリティ

「OWASP Security Shepherd」はWebセキュリティを学ぶことができるアプリケーションです。 Webフレームワークを用いた場合にでも発生する可能性が高い脆弱性が主に取り上げられており、実際にそのような脆弱性に攻撃する経験をすることができます。 Webフレ…

CVE-2019-11581 - 「Atlassian JIRA サーバーサイド・テンプレート・インジェクション」について調べてみた

はじめに 概要 脆弱性についてより詳しく 検証情報(キャプチャ画像有り) PoC(検証コード) 検証 検証パッケージ(Jira Server 7.13.4) Jira Server インストール手順(AWS) 攻撃可能な設定 対応 まとめ 追記 更新履歴 はじめに プロジェクト管理ツールと…

最悪の管理画面URLランキング

はじめに 確認したツール 最悪な管理画面URLランキング 1位 - 全てのツールで検索対象 2位 - 5つのツールで検索対象 3位 - 4つのツールで検索対象 4位以下 - 1~3つのツールで検索対象 まとめ 更新履歴 はじめに Webサイトの管理画面が推測されることにより、…

WAF for Nginx「NAXSI」を動的モジュールとして読み込む

NAXSIのロゴ はじめに 環境 導入作業 Nginxインストール リポジトリ追加 インストール NAXSIモジュールをビルド NAXSIモジュールのロード ログファイルの作成 Nginx設定ファイル修正 Nginxの起動 動作確認 不正なリクエストを送信 検出ログ ブロックはしたく…

CookieのSameSite属性で「防げるCSRF」と「防げないCSRF」

CookieのSameSite属性はCSRF対策のために提案されたもので、その属性をCookieに付与するだけでほとんどのサイトの場合はCSRF対策が可能になります。 しかし、SameSite属性の付与が今までのCSRF対策の代わりになり、今まで行ってきたCSRF対策をしなくてよくな…

LaravelのセッションCookieにSameSite属性を付与

はじめに TL;DR 検証環境 SameSite属性とは SameSite属性が付与されるように設定 設定変更 設定前に発行されるCookie情報 対応Laravelバージョンについて 設定ファイルの編集 確認 設定後に発行されるCookie情報 まとめ 参考 更新履歴 はじめに Cookieの属性…

【開発日誌】Konva.Transformerのスタイル変更

TL;DR ・「Konva.Transformer」コンストラクタの引数を指定することでデザインを変更可能 背景 先日開発したWebアプリケーションでは下画像を見たら分かるようにアンカーをドラッグすることによって画像のサイズ・角度を変えられるようになっています。 ↓そ…

RedshiftのスナップショットをAWS CLIで取得

AWS

はじめに 実現方法 スナップショットを取得 スナップショットの削除 取得と削除をまとめる 参考 はじめに Redshift で3世代分を残すようなスナップショットの取得方法がやりたかったので、その備忘録。 Bashで実行しています。 実現方法 スナップショットを…

TLS1.2のみ許可しているWebDAVサーバをマウントできない

はじめに 検証用WebDAVサーバ エラー発生 原因 現在のバージョン確認 解決策 アップデート後のバージョン 動作確認 はじめに 最近、セキュリティ強化の為にTLS1.1以下の接続を不可にするようなサービスが増えてきています。 勝手にTLS1.2で接続されるだろう…

【随時更新】Webセキュリティ診断ツールのまとめ

GUIアプリケーション型 Burp Suite OWASP ZAP zap-cli Fiddler Vex Watcher X5S コンソールアプリケーション型(CUI型) SQLMap NoSQLMap w3af Arachni (終了) SCNR Scan My Server (※提供終了) WhatWeb Skipfish Nikto Vega Grabber Wapiti WebScarab Ratpr…

LDAPインジェクションをしたかった話【セキュリティ】

はじめに 検証環境 ホスト コンテナ 構築 OpenLDAP LDAPクライアントアプリケーション 1. アプリケーションの用意 2. コンテナの準備 3. コンテナの実行 動作確認 OpenLDAPの動作確認 予想外の事態発生 脆弱性の検証 正常系の動作確認 脆弱性の確認 ダメな対…

【AWS】ECSで構築した環境でオートスケーリング

はじめに 今回やりたいことのイメージ 構築の流れ この記事で作成するリソース 構築 1. IMA ロールの作成 2. 空のECSクラスタの作成 3. Auto Scaling 起動設定の作成 EC2起動時にECSコンテナインスタンスとして登録する 4. Auto Scaling グループの作成 5. A…

【AWS】Security-JAWSの資料まとめ【第5~9回】

講演資料・スライド 第9回 ◆ 【SecurityJAWS】Kibana Canvasで魅せる!AWS環境における脅威分析ユースケース 【SecurityJAWS】Kibana Canvasで魅せる!AWS環境における脅威分析ユースケース from Hibino Hisashi www.slideshare.net ◆ Security JAWS 【第9回…

【開発日誌】『生つべ』というサービス作ったので利用技術の紹介

先日、『生つべ』というWebサービス開発しました。リリースをしたのはよいが「完成!」と言えるような状態になるのは、まだまだ時間が掛かりそう。 どのようなサービスなのかを簡単に説明をすると「YouTubeの動画を皆で見ながらチャットしようよ」というもの…

Unityビルド時の「AndroidSDKToolsException エラー」の解決

はじめに 発生したエラー 解決方法 参考 はじめに Oculus Go向けにUnityプロジェクトのビルドを実施したらときにエラーになる場合があったので、その解決方法。 発生したエラー /Users/admin/unity/OculusGoSample/Temp/StagingArea/AndroidManifest-main.xm…

FlameScopeを使ってJavaアプリのパフォーマンス可視化

はじめに 検証環境 環境構築 perf インストール FlameScope インストール 検証用Javaアプリケーションの導入 perf-map-agent インストール プロファイリング開始 Javaアプリケーションの起動 Javaアプリケーション用のマッピングファイル(*.map)の作成 プロ…

【※修正済み】【Embulk】MySQL から Redshift へのレコードコピーで「改行&タブが消える」

まず、MySQLからRedshiftへのコピーなんて「Amazon Data Pipeline」を利用しろよと思われますが、そんなお金はない(※調べてみるとクソ安かった)。 なので、Embulkを利用して MySQLに格納されているデータをRedshiftへコピーしてみました。 そしてタイトル…

【embulk-input-redshift】大量データでエラーが発生したのでメモ

最近、Embulkを使い始めましたが、想像していたよりも便利でした。データ量によってはエラーも発生するみたいでしたので、メモ程度に書き留めておく。 github.com Redshift上のデータをCSVファイルとして保存したり、その逆で、CSVファイルに記載されてるデ…

XSSI(Cross-Site Script Inclusion)攻撃とは【セキュリティ】

はじめに 攻撃名からの勝手な予想(※誤り) 結局何ができるのか Same-Origin Policyを確認 XSSIは結局何ができるのか 脆弱性が存在するサイト(bank.example.jp) トップページ(index.php) シークレットコードを生成し、JSONPを活用(userdata.php) 攻撃…

Burp Suite拡張プラグイン作成入門 その4 - リクエスト送信 編

はじめに 完成物 開発 RequestTableManager.java SampleTab.java まとめ 更新履歴 はじめに 今回は拡張プラグイン内からリクエストを送信し、レスポンス内容の表示までできるようにします。 具体的には、プロキシ等でキャプチャしたIHttpRequestResponseクラ…

Burp Suite拡張プラグイン作成入門 その3 - 新規UI(タブ)追加 編

はじめに 完成のイメージ Burp Suite Extender レイアウト 学ぶこと レイアウト確認用 拡張プラグイン ディレクト構成 BurpExtender.java SampleTab.java 開発 BurpExtender.java SampleTab.java レイアウトの設定 FlowLayout (フローレイアウト) GridLayout…

Burp Suite拡張プラグイン作成入門 その2 - リクエスト&レスポンス取得 編

はじめに 完成のイメージ 学ぶこと 実装 ディレクトリ構造 各機能の実装 BurpExtender.java RequestContextMenu.java ResponseContextMenu.java RequestResponseUtils.java 更新履歴 はじめに 前回に引き続き、今回はBurp Suiteの機能を活かした拡張プラグイ…