まったり技術ブログ

主にITエンジニア向けの記事を書いていきます

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

f:id:motikan2010:20190617024001p:plain
  • はじめに
  • 確認したツール
  • 最悪な管理画面URLランキング
    • 1位 - 全てのツールで検索対象
    • 2位 - 5つのツールで検索対象
    • 3位 - 4つのツールで検索対象
    • 4位以下 - 1~3つのツールで検索対象
  • まとめ

はじめに

 Webサイトの管理画面が推測されることにより、サイトの改ざん等の被害が増えてきているようで、先月(5/9)にEC-CUBEでは下記のような注意喚起がありました。
 以下、注意喚起の一部抜粋。

  1. 管理画⾯の URL が /admin/ など推測されやすい URL になっていないか 管理画⾯の URL を変更せず /admin/ のままで運⽤していた場合、攻撃者が管理画⾯にア クセスしやすい状況になっておりますので、 早急に変更をお願いします。

【重要】サイト改ざんによるクレジットカード流出被害が増加しています。

 ここで述べられている推測されやすいURLの代表例として、ツールによって発見されるURLであることがあります。
 なので今回は各ツールがどのようなURL(管理画面へのパス)を検索しているのかを調べてみました。

確認したツール

 今回確認したツールは以下の6つです。

  • OWASP ZAP
  • Arachni
  • Nikto
  • skipfish
  • Wfuzz
  • WAScan

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

1位 - 全てのツールで検索対象

admin
administrator

 「admin」「administrator」パスはツール全てで検索されていました。

 EC-CUBEでは、インストール時に管理画面のパス名を指定することができるようになっていますが、「admin」というパス名は指定できないようになっており「admin」がパスとして利用される危険性の考慮がされていることが分かります。 「admin」を管理画面のパスに指定すると、下記のエラーメッセージが表示されます。 f:id:motikan2010:20190616204123p:plain:w500

続きを読む

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

NAXSI-Logo
NAXSIのロゴ

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

はじめに

 NAXSI(Nginx Anti XSS & SQL Injection)はOSSのWAFであり、スター数が3,000を超える人気を誇っており、利用してみたくなったので、インストールしてみました。
 ちなみにOSSのWAFとして有名なModSecurityのスター数は約2,800です。(NAXSIすごい...)

github.com

環境

  • CentOS 7.4
  • Nginx 1.16.0
  • NAXSI
続きを読む

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

f:id:motikan2010:20190202110454p:plain

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

 CSRF対策の為に提案された属性ですが、サイトの特性によってはCSRFを防ぐことができない場合があります。
今回は、その「防げないCSRF」とはどういったものであるのか、一例をあげます。

 そして実際にSameSite属性付与が付与される脆弱なサンプルサイトを使って説明していきます。

目次

  • 目次
  • TL;DR
  • サンプルアプリケーションを用いての検証
    • サンプルサイトの機能
    • CSRFの確認
      • CSRFトークンを用いている場合
      • SameSite属性を用いている場合
  • まとめ

TL;DR

  • 「防げるCSRF」とはセッションが存在しているサイト
  • 「防げないCSRF」とはセッションを利用していないサイト
  • SameSite属性は充分にCSRF対策の効果がある
続きを読む

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

 Cookieの属性に「Domain」「path」「Max-Age」「Expires」「Secure」「HttpOnly」があるが、 『SameSite』というのも存在していることを知っていたか!? 私は知らんかった...。
 2016年から存在しており現在では主要なブラウザではサポートされているらしい。

そんな認知度が低そうな属性をLaravelで設定できるのかを確認してみる。

TL;DR

  • Laravel 5.5.0 からサポート
  • config/session.php でSameSite属性の値(Strict / Lax)の設定可能

目次

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

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

f:id:motikan2010:20190127165714p:plain

TL;DR

・「Konva.Transformer」コンストラクタの引数を指定することでデザインを変更可能

背景

 先日開発したWebアプリケーションでは下画像を見たら分かるようにアンカーをドラッグすることによって画像のサイズ・角度を変えられるようになっています。
↓そのWebアプリケーション
『挑戦者が現れました』メーカー

続きを読む