関連記事: リンク押したときに関係無い怪しげなページが開く
最近まとめサイトなどを開くと広告ページに飛ばされる問題について調べてみたメモです
(2017/10/15: 別パターンも見つけたので追記修正してます)
個人的に発現率が高いと感じてる2サイト
○ カオスちゃんねる(http://chaos2ch.com) さん
○ オレ的ゲーム速報@刃(http://jin115.com) さん
を対象に調べました
http://chaos2ch.com/ (トップページ) で飛ばされたときのログの情報から、どういう風な流れで飛ばされるかを書いてます
http://jin115.com の方では開始点となる広告が別物だったので、開始点になる広告は色々あるようです
iframe で↓のページが読み込まれます
header
body
scirpt タグの top.location.href に代入している部分、ここで広告のページに飛ばされています
ブラウザの戻るが使えないので location.replace のはず!と思ってたのに違ってました
href なのになんで戻れないんだろう?
メインフレームの準備ができる前に iframe の方で移動してしまうから履歴に残す前に移動してるとか?
またこの URL をもう一度開いてみると、 head タグがなくて body タグは同じでした
まれにリダイレクトさせるコード入りの head を追加してときどき広告に飛ばすようにしているようです
どこが原因かをわかりにくくするのと審査を通すためかな
csdc という文字で検索してでてきたのが
http://medi8.genieesspv.jp/yie/ld/jsk?zoneid=1055197&cb=35941077557&charset=UTF-8&loc=http%3A%2F%2Fchaos2ch.com%2F&referer=http%3A%2F%2Fchaos2ch.com%2Farchives%2F4844017.html&topframe=1
という JavaScript ファイル
中身は
JavaScript で、この文字列をデコードして document.write で出力してるようです
デコードした文字列は
と script タグを作っています
広告表示するコードみたいで最後の部分はこうなっていました
json のデータ部分が固定じゃなくてアクセスごと、もしくはクエリの zoneid などに応じて違っていそうな予感がします
試しにもう一度この URL にアクセスしてみると 0 のところの値が別になっていました
クエリによらず毎回ランダムってことでしょうか
ここで運悪く csdc.tech の迷惑広告が選ばれると変なところに飛ばされてしまう、と
ではこの medi8.genieesspv.jp はどこから読み込まれてるの?となるのですけど、ここ見つけるのはすごーく大変でした
トップページへのアクセスからこのファイルが読み込まれてるまでのどのファイルにも medi8.genieesspv.jp を読み込むコードがありません
通信してれば絶対このリストにあるはずなのに・・・
そんな中、探してる途中で偶然 http://js.medi-8.net/t/055/197/a1055197.js というのが http://chaos2ch.com/ の HTML 自体に含まれてるのを発見しました
似てる、これは怪しい
と思って、この URL にアクセスしてみると
というコードを発見!
この JavaScript ファイルからアクセスされてるようです
実行されてるのにどうして一覧に出ないんだろう・・・
あれこれ考えて、ブラウザにキャッシュされてそうと閃いたので Chrome の開発者ツールでみてみると
(from memory cache)
と書かれていました
外部ツールで調査するとこういうところ辛いですね・・・
とりあえず開始点は http://chaos2ch.com/ の
というコードだとわかりました
じゃあ今回の問題起きてるページは全部この広告がロードされてるのか、というとそんなことはありませんでした
今回の調査対象のもう一方、 http://jin115.com/ のソースを見ても medi-8 のスクリプトはロードしていません
ブログ作る側の原因となるコードは1つではないようです
もし Amazon や Google の広告でも起きるならもっと大勢が影響してるはずです
それに Amazon や Google 広告は、まとめ系以外のオフィシャルサイト系でも使われてるのにそういったサイトでは一度も起きていません
あと、まとめはあんまり見てない友人に聞いてみたら、そういう現象あるの初めて聞いたよって言っていました
ということで Amazon と Google の可能性は低そう
http://jin115.com/ のソースからそれらを除いた script タグで広告を探すと
http//api.unthem.com/
http://cast.ads.jlisting.jp/
というのが読み込まれてました
これらも問題の広告をロードしてる可能性がありそうです
↓
http://jin115.com/ の方でも発生したので調べてみると
http//api.unthem.com/ が http://js.medi-8.net/t/080/937/a1080937.js というファイルを読み込ませていました
数字部分は違いますが、同じように広告を読み込ませていて、 csdc のページの JavaScript で広告ページに飛ばされていました
↓
=====
JS: http://js.medi-8.net/
↓
JS: http://medi8.genieesspv.jp/
↓
iframe: https://csdc.tech/
http://medi8.genieesspv.jp/ で選ばれた広告が https://csdc.tech/ だと広告ページへ飛ばされます
今のところ http://medi8.genieesspv.jp/ の広告のみですが、 http://medi8.genieesspv.jp/ を内部で呼び出している広告サイトは複数あるようです
とりあえず https://csdc.tech/ をブロックすればだいじょぶそう
だけどこの手の広告って同じ内容のを別サイトにも作ってる可能性があるので根本的な解決とは言えないかも
今はなくてもみんなにブロックされたら URL 変えようってなってもおかしくないですからね
ところで
今回は外部ツールで通信監視とかしてみましたが、すごく大変です
こんな
ところから1つずつ中身見て調べていくなんて気が遠くなりそうです
今回はまだ検索機能でいい感じに引っかかってくれたので全部見ずに済んだので助かりました
でも、セキュリティを調べてる人とかでこういうのを普段から見てる人ってすごいですよねー
私はできればもうこんなことしたくない・・・
最近まとめサイトなどを開くと広告ページに飛ばされる問題について調べてみたメモです
(2017/10/15: 別パターンも見つけたので追記修正してます)
個人的に発現率が高いと感じてる2サイト
○ カオスちゃんねる(http://chaos2ch.com) さん
○ オレ的ゲーム速報@刃(http://jin115.com) さん
を対象に調べました
http://chaos2ch.com/ (トップページ) で飛ばされたときのログの情報から、どういう風な流れで飛ばされるかを書いてます
http://jin115.com の方では開始点となる広告が別物だったので、開始点になる広告は色々あるようです
最終的な飛ばされる原因
読み込んだ iframe 内の JavaScript で URL 書き換えられることが原因ですiframe で↓のページが読み込まれます
https://csdc.tech/index.html?camp_id=164&h=971ae97261&ip=0.0.0.0&carrier=&gaid=&idfa=&appname=&appid={APP_ID}&site=113551&sitename=chaos2ch.com&bundle=&bidid=20171012195647_92_ge-jp-02_8cci1gCX_pmp
URL に私の IP アドレスが含まれてたのでとりあえず 0.0.0.0 に置き換えてますheader
HTTP/1.1 200 OK
Server: nginx/1.10.2
Date: Thu, 12 Oct 2017 11:56:48 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Vary: Accept-Encoding
Set-Cookie: data=20171012195648_164_c84ZIWU2; expires=Fri, 13-Oct-2017 10:10:08 GMT; Max-Age=80000; path=/
Content-Length: 608
body
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script type="text/javascript">
top.location.href ="http://aff.chaopengz.cc/?utm_medium=518a20c7a23efc6f2650a0872f30552a8cd8f8f6&utm_campaign=JP_win&clickID=20171012195648_164_c84ZIWU2"</script></head>
<body style="margin: 0;"><a target="_blank" href='https://play.google.com/store/apps/details?id=com.lazada.android&referrer=utm_source%3D42lazada.com%26utm_medium%3Dapi'><img src=https://csdc.tech/img/lazada72890.jpg></a></body></html>
scirpt タグの top.location.href に代入している部分、ここで広告のページに飛ばされています
ブラウザの戻るが使えないので location.replace のはず!と思ってたのに違ってました
href なのになんで戻れないんだろう?
メインフレームの準備ができる前に iframe の方で移動してしまうから履歴に残す前に移動してるとか?
またこの URL をもう一度開いてみると、 head タグがなくて body タグは同じでした
まれにリダイレクトさせるコード入りの head を追加してときどき広告に飛ばすようにしているようです
どこが原因かをわかりにくくするのと審査を通すためかな
このファイルが読み込まれるまで
原因のファイルが特定できたので今度はこのファイルをどうやって読み込んだかを辿っていきますcsdc という文字で検索してでてきたのが
http://medi8.genieesspv.jp/yie/ld/jsk?zoneid=1055197&cb=35941077557&charset=UTF-8&loc=http%3A%2F%2Fchaos2ch.com%2F&referer=http%3A%2F%2Fchaos2ch.com%2Farchives%2F4844017.html&topframe=1
という JavaScript ファイル
中身は
gen_tag = "%3cscript%20type%3d%27text%2fjavascript%27%3e(略
のように % がいっぱいですJavaScript で、この文字列をデコードして document.write で出力してるようです
デコードした文字列は
<script type='text/javascript'>window.__genieeCommon = (略)
</script>
と script タグを作っています
広告表示するコードみたいで最後の部分はこうなっていました
var json_banner_data = {
"prepend_code": "",
"0": "<iframe src=\"https:\/\/csdc.tech\/index.html(略)",
"append_code": "<script type=\"text\/javascript\">(function(略"
};
gpb_1055197.init(json_banner_data);
gpb_1055197.run();
json のデータ部分が固定じゃなくてアクセスごと、もしくはクエリの zoneid などに応じて違っていそうな予感がします
試しにもう一度この URL にアクセスしてみると 0 のところの値が別になっていました
クエリによらず毎回ランダムってことでしょうか
ここで運悪く csdc.tech の迷惑広告が選ばれると変なところに飛ばされてしまう、と
ではこの medi8.genieesspv.jp はどこから読み込まれてるの?となるのですけど、ここ見つけるのはすごーく大変でした
トップページへのアクセスからこのファイルが読み込まれてるまでのどのファイルにも medi8.genieesspv.jp を読み込むコードがありません
通信してれば絶対このリストにあるはずなのに・・・
そんな中、探してる途中で偶然 http://js.medi-8.net/t/055/197/a1055197.js というのが http://chaos2ch.com/ の HTML 自体に含まれてるのを発見しました
似てる、これは怪しい
と思って、この URL にアクセスしてみると
var di={zi:1055197,vd:"medi8.genieesspv.jp",ra:0,ri:"{$netId}"};
というコードを発見!
この JavaScript ファイルからアクセスされてるようです
実行されてるのにどうして一覧に出ないんだろう・・・
あれこれ考えて、ブラウザにキャッシュされてそうと閃いたので Chrome の開発者ツールでみてみると
(from memory cache)
と書かれていました
外部ツールで調査するとこういうところ辛いですね・・・
とりあえず開始点は http://chaos2ch.com/ の
<script type="text/javascript" src="http://js.medi-8.net/t/055/197/a1055197.js"></script>
というコードだとわかりました
じゃあ今回の問題起きてるページは全部この広告がロードされてるのか、というとそんなことはありませんでした
今回の調査対象のもう一方、 http://jin115.com/ のソースを見ても medi-8 のスクリプトはロードしていません
ブログ作る側の原因となるコードは1つではないようです
もし Amazon や Google の広告でも起きるならもっと大勢が影響してるはずです
それに Amazon や Google 広告は、まとめ系以外のオフィシャルサイト系でも使われてるのにそういったサイトでは一度も起きていません
あと、まとめはあんまり見てない友人に聞いてみたら、そういう現象あるの初めて聞いたよって言っていました
ということで Amazon と Google の可能性は低そう
http://jin115.com/ のソースからそれらを除いた script タグで広告を探すと
http//api.unthem.com/
http://cast.ads.jlisting.jp/
というのが読み込まれてました
これらも問題の広告をロードしてる可能性がありそうです
↓
http://jin115.com/ の方でも発生したので調べてみると
http//api.unthem.com/ が http://js.medi-8.net/t/080/937/a1080937.js というファイルを読み込ませていました
数字部分は違いますが、同じように広告を読み込ませていて、 csdc のページの JavaScript で広告ページに飛ばされていました
まとめ
JS: http://api.unthem.com/↓
=====
JS: http://js.medi-8.net/
↓
JS: http://medi8.genieesspv.jp/
↓
iframe: https://csdc.tech/
http://medi8.genieesspv.jp/ で選ばれた広告が https://csdc.tech/ だと広告ページへ飛ばされます
今のところ http://medi8.genieesspv.jp/ の広告のみですが、 http://medi8.genieesspv.jp/ を内部で呼び出している広告サイトは複数あるようです
とりあえず https://csdc.tech/ をブロックすればだいじょぶそう
だけどこの手の広告って同じ内容のを別サイトにも作ってる可能性があるので根本的な解決とは言えないかも
今はなくてもみんなにブロックされたら URL 変えようってなってもおかしくないですからね
ところで
今回は外部ツールで通信監視とかしてみましたが、すごく大変です
こんな
ところから1つずつ中身見て調べていくなんて気が遠くなりそうです
今回はまだ検索機能でいい感じに引っかかってくれたので全部見ずに済んだので助かりました
でも、セキュリティを調べてる人とかでこういうのを普段から見てる人ってすごいですよねー
私はできればもうこんなことしたくない・・・
コメント一覧 (2)
同時症に悩んでいたのですが、ここ一週間くらい遭遇していない気がします。
広告サイト側で対処がなされたのでしょうか?
皆さんの遭遇情強はどんなものでしょう?
それと、今日このコメント見て試してみようと開いてみたらさっそく1回目のアクセスで飛ばされてしまいました・・・
なので特に対処はされてないようです
今日発生したのが http://jin115.com/ の方だったので、どの広告か調べて記事に追記・修正してます
(こっちのブログのトップページはアクセスするだけで広告含め 300以上、多いときは2000超えるってすごいリクエスト数なのでちょっと大変でした・・・)
コメントする