HTML
Chrome
セキュリティ

あのサイトで使われている技術を調べる

あのサイトで使われている技術を調べる

自分が今見ているサイトが、どんな技術で作られているか気になった時に調べる方法を、色々書いてみた。


URLから調べる

URLの拡張子が、xxxx.xx/xxxx.phpとかだったら、PHPで作られているとわかるが、最近は拡張子が出てるサイトの方が少ない。

とはいえ一応拡張子ごとの技術を載せておく。

拡張子
技術等
備考

.php
PHP

.asp
Active Server Pages(VBScript)

.aspx
ASP.net(C#/VB.net)

.do
Struts(Java)
Javaのフレームワーク

.jsp
JSP(Java)

.cfm
ColdFusion
Adobe製のJVM言語

.cgi
CGI
主にPerl

.fcgi
FastCGI
主にPerl

.pl
Perl
主にPerl

.shtml
SSI(Server Side Include)

.rb
Ruby
拡張子ありは少数派

.py
Python
拡張子ありは少数派

とほほのWWW入門 拡張子一覧

List of file formats

他にもあるが(.dllとか.exeとか・・)、.php以外はなかなか見つけるのに苦労する。

拡張子別にどんなサイトがあるかはGoogleで inurl:index.jsp みたいに検索すると色々見つかる。

後述のhttp ヘッダー情報等からServerはnginxでcookieにJSESSIONがあるのに

拡張子が.aspというページもあるので、別システムに移行したけど、URLはそのままにしたため拡張子が食い違うケースもありそうだ。

RubyやPythonはMVCフレームワークが話題になり出してからWEBで採用され出したからか、拡張子つきは見かけたことがない。


http ヘッダー情報から調べる

ブラウザのディベロッパーツール等を使ってhttpのヘッダー情報を調べることができる。

WebMakeBlog KIYOTATSU HTTPリクエストとHTTPレスポンスをchromeのデベロッパーツールで確認する方法

Serverヘッダーからは:Webサーバのアプリケーションを知ることができる。


Server:nginx
Server:Apache
Server:Microsoft-IIS/10.0

IISの場合はWindowsのOSのバージョンの判断もできる

Serverヘッダー値
技術等
備考

Microsoft-IIS/7.0
IIS(Windows用のWebサーバ)
Windows Server 2008/Windows Vista

Microsoft-IIS/7.5
IIS(Windows用のWebサーバ)
Windows Server 2008R2/Windows 7

Microsoft-IIS/8.0
IIS(Windows用のWebサーバ)
Windows Server 2012/Windows 8

Microsoft-IIS/8.5
IIS(Windows用のWebサーバ)
Windows Server 2012 R2

Microsoft-IIS/10.0
IIS(Windows用のWebサーバ)
Windows Server 2016/Windows 10

nginx/0.0.0 (Ubuntu)
nginx
バージョンありの場合もあり、OS名が記載している場合もあり

Apache
Apache
バージョンありの場合もあり、OS名が記載している場合もあり

meinheld
Pythonのwebサーバ
Mozillaのサイト等

x-powered-by: の値からPHPやASP.netを使われているとわかる場合もある。

ただし、X-Powered-By:ASP.NETと入っていても、Windows IISサーバーで動いているからそう表示されるだけで、ASP.NETは使用していないケースもあり得る。


x-powered-by:PHP/5.3.3
X-Powered-By:ASP.NET
X-Powered-By:Servlet/2.4 JSP/2.0 (WebLogicを使っている場合)

他にもX-AspNet-Version:のようなアプリケーション固有の値が付与される場合もある。


Cookieから調べる

ブラウザのディベロッパーツール等を使ってCookie情報を調べることができる。

WEBアプリケーションがSessionIDとして使用しているçookieの名称がアプリケーションごとに異なるので、それでわかるケースがある。

拡張子
技術等
備考

ASPSESSIONID*****
ASP(VBScript)
違うケースもあるかも

ASP.NET_SessionId
ASP.net(C#/VB.net)

JSESSIONID
主にJava
JVM言語であればJava以外でもありえる

CFID,CFTOKEN
ColdFusion
JSESSIONIDの場合もある

PHPSESSID
PHP

laravel_session
Laravel(PHP)

CakeCookie[***]
CakePHP(PHP)

_*****_session
Ruby on Rails(Ruby)
他と被りそうなので判別は無理そう

sessionid
Django(Python)
他と被りそうなので判別は無理そう

PLAY_SESSION
Play(Scala)
cookie名変更可能なので違う場合もある

SessionIDに使うCookie名はカスタマイズされて、別の名前に変わっているケースもあるし、自前のCookie値でSession管理していて判定できないケースもあり得る。

他にもロードバランサーによってcookieが付与されているケース(BIGipServer***_***)、

GoogleAnalyticによってCookieが付与されているケース(_ga)などがある。


HTML、Javascriptから調べる

サイトのHTMLソースコードを見て、何を使っているか調べてみる。

JQueryのようなJavascriptのライブラリ等であれば、直接見てわかることができる。

Ruby on Railsの場合は、CSRF対策用のトークン名が「authenticity_token」となっているのでRuby on Railsを使用しているかどうかわかる。


<!-- metaタグの場合 -->
<meta name="csrf-param" content="authenticity_token" />

<!-- input hidden属性の場合 -->
<input name="authenticity_token" type="hidden" value="トークンの値" />

HTML情報から、Javascript等のクライアント側の技術を知る事は出来るが、Ruby on Railsみたいに特徴的なものがないと、サーバサイド側の技術を知るのはちょっと難しい。


メールヘッダーから探す

受信するメールのヘッダー情報から、送信するアプリケーションの情報が取得できる場合もある。

Salesforce Trailblazer Community メールヘッダーを確認する方法

メールのヘッダー情報の X-Mailer:User-Agent: からどのアプリケーションを使用しているかわかる場合がある。

ただ、実際には、そういったケースは少ない。

少ない中でも、良くあるのがMailChimpのようなメール配信サービスを利用しているケース。

そのサービスの名前やサービスが使っているアプリケーション名がX-Mailer:上に出力される。

X-Mailer:⁨MailChimp Mailer - **XXXXXXXXXXXXXX**⁩ 

PHPを使用しているとX-Php-Originating-Script:のヘッダーが付く場合がある。

PHPマニュアル 実行時設定


X-Php-Originating-Script: 0000:hoge.php

CodeIgniterには標準でヘッダーに出力されるそう。

CodeIgniterの標準メールでユーザーエージェントを削除する

User-Agent: CodeIgniter

X-Mailer: CodeIgniter

多くは、X-Mailerなどの情報は付いてないケースが多いし、MailChimpみたいな配信サービスを使っているかわかる場合もある程度かな。


SPFレコードを調べる

送信メールがなりすましメールとして判断されないようにするため、送信元のサービスをSPFレコードに登録する必要がある。このSPFレコードはdigコマンドを使って調べられる。

dig slack.com  txt

;; ANSWER SECTION:
slack.com. 3600 IN TXT "v=spf1 include:amazonses.com include:mailgun.org include:u931175.wl176.sendgrid.net include:_spf.qualtrics.com -all"

slack.comの場合は、メールの送信にamazonses、mailgun、sendgridが使われていることがわかる。qualtricsはアンケート作成サービスだが、ここ経由でメールが送られてると思われる。

dig gitlab.com  txt

;; ANSWER SECTION:
gitlab.com. 300 IN TXT "v=spf1 include:mail.zendesk.com include:_spf.google.com include:spf.recurly.com include:mktomail.com include:_spf.salesforce.com include:_spf-ip.gitlab.com -all"

gitLab.comの場合、顧客管理のzendesk、個別のメール送信にGoogle(Gsuite?)、有料会員支払サービスにrecurly、販促ツールにmarketo、顧客管理か業務支援でSalesforce.comを使っていると思われる。


Wappalyzerを使う

これが本命の調べ方。

Wappalyzerというツールが閲覧中のWebサイトで使われている情報を表示してくれる。Chrome/FireFoxのアドオンで使うと便利

wap.png

細かい使い方はこちら。

閲覧中のWebサイトで使われている技術を確認できるChrome拡張「Wappalyzer」のご紹介

具体的にどうやって調べているのかなと、言うところだけど

GitHubのWappalyzer/src/apps.json

に記載されている部分を見ると、httpヘッダー情報やHTMLの中に記載されているタグとか特定の情報をもとに判定しているようだ。ちょっと見ていて面白い。

判定の性格度合いは、前述した、URL、httpヘッダー情報、cookie名、HTMLソース内の情報をもとにしているので、クライアントサイドの情報は結構ひろってくれるが、サーバサイド側の技術は正しく判定されてない、もしくは検出されない場合が多そうだ。Ruby on Railsについてはauthenticity_tokenの値判定のおかげで結構ちゃんと判定されていると思われる。


builtwithを使う

下記のサイトでチェックしたいサイトのURLを入れると、使われている技術が色々見れる。

https://builtwith.com/

Wappalyzerよりも取得できる情報は詳しそう。

ショッピングカートがあるかどうかの判定も出来ている。どうやっているのか謎。

他にも、メール配信サービスとか、日本向けのサービスも含めて網羅している。

ここで紹介されていた。

最強のリンク集の最強のリンク集


StackShareを使う

StackShareは企業や有名サービスがどんなツールを使っているか、このツールを使っているのはどんな企業があるか調べるサービス。企業自身が登録してるみたいなので信ぴょう性は高い。Wantedly Toolsと似た感じ。

stack.png


企業の技術ブログや、技術系サイトで探す

目当てのサイトの企業ブログがあって、自社技術に書かれてあれば確実。

QiitaのOrganization一覧などからわかる場合も中にはある。

でも探すのはちょっと大変だし、情報が見つかるケースはあまりなさそう。


企業の採用情報、転職サービスの採用情報から探す

自社開発しているとこだと、採用ページにどの技術を社内で使っているか情報がのっている。

転職サービスとかのサイトにも募集している職種の採用技術等が乗っている。

例えば、Amazonの場合、

必要条件にJavaが出てくる頻度が高いのでJavaの需要が高いのではと予想でき、

業務内容からJava、Ruby on Rails を使ったサービスがあるとわかる。

最初調べようと思ったAmazonの通販サイト側に関する情報は見つからなかったのでそこまではわからなかったけど。

ちなみにこのAmazonの採用ページ


  • HTTPヘッダー情報は、X-Powered-By:Phusion Passenger Ruby on Railsで使われるサーバを使用していて

  • cookie名も_rails-root_sessionでRuby on Railsと判定でき

  • HTML情報もauthenticity_tokenがありRuby on Railsと判定でき

Ruby on Railsで作られていることは間違いないと判断できた。


他人のサイトでやってはダメな方法

やってはダメな方法。

ポートスキャンツールを使ってどのポートが開いているかチェックして、何が動いているか推測する方法があるが、これを他人のサイトでやると攻撃と見なされる可能性大なのでやってはダメ。

たとえ自分のサイトでもデータセンター等に事前許可がいる場合もある。


その他あれこれ

使われている技術と調べるとはちょっと意味が違うけど、

そのサイトから色々得られる情報をチェックできるサービスを書いていく。


IPひろば

ドメインとかIPアドレスから、そのサイトのWHOIS情報などを調べる。

単にwhois情報だけでなく、組織情報や不正情報が日本語で出てたが、その部分は現在有料版になってる。

https://www.iphiroba.jp/


CMAN ドメイン/IPアドレス サーチ 【whois情報検索】

これもドメインとかIPアドレスから、そのサイトのWHOIS情報などを調べる。

https://www.cman.jp/network/support/ip.html


NetCraft Site Report

WHOIS情報とかサーバ情報を取得。過去履歴もあるので、数年前に使われていたGlobal IPとかサーバOSがわかる場合もある。

https://toolbar.netcraft.com/site_report


mxtoolbox

DNS Lookアップや、メールのSPFレコードのチェックを行える。

https://mxtoolbox.com/spf.aspx


PageSpeed Insights

Googleのサイトのスピード計測ツール

https://developers.google.com/speed/pagespeed/insights/?hl=ja


Lighthouse Chrome 拡張機能

Googleのサイトを評価する Chrome 拡張機能

https://webmaster-ja.googleblog.com/2018/02/seo-audit-category-in-lighthouse.html


GTmetrix

スピード計測ツール。PageSpeedやYSlowを使ってチェック。

テストサーバーがカナダなので日本のサイトだとLoaded Timeは長めに判定されるかも。

https://gtmetrix.com/


Alexa

Webサイトのアクセス数ランキングなどをチェック。

https://www.alexa.com/siteinfo

https://webtan.impress.co.jp/e/2010/08/17/8603


SEOのツール

サイトの検索順位とかチェックするツール。沢山あったので紹介サイトをのせる。

https://ferret-plus.com/412


HTMLコーディングチェック

W3Cのhtmlが正しいかチェックするツール

https://validator.w3.org/


Gred

そのサイトが安全かチェックチェックしてくれる

http://check.gred.jp/


aguse

これも、そのサイトが安全かチェックしてくれる

https://www.aguse.jp/


ssllabs SSL Server Test

SSL証明書の設定の安全性の評価をA~Fの段階評価や細かく指摘してくれる。

https://www.ssllabs.com/ssltest/