まったり技術ブログ

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

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

今回はNetFlixが開発したOSSである「FlameScope』を利用して、Javaアプリケーションのパフォーマンスの可視化をしてみます。 最終的には上記画像のように、一定期間のCPU利用割合をメソッド単位で表示させてみます。 これを利用することで、どのメソッドがボ…

【※修正済み】【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 - リクエスト送信 編

今回は拡張プラグイン内からリクエストを送信し、レスポンス内容の表示までできるようにします。 具体的には、プロキシ等でキャプチャしたIHttpRequestResponseクラス内に定義されているリクエストを再送します。 完成物 機能としては、送信ボタンを押下する…

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

今回はBurp Suiteに新規タブ(画面)を追加していきます。 画面を追加することによって、複雑な機能を追加させることが可能になります。 完成物 「Alerts」タブの右側に新規に「Sample Tab Extender」という名前のタブが追加されているのが確認できます。 画像…

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

前回に引き続き、今回はBurp Suiteの機能を活かした拡張プラグインを作成していきます。 blog.motikan2010.com 完成物 今回作成するプラグインは下記のようなものになります。 まだ実用するには程遠いですが、Burp Suiteの特徴的な機能である 「リクエスト&…

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

Webアプリケーションのセキュリティを診断するツールとして、Burp Suiteが代表の1つとしてあり、拡張プラグインに頼らなくても標準の機能で多種類の診断を行うことができるほど多機能です。 しかし、Webアプリケーションによっては遷移方法が特殊な場合があ…

【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 できなかったよ。という方が本記事の方法も試してみてもいいかと。 動作環境 バージョン macOS 10.12.6 PHPBrew 1.22.6 PH…

Zend Framework2をHerokuで動かす

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

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

はじめに 準備 動作確認 clientToProxyRequest メソッド HttpRequestオブジェクトに用意されているメソッド HttpContentオブジェクトに用意されているメソッド proxyToServerRequest メソッド serverToProxyResponse メソッド HttpRequestオブジェクトに用意…

SQLインジェクション体験ツール『SQLI-LABS』で遊ぶ

はじめに 環境構築 インストール データベース設定 $ vim sql-connections/db-creds.inc データベース・テーブル初期化 動作確認 sqlmapでSQLi Less-1 (GET - Error based - Single quotes - String) Less-5 (GET - Double Injection - Single Quotes - Stri…

Sambaの脆弱性〜CVE-2017-7494をやってみる〜

はじめに 環境構築 Sambaのインストール事前準備 Samba(4.5.9)をインストール 外部からの通信許可 動作確認 Sambaアカウントの作成 外部からのSambaへの接続を許可する Sambaを起動 プロセスの確認 Sambaへ接続 PoCを試してみる 攻撃側 Samba側 PoCを実行 攻…

【セキュリティ】jwt-goを使ってみる - その2

はじめに 動作確認 署名アルゴリズムを改ざん ①トークンを取得 ②署名アルゴリズムを"none"に改ざんしてリクエストを送信 トークン発行時「SHA256」、検証には「none」 署名アルゴリズムを"none"に改ざんしてリクエストを送信 おまけ トークン発行時「none」…

【セキュリティ】jwt-goを使ってみる - その1

はじめに main.go 動作確認 サンプルなどでよく見られる"HS256"を使用 ①トークン必要URLにアクセス ②トークンを取得 ③発行されたトークンを送信 ④トークンを改ざんして送信 危険と言われている署名の検証なし"None"を使用 ①トークン必要URLにアクセス ②トー…

【knock】JSON Web Token(JWT)を使ってみる【セキュリティ編】

前回の続きです。 【Rails】JSON Web Token(JWT)を使ってみる - 実装編【knock】 - まったり技術ブログ 今回はJWTのセキュリティにふれてみます。 JWTは危険なのか ユーザによって値が改ざんされる危険性 knockはどうなのか アルゴリズムを「HS256」 ユーザi…

【Rails】JSON Web Token(JWT)を使ってみる - 実装編【knock】

github.com JSON Web Tokenの説明は下記の記事を参照。 qiita.com

【Webセキュリティ】ボタンを重ねない『クリックジャッキング』の話

Trap Site はじめに 2017年度に入りましたが、昔ながらのクリックジャッキングの話 『クリックジャッキング』ってなんぞやという方は下の記事が大変解りやすいかと。 blog.tokumaru.org

【Go言語】パスワードをハッシュ化(bcrypt)

はじめに 「sessionauth」を使ってのパスワード保存状態 パスワードのハッシュ化 パスワード文字列とハッシュ値を比較 認証のデモ 出力結果 更新履歴 はじめに 本記事は、 ・bcrypt.GenerateFromPassword ・bcrypt.CompareHashAndPassword を使ってみる話で…

Webフレームワーク『Gin』を使ってみる

はじめに 実装 1. HTMLテンプレートを呼び出す 1-1. HTMLテンプレート作成 1-2. 動作確認 2. コントローラを作る 2-1. タスク一覧を渡すコントローラ作成 2-2. コントローラの呼び出し 2-3. テンプレートを修正 3. モデルを作成して、DBにタスクを保存する 3…

phpbrewでGDライブラリを入れようとしたらエラーになった

PHP

結論から言いますとGDライブラリはyumでインストールすることができなかったので、 結局ソースからインストールしました。 "phpbrew install"が失敗した phpbrewでGDライブラリを入れようとしたら下記のようなエラーが表示された。 $ phpbrew install 5.6.26…

【IoTセキュリティ】Bluetoothプロキシ『btproxy』を使う

はじめに btproxyをRaspberryPi3に導入 BlueZをインストールする前の下準備 必要パッケージのインストール(※失敗) APTのパッケージリストの更新 再び必要パッケージのインストール BlueZ − インストール btproxy − インストール btproxyを使う 動作確認 通信…

【PHP】『Goutte』を使って文字列からHTML解析

PHP

はじめに 「"通信を発生させずにHTMLを解析"をしたい・・・」という要望がであったので執筆。 今までPHPでHTML解析するときは「Simple HTML DOM Parser」を利用しており、数年ぶりの利用で使い方を確認していると下記のような記事がありました。 localdisk.h…

『Laravel Collective』でのHTML生成を簡単にまとめてみる(Laravel 5.3)

はじめに LaravelでRailsの"link_to"のようにHTMLを生成できないのかと思い、探してみたら『Laravel Collective』というものがありました。 導入方法などは下記を参照。 LaravelCollective | HTML v5.3 HTML出力のイメージができないところがありましたので…

【Laravel 5.3】『Scaffold』と『Auth』を使ってアプリケーションを作る

はじめに 構築 プロジェクトの作成 Scaffoldの導入 サービスプロバイダーの追加 scaffoldの実行 ルーティングの設定 データベースの作成 マイグレーション Webアプリケーションへアクセス 認証機能(Auth)の導入 魔法の呪文『make:auth』 認証の確認 認証後の…

golang製ベンチマークツール『hey』を使ってみた

はじめに 百聞は一見に如かず「hey」を使う インストール 動作確認(オプションを指定) GETリクエストを送信 POSTリクエストを送信 Basic認証に対応 まとめ 更新履歴 はじめに Web界隈では「Apache Bench」「JMeter」などのベンチマークツールが有名ですが、…