まったり技術ブログ

Webエンジニア向けのセキュリティブログ

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 メソッド) プ…

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

はじめに 環境構築 インストール データベース設定 データベース・テーブル初期化 動作確認 Less-1 (GET - Error based - Single quotes - String) Less-5 (GET - Double Injection - Single Quotes - String) Less-10 (GET - Blind - Time based - double q…

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

はじめに 動作確認 サンプルなどでよく見られる"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セキュリティ】ボタンを重ねない『クリックジャッキング』の話

はじめに 検証 クリックジャッキングを成立させることは難しいのか どこをクリックしてもターゲットとなるボタンを押下させる ターゲットとなるiframeは下記のように記述 divがマウスカーソルに追跡するように記述 はじめに ▼ デモサイト Trap Site 2017年度…

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

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

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…

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

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

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

PHP

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

『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 は 2020年8月6日のリリースからアップデートされていません。 はじめに 百聞は一見に如かず「hey」を使う インストール 動作確認(オプションを指定) GETリクエストを送信 POSTリクエストを送信 Basic認証に対応 まとめ 更新履歴 はじ…

Webサーバベンチマークツール『weighttp』をさわってみる

はじめに 導入 configure 実施 configure 実行(失敗: Python3で動かしたことが原因) configure 実行(2度目の失敗: ev.hが見つからなかった) ヘッダファイル"ev.h"を移動 configure 実行(成功!!) ビルド インストール 「weighttp」コマンドの動作確認 「w…

【Rails】キャプチャ認証『SimpleCaptcha2』を使ってみる

はじめに 環境確認とアプリの作成 (失敗)『simple-captcha』のセットアップ 『SimpleCaptcha2』のセットアップ 改めて「rails generate simple_captcha」コマンド テストアプリを作成 ビューを変更 ブラウザでキャプチャの確認 キャプチャ画像を表示 正常…

『Pythonだけ』でHTTPSサーバ

はじめに HTTPS通信に使用するサーバ証明書の作成 アプリケーションの準備 依存Pythonライブラリのインストール ソースコード 動作確認 ブラウザ curlコマンド 参考 更新履歴 はじめに Secure属性を付与したCookieの取り扱いなど簡単な検証で重宝しています…

【Python】キーボード入力文字列をバイナリデータへ変換

関数inputで入力された値は文字列型として扱われる。 「16進数 → 10進数 → バイナリデータ」の順で変換しています。 import struct def main(): str = input() str_list = str.split(" ") f = open('test.dat', 'wb') for hex in str_list: f.write(struct.p…