Linux Socket

  • ソケット層の関数群




  • Socketライブラリ

  • プロトコルファミリ
    ★AF_INET
      標準的なIPv4アドレスやホスト名を使用するための設定

    ★AF_IPX
     IPXを使用するための設定

    ★AF_PACKET
     デバイスレベルのパケットインターフェースを提供。
     L2フレーム付のパケットを取得できる。
     Linux2.2からの新機能。
     
  • ソケットタイプ

    ★SOCK_STREAM
      TCPを用いるための設定。

    ★SOCK_DGRAM
     UDPを用いるための設定。

 

参考サイト:

enakai00.hatenablog.com

ブラインドSQLインジェクション

  • 概要
    レスポンスに変化がない場合の、完全なブラインドSQLインジェクション
    について調べたことをメモ。


  • ブラインドSQLインジェクション
    以下2つの種類があるらしい。
    ★通常のブラインド
      ページ上にレスポンスはないが、HTTPのステータスコードやクエリのレスポンス結果を元に判別。

    ★完全なブラインド
      画面・HTTPステータス・クエリのレスポンスなど、いずれの結果にも差異がない場合に、コマンドの出力時間などを利用し判別するもの。


  • よく使用されるコマンド
    ★benchmark(試行回数 , 動作 )(MySQL
      本来は指定したSQLを指定回数だけ実行して処理にかかった時間を測定するためのもの。
      ※webサーバの処理能力を限界まで使用していしまうので注意がいるらしい。

    mysql> SELECT BENCHMARK(1000000, MD5(1));

      ※MD5('文字列' or 列名) :MySQLMD5を使用するためのコマンド。
      
     参考サイト:https://www.qoosky.io/techs/3a369dd466

    ★pg_sleep(seconds)(PostgreSQL
      ()内の数字の秒数だけコマンド実行を遅らせる。

    ★WAIT FOR DELAY '0:0:10'
      '時間:分:秒'の指定ができる。→ '時間:分:秒:xx'で1秒以下の指定も可。
    参考サイト:SQL Injection Cheat Sheet

【追記】mariadbのバージョンアップ【5.3 → 10.2】

  • 追記

    DBのエラー対応について
    前回のエラー対応時に、innodbを掴んだままのプロセスを調べ
    該当プロセスをkillすることで対応したが、あのやり方は危険頼しいので追記。

    ★DBを特定のプロセスが掴んだまま強制終了させると
     DBが壊れてしまう可能性があるので、対応としては最後の手段。
     前回のような場合は、wordpressか何かのアプリケーションがinnodb
     掴んだままになっていたので、そのアプリケーションを終了させdbを開放
     するのがベストとのこと。

    次回から気を付けよう。

wordpressインストール時のメモ

■インストールは以下のサイトを参考

CentOS 7 : Apache httpd : WordPress インストール : Server World

 

1.phpインストー

-------------------------------------------------------------------------------------------------------------

php-mbstring

mb_convert_encoding、マルチバイト文字列関連の関数に必要

 

php-pearExtension and Application Repository)

PHPで利用する事ができるライブラリ(パッケージ)を提供しているサービス

 

2.MariaDBインストー

-------------------------------------------------------------------------------------------------------------

・grant all privileges 

以下の項目に対して権限付与

SELECT
指定したテーブル、ビュー、シーケンスの任意の列に対する SELECT を許可します。また、COPY FROM の使用も許可します。

INSERT
指定したテーブルへの新規行の INSERT を許可します。また、COPY TO の使用も許可します。

UPDATE
指定したテーブルの任意の列に対する UPDATE を許可します。 SELECT ... FOR UPDATE は(SELECT 権限に加え)この権限を必要とします。シーケンスでは、この権限により nextval、currval、 setval の使用を許可します。

DELETE
指定したテーブルから行の DELETE を許可します。

RULE
テーブルまたはビュー上のルールの作成を許可します。(CREATE RULE 文を参照して下さい。)

REFERENCES
外部キー制約を持つテーブルを作成するためには、被参照キーを持つテーブルに対してこの権限が必要です。

TRIGGER
指定したテーブル上のトリガの作成を許可します。(CREATE TRIGGER 文を参照して下さい。)

 

※公式ドキュメント(flush privilegesについて)

GRANT, REVOKE, or SET PASSWORD などのステートメントを使用して、間接的に権限テーブルを変更する場合は、サーバがこれらの変更を認識し、その変更があった直後に権限テーブルをメモリへリロードします。

INSERT、UPDATE、DELETE などのステートメントを使用して、直接に権限テーブルを変更する場合は、サーバを再起動するか、またはテーブルのリロードを行なうまでその権限チェックは施行しません。手動で権限テーブルをリロードするには、FLUSH PRIVILEGES ステートメントを発行するか、mysqladmin flush-privileges または mysqladmin reload コマンドを実行します。