まったり技術ブログ

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

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セキュリティ診断ツールのまとめ

Webセキュリティ診断ツール比較サイト sectoolmarket.com Webセキュリティ診断ツール比較サイト GUIアプリケーション型 Burp Suite OWASP ZAP zap-cli Fiddler Watcher X5S コンソールアプリケーション型 SQLMap NoSQLMap w3af Arachni (終了) Scan My Serve…

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の機能を活かした拡張プラグイ…

Burp Suite拡張プラグイン作成入門 その1 - Hello world編

はじめに 拡張プラグインのストア「BApp Store」 開発環境 実装 1. ディレクトリ構造 2. Burp拡張ライブラリ(Burp Extender API)の取得 pom.xml の編集 3. Javaファイルの作成 4. プラグインに名前を付ける 5. 「Output」タブに表示 6. 「Errors」タブに表示…

【THE 備忘録】Burp Suiteを使ってHTTPSサイトにアクセス

はじめに やること 使ったブラウザ 手順 1. 初期状態だと証明書エラー 2. 証明書のダウンロード 3. インポート済みの証明書一覧を表示 4. ダウンロードした証明書をインポート 5. ダイアログの上部にチェック後、「OK」 6. 証明書がインポートがされたことを…

【Java】GsonとJacksonのJSONパース処理速度を比べてみる

はじめに 比べるライブラリは下記の2種類 Gson Jackson 下記のパターン(特徴)で比較 処理速度の計測方法 "Gson"を使ったJSON文字列の作成・解析 "Jackson"を使ったJSON文字列の作成・解析 ノーマル インスタンス → JSON JSON → インスタンス 特徴 : Date型…

【Java】レイアウトを使ってみる【JavaFX】

説明するレイアウト一覧 コピペで実行する場合の注意点 各レイアウトの説明 VBox クラス HBox クラス FlowPane クラス HBox クラスとの違い HBox クラス FlowPane クラス BorderPane クラス GridPane クラス TilePane クラス StackPane クラス 更新履歴 説明…

【Java】Specificationインタフェースを利用した副問合せ

はじめに 実装 サンプルテーブル コード ファイル構成 Specification BadUserSpec.java エンティティ(モデル) User.java Tweet.java メタモデル User_.java Tweet_.java リポジトリ UserRepository.java 呼び出し側 DbappApplication.java 発行SQL 更新履…

【PHP】PHPBrewに"intl"拡張をインストール

PHP

2017/11/07 ※追記 こちらのやり方が簡単!! GJ $ phpbrew ext install intl -- --with-icu-dir="$(brew --prefix icu4c)" qiita.com 上記の方法ではできなかったよ。という方が本記事の方法も試してみてもいいかと。 ことの始まり CakePHP3を入れたのだが、…

Zend Framework2をHerokuで動かす

はじめに Zend Framework2 インストール Procfileの作成 Herokuへデプロイ 動作確認 はじめに 最近ZF2をさわり始めたので、メモ程度に書いてみる。 ちなみにHerokuはHTTPS前提なのでFacebookのOAuth認証といったHTTPSが必要となる動作確認で重宝した。 Zend …

Java製HTTPプロキシライブラリ『LittleProxy』入門編

はじめに 準備 動作確認 クライアント → プロキシ 通信(clientToProxyRequest メソッド) HttpRequestオブジェクトに用意されているメソッド HttpContentオブジェクトに用意されているメソッド プロキシ → サーバ 通信(proxyToServerRequest メソッド) プ…