Shammer's Philosophy

My private adversaria

接続先サーバで使用可能なcipherを知りたい--curl_20141029

接続先サーバで使用可能なcipherを知りたい--curl_20141027 - Shammerismで作成したスクリプト、応答が302とかでHTMLのコンテントがない場合や、何も応答を返さないサーバーがあると誤判定してしまう可能性がある。コンテントがない場合はどうにもならないが、302とかLocationヘッダで遷移先を知らせてくれる場合は回避する方法がある。具体的にはcurlの-Lオプションを使用すればいい。ほとんど変わらないが新スクリプトは以下のような感じ。

#!/bin/bash
SUPPORTED_CIPHERS="supported-ciphers.txt";
if [ $# -ne 2 ];then
    echo "Usage $0 DestServer URI"
    exit 1;
fi

if [ -e $SUPPORTED_CIPHERS ];then
    rm $SUPPORTED_CIPHERS;
fi
ciphers=`openssl ciphers -v | awk '{print $1}'` > /dev/null;
for i in $ciphers
do
    curl -L --silent --insecure --ciphers $i https://$1$2 > res.html;
    RRR=`wc -l res.html | awk '{print $1}'`;
    if [ "$RRR" = "0" ];then
	echo "$i is not supported on this server.";
    else
	echo "$i" >> $SUPPORTED_CIPHERS;
    fi
done

とりあえず、これはcurlの7.26.0 (x86_64-pc-linux-gnu)で試した。