学習記録 (2月7-11日 )

2/8

  • Ajax (Asynchronous Javascript and XLS) Javascrpitによるサーバとの通信通信、画面遷移を伴わない ブラウザ上は部分的に更新される 画面遷移のタイミング(セキュリティ上の注意点)がわかりづらくなる WebアプリケーションもAjaxを利用するものとしないものがある
  • Ajaxは外部サイトとの連携に用いられる
  • JSONP:JSONデータのクロスドメインでの通信を可能にする可能にする技術 HTML/XHTMLは"script"タグの異なるドメインでのデータの取得ができる

2/9

  • バイナリーセーフ %00のような制御文字をデコードできる。
  • パーセントエンコードはマルチバイト文字(日本語)や制御文字を表現できる。%と16進法の文字で表示
  • HTTPレスポンスはライン、ヘッダ、ボディで構成されている
  • 3xxで示されるステータスコードはレスポンスヘッダの情報をもとにリダイレクトを行う。"Location"ヘッダーへ転送される。
  • ヘッダに改行を入れると任意のヘッダを追加することができる。
  • SQLインジェクション: アプリケーションが想定しないSQL文を実行させる
  • 能動的攻撃: ターゲットのサーバにコードを挿入、サーバの情報の取得、改ざん、不正利用
  • 受動的(誘導型)攻撃: サーバ上に罠を仕掛けユーザが実行することを強要する。
  • セッション管理 WebアプリケーションあるいはWebサーバレベルで管理番号を発行して、複数に渡る通信間の関連性を実現している。共有するしくみはCookieを利用するものと、GET/POSTパラメタなどを利用するものがある。
  • サーバがセッションIDを発行し、自身にも格納する
  • トークンと呼ばれるセッション管理用のパラメータがPOSTパラメータでも使われる
  • セッション変数:ログインIDを格納する。
  • 格納の形態はファイル、データベース、メモリ上で行われる
  • セッション変数は認証管理に利用されることが多い。
  • 入力値の検証?エスケープ?
  • 入力と出力の異なるwebアプリケーションはツールによる脆弱性の自動検知は難しい。
  • 脆弱性:セッションフィクセーション、攻撃者がユーザに指定したセッションIDを使わせる。ログインのセッションが乗っ取られてしまうので、多くのサイトでは成功時のIDを破棄して再発行する。

2/11

  • Telnet(teletype network) :
  • TelnetクライアントとTelnetサーバの間でソケットを開き的ステベースの通信を行う、暗号化せずに通信を行う。同様な機能を持ち、通信内容を暗号化する"SSH"プロトコル
  • CGI (Common Gateway Interface) : サーバ上でプログラムを動かすための仕組み、プログラムがその場でページを作って返す。
  • telnet (wwwサーバ名) (ポート番号)
  • CGIに渡した環境変数がレスポンスのbodyに入って返ってきている。

Mac標準のターミナルからApacheを起動する Apacheの起動 sudo apachectl start

ブラウザで http://127.0.0.1/ を確認すると、「It works!」と表示されるかと思います。ソース - 起動した後にtelnet localhot 80で接続できた。 - 同様にtelnet localhot 127.0.0.1 80でも接続できた。続いて

GET / HTTP/1.1
Host: localhost

を入力して

HTTP/1.1 200 OK
Date: Fri, 11 Feb 2022 08:12:32 GMT
Server: Apache/2.4.34 (Unix)
Content-Location: index.html.en
Vary: negotiate
TCN: choice
Last-Modified: Fri, 09 Sep 2016 05:02:59 GMT
ETag: "2c-53c0c0f6366c0"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html

<html><body><h1>It works!</h1></body></html>Connection closed by foreign host.

が戻ってきた。

  • HTTPSのサイトに接続したい場合はopensslコマンドを利用する

    openssl s_client -connect ホスト名:443 -crlf

  • 0-1023番までのポートをウェルノウンポートという
  • URLの入力、リンクのクリック、テクストの送信これらの操作がGETやPOSTを送信している。
  • burp suiteのローカルでブラウザの挙動をモニターすることができる。