• ベストアンサー

海外から不正なアクセスがあるようです

先日自分のホームページをphp化しアクセスログをとり始めたところHTTP_REFERERのところに明らかに自分とは関係ないurlがありました。/admin/sqlpatch.php/password_forgotten.php?action=execute。自分なりに調べてみると海外からのアタックの類でありzen-cartがなんちゃらとしてあったのですが、こちら側で何か特別な対応をする必要があるとすれば何をすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

既知で・・こういうのが、今みただけで、確かにあがっています。 GET /phpmyadmin/index.php HTTP/1.1 404 1088 "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1 GET //phpmyadmin/ HTTP/1.1 404 1088 Made by ZmEu @ WhiteHat Team - www.whitehat.ro GET //phpmyadmin2/ HTTP/1.1 404 1088 Made by ZmEu @ WhiteHat Team - www.whitehat.ro GET //php-myadmin/ HTTP/1.1" 404 1088 Made by ZmEu @ WhiteHat Team - www.whitehat.ro GET /php-myadmin/scripts/setup.php HTTP/1.1 404 1088 ZmEu 対応しなければいけないのは・・・ これらのアタックに対して、HTTPリクエストが404以外であれば、 最低でも、そのスクリプトのパスを変更しておくべき、 不要なものであれば、スクリプトを削除しておくべきでしょう。 もし、この例で、本当に /phpmyadmin/ が存在したら、そこにアタックがくる可能性がありますが、これを、パスワードっぽく /ateopiZ4ty/ にすれば、不正なアクセスをされても、そこそこ安全になります。 ※絶対的に安全にするには、↑のようなURLにかえて、更に、オレオレ認証でも良いので、SSLにすることです。

rokkkkkk123
質問者

お礼

やはりこれだけの対応しなければならないことがありましたか。正直この辺の話全く詳しくなくてご回答いただいた内容を見てもすぐに理解はできなかったのですが、この内容を足ががりに自分なりにしらべ直して解決の糸口にしたいと思います。ご回答いただいたどなたも大変親身にご返信いただきありがたく思っておりますが、具体的な対応方法をご教授いただけたという観点からベストアンサーに選ばせていただきたいと思います。

その他の回答 (2)

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

自宅サーバ、あるいはレンタルサーバを借りて、ホームページを開けば、すぐに国内・国外からのアタックが数多くやってきます。 何度も同じ失敗を続けるような、プログラムを使ってアタックするものから、アタックに失敗したら数時間後に違うIDを使ってアタックしてきたり、数日後に違う方法でアタックしてきたりという、明らかに人間がやっているものまであります。 攻撃の手法を調べて、それに応じた対策を、(勉強しながら)する必要があります。きちんと行うのは、とても大変です。「これ一発で完璧!」とは、いきません。 なかなかサーバ管理って大変です。がんばりましょう。

rokkkkkk123
質問者

お礼

ご指摘の通りのレンタルサーバーです。もしかしたら今までも日常的にこういうことはあったのかもしれませんね。ある機会を経て見てはいけないものを見てしまったのかも。件数は少ないですが毎回違うipで時間も全く不規則できていますので見た目マニュアルっぽいです。こういうものだと理解してうまく付き合って行くべきなのですね。ありがとうございます。少し不安がなくなりました。

  • kxS4TP
  • ベストアンサー率16% (1/6)
回答No.1

初めまして モデムとPCの間にルーターを入れたらどうでしょうか。 ルーターが不正アタックをはね飛ばしてくれると思います。

rokkkkkk123
質問者

お礼

残念ながらさような対応は全て行なった上での質問のつもりでおりました。言葉足らずで申し訳ありません。ただハード面からももう一度見直してみるというのも確かですので改めて一度調べ直してみたいと思います。ご回答ありがとうございました。

関連するQ&A

  • SQLiteでたまにアクセスログが取れない

    PHPが使えないサーバーにあるホームページのアクセスログを取得するため、 JavaScriptを使ってPHPが使えるレンタルサーバーに飛び、 PHP+SQLite2でアクセスログを集計していました。 最近パソコンを買い替えたのを機にPHPをVersion 5.4.8にアップデートしたところ、 ローカル環境でSQLite2が使えなくなり、この際pdo_sqliteにプログラムを書き換えました。 レンタルサーバーではSQLite2 がまだ使えるため、以前のプログラムはそのままにして SQLite2 とPDO両方でログをとってみました。 するとSQLite2では取れているのにPDOでは取れていない、 逆にPDOでは取れているのにSQLite2では取れていないログがあることに気が付きました。 (詳しくは下記の画像をご覧ください 赤丸がついているものが他方にはないログです) https://box.yahoo.co.jp/guest/viewer?sid=box-l-oolzr4jkzfiedw4zavuldosoha-1001&uniqid=12bc9230-5e96-41fb-b00e-271a1aa79397&viewtype=detail#du%3D12bc9230-5e96-41fb-b00e-271a1aa79397%26ds%3Dbox-l-oolzr4jkzfiedw4zavuldosoha-1001%26tu%3D12bc9230-5e96-41fb-b00e-271a1aa79397%26ts%3Dbox-l-oolzr4jkzfiedw4zavuldosoha-1001%26vt%3Dpublic%26lf%3Dlist%26ls%3D1%26lm%3D20%26il%3D1 何が問題なのでしょうか? プログラム? SQLite? PHP? サーバー? 閲覧者のブラウザ? また回避法をご存知でしたらご教授願います。 (log.js) ref =document.referrer; var qword=""; if(ref.indexOf("?")!=-1){ ref2=ref.split("?"); query=ref2[1].split("&"); qword="?qword="; for (i=0; i<query.length; i++){ qword+=query[i]+"*"; } ref=ref2[0]; } document.write('<script src=" http://○○○/log2.php?ref='+ ref + qword +'"></script>'); document.write('<script src=" http://○○○/log.php?ref='+ ref + qword +'"></script>'); (log.php) <?php $referer = stripslashes($_GET['ref']); $d=date_create(); $date=date_format($d,"Y/m/d"); $time=date_format($d,"H:i:s"); $day=date_format($d,"w"); $referer=sqlite_escape_string($referer); $url=sqlite_escape_string($_SERVER['HTTP_REFERER']); $accept_language=sqlite_escape_string($_SERVER['HTTP_ACCEPT_LANGUAGE']); $remote_addr=sqlite_escape_string($_SERVER['REMOTE_ADDR']); $user_agent=sqlite_escape_string($_SERVER['HTTP_USER_AGENT']); $db=sqlite_open("log.sqlite"); $sql="INSERT INTO log_table ( log_date, log_time, log_day, log_url, log_referer, log_language, log_remote_addr, log_user_agent) VALUES( '$date', '$time', $day, '$url', '$referer', '$accept_language', '$remote_addr', '$user_agent')"; sqlite_query($db,$sql); sqlite_close($db); (log2.php) <?php $referer = stripslashes($_GET['ref']); $d=date_create(); $date=date_format($d,"Y/m/d"); $time=date_format($d,"H:i:s"); $day=date_format($d,"w"); $db=new PDO("sqlite:/home/○○○/www/log.sqlite3",null,null); $referer=$db->quote($referer); $url=$db->quote($_SERVER['HTTP_REFERER']); $accept_language=$db->quote($_SERVER['HTTP_ACCEPT_LANGUAGE']); $remote_addr=$db->quote($_SERVER['REMOTE_ADDR']); $user_agent=$db->quote($_SERVER['HTTP_USER_AGENT']); $sql="INSERT INTO log_table ( log_date, log_time, log_day, log_url, log_referer, log_language, log_remote_addr, log_user_agent) VALUES( '$date', '$time', $day, $url, $referer, $accept_language, $remote_addr, $user_agent)"; $res=$db->prepare($sql); $res->execute(); $db=null; レンタルサーバーの環境 さくらインターネット PHP Version 5.2.17 Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e SQLite 2.8.17 pdo_sqlite 3.3.7

    • 締切済み
    • PHP
  • zen cart 管理者ログイン画面について

    はじめまして。shinoです。 今回初めてzen-cart-v1.3.0.2-l10n-jp-4をダウンロードしました。 インストールも出来て、ショップ画面も”おめでとう”表示になっているのですが、管理者画面/admin/login.phpが、 owner namexxxxx (xxxx.jp-xxxxx)||xxxxxx@hotmail.xx.xxowner namexxxxx (xxxx.jp-xxxxx)||xxxxxx@hotmail.xx.xx オーナー名とメルアドを繰り返す表示となっています。 (前回インストールした時の情報) その下に管理者ユーザID:管理者パスワード:と表示されています。 インストール後、 includes/configure.php admin/includes/configure.php のパーミッションを644に変更しました。 データベース:MySQL5.0 Zen Cart 1.3.0.2-l10n-jp-4 初心者なので、分かりやすくご教授して頂けます様、 よろしくお願い致します。

  • Javascriptの変数をPHPに渡したい

    環境  サーバLinux、Apache2.0.47、PHP4.3.2で使用しています 質問  リンク元の取得のためgetenv("HTTP_REFERER")を使っていますが情報が取得できません。  クライアント側のファイアウォール(ノートンなど)が無効になっているときにしか情報が取得できませんでした。  Javascriptのdocument.referrerを使ったところ、ファイアウォール関係なく情報が取得できました。  ログ保存のためにPHPの変数にdocument.referrerを渡したいのですがどのようにすればよいのでしょうか?  下のように書いたところブラウザには正常に表示されましたが、  ログはJavascriptの制御文そのものが保存されました。  $link="<SCRIPT language='JavaScript'><!--    document.write(document.referrer);    --></SCRIPT>"; よろしくお願いします。

    • ベストアンサー
    • PHP
  • 外部サーバーのPHPをIMGタグで呼び出す場合

    外部サーバーのPHPをIMGタグで呼び出す場合の質問です。 2か所のサーバーでサイトを運営しており、今までGoogleAnalyticsでアクセス解析をしていたのですが、Javascriptを無効にしているひとの数も収集しておきたく、ド素人ですが思い切ってPHPでログ収集をしようとしています。 ただ、あっちこっちにログファイルを残しておきたくなかったので、片方のサーバーにログ収集用のPHPを設置し、もう片方のサーバーのサイトのログも以下のような方法で収集しようと考えています。 【http://hoge.jp/サイト.html】 <!DOCTYPE html> <html lang="ja-JP"> <head>  ~ </head> <body> ※コンテンツ <img src="https://huga.jp/収集.php" /> </body> </html> 【https://huga.jp/収集.php】 <?php //画像の作成 $img = imagecreatetruecolor(1, 1); $backGroundColor = imagecolorallocate($img, 255, 255, 255); imagefill($img , 0 , 0 , $backGroundColor); //画像出力 header("Content-type: image/png"); header("Cache-control: no-cache"); imagepng($img); //後始末 imagedestroy($img); //アクセスログ取得 $h = $_SERVER["HTTP_HOST"];// どのサイトのアクセスか分かりやすくするためにアクセスしたサイトのドメインを取得したいのです… $ap = $_SERVER["REQUEST_URI"];// 同じくアクセスページを分かるようにしたいのです… $rf = $_SERVER['HTTP_REFERER'];// できればどこからきた人かわかるようにしたいのです… ~ //アクセスログ吐き出し ~ ?> アクセスログ自体は吐き出されているのですが、コンソールに出るエラーと、吐き出されている内容に問題が発生し、ググりながら色々いじくってみたのですがまったく解決できずに困っています。 そこで質問なんですが、 (1)実際にhttp://hoge.jp/サイト.htmlにアクセスしてみた際、コンソールに「Refused to execute script from 'https://huga.jp/収集.php' because its MIME type ('image/png') is not executable.」というエラーが表示されます。MIME typeをどーにかしろってことだとは思うのですが、色々検索してみるのですがよくわからず、解決方法をご指南いただけませんでしょうか? (2)別サーバーに設置したPHPではHTTP_HOSTとREQUEST_URIとHTTP_REFERERはうまく取得できないのでしょうか?もしできるやり方があれば御指南いただければと思います。ちなみに、現状では ・HTTP_HOST=「huga.jp」(hoge.jpになってほしい) ・REQUEST_URI=「/収集.php」(サイト.htmlになってほしい) ・HTTP_REFERER=「http://hoge.jp/サイト.html」(アクセス元のページURLになってほしい) のようになってしまします。多分アクセスしたサイトが収集.php扱いになってしまっているのでしょうが、これってどうにかできるんでしょうか? 何分PHP自体ド素人なもので、用語なんかも明るくありませんので、とわかりにくい説明になっていたら申し訳ないのとともに、プロの方からすれば「こんなしょーもないことで?」と言われてしまいそうですが、どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • 管理パスワードによる認証

    既存のファイルに管理者による認証を付加したいと思いますが、下記のコードではうまくいきません。アドバイス下さい。 <?php //パスワードの設定 $password = "admin"; //パスワードチェック passchk(); function passchk(){ global $password, $post; $p = $post['pass']; if ($p == $password) { echo "認証成功!"; // return; } else { echo<<<EOM <p>パスワードを確認して下さい。</p><br> <form action="login.php" method="post"> パスワード:<input type="password" name="pass" size="8"> <input type=submit value="ログイン" /> </form> EOM; exit; } } ?>

    • 締切済み
    • PHP
  • MD5化したパスワードを再度パスワード認証する

    説明下手かもしれませんが、MD5化したパスワードを再度パスワード認証する方法で躓いてしまいました。 test.php $passwd = 'admin'; $passwd = md5($passwd); if(!isset($password)){$password = md5($_post('password')) ;} if($password == $passwd)){ //ファイルへ書き込み、ファイル一覧表示する処理(コード省略) //★★ 処理した後に、この下でコードでパスワード認証されたPOST送信ボタンを出力 ★★ echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>"; } 問題は (1)$passwdはMD5で暗号化されている (2)POST送信された$passwdはMD5で暗号化されたものが、md5($_post('password')で更にMD5化されて認証エラーになる。 なのでフォームボタン(POST送信)を使用し、自身のスクリプトに認証されるような処理を行いたいのですが、 いい方法をアドバイス下さい。 echo "<td> <form action=$PHP_SELF method=post> <input type=hidden name=password value=$passwd> <input type=submit value=送信> </form>";

    • ベストアンサー
    • PHP
  • ワードプレスでの商品一覧ページ

    初めまして。 現在ワードプレスにて会社のHPを制作しております。 窓やシャッターを施工する会社で、商品の一覧表をつけたいと考えているのですが、やり方がわかりません。 プラグインなどはネットショッピング用なので、カートなどがついてしまいます。 https://www.ex-shop.net/index.php?action=public_item_sh_search_execute 上記のように値段や写真などを記載し、無料見積もりの出来るプラグインなどはないでしょうか? お手数ですが、お分かりになるかた教えて下さい。

  • apacheのaccess.logについて

    最近自宅にてdebianでwebサーバーを公開し始めました。 サイトは昔の部活仲間や友達内だけの小さなサイトです。 当初からapacheのaccess.logのログをみて、 さまざまな国からアクセスがあったことを知って戦々恐々としています。 自分のできる対策として.htaccessで日本のIPのみアクセスを許可したり、 sshのポートを変更し、公開鍵認証のみにし、rootログインも禁止したりしました。 ポートは80番とsshのみ開けています。telnetは消しました。 cronでaptitude updateとupgradeを毎日自動でやるよう設定しました。 これでだいぶ国外からのアクセスが減ったのですが、 まだこのような良くわからないアクセスがaccess.logに残ります。 これらについて教えてください。 ----------------------------- 74.7.65.34 - - [07/Dec/2013:23:29:47 +0900] "\x80w\x01\x03\x01" 403 278 "-" "-" 74.7.65.34 - - [07/Dec/2013:23:29:47 +0900] "GET /HNAP1/ HTTP/1.1" 403 503 "http://114.188.50.107/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1)" ----------------------------- 1-163-194-59.dynamic.hinet.net - - [07/Dec/2013:23:32:59 +0900] "CONNECT mx0.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" 61-228-90-61.dynamic.hinet.net - - [08/Dec/2013:01:42:04 +0900] "CONNECT mx2.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" 61-228-23-159.dynamic.hinet.net - - [08/Dec/2013:04:15:29 +0900] "CONNECT mx0.mail2000.com.tw:25 HTTP/1.0" 403 490 "-" "-" ----------------------------- 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:39 +0900] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 403 490 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:39 +0900] "GET /phpMyAdmin/scripts/setup.php HTTP/1.1" 403 481 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /pma/scripts/setup.php HTTP/1.1" 403 476 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:40 +0900] "GET /myadmin/scripts/setup.php HTTP/1.1" 403 479 "-" "ZmEu" 20.254.52.119.adsl-pool.jlccptt.net.cn - - [07/Dec/2013:18:52:41 +0900] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 403 479 "-" "ZmEu" ----------------------------- 189.25.210.226 - - [08/Nov/2013:21:47:01 +0900] "-" 408 0 "-" "-" 95.39.62.79 - - [09/Nov/2013:03:46:42 +0900] "\xb7\xda\x84" 501 294 "-" "-" 91.79.51.155 - - [11/Nov/2013:16:05:26 +0900] "\xf7\xa1\xb5K\xa4Q\xd5\x14\xd6\x886{A\xec\xd5\xd2\xbb\x93Z\x04l\xf8\x19" 501 314 "-" "-" 93.174.93.69 - - [29/Nov/2013:02:57:31 +0900] "GET /invoker/JMXInvokerServlet HTTP/1.0" 404 505 "-" "-" 221.122.80.105 - - [25/Nov/2013:09:41:08 +0900] "POST /cgi-bin/php.cgi?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30+%2D%6E HTTP/1.1" 404 495 "-" "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25" ----------------------------- 相手のIPまんまですが 一つ目の「74.7.65.34」のアメリカからのアクセスの "\x80w\x01\x03\x01" 403 278 "-" "-" の「\x80w\x01\x03\x01」はいったいなんですか? 二つ目の台湾からのアクセスについてわかることを教えてください。 あと自分は初心者ではっきりとはわからないのですが、 三つ目のアメリカからのアクセスは明らかに悪意のあるような気がしますが、 わかることを教えてください。 四つ目の5つは古いログであまり対策がとられていなかったころのものですが、 「"-" 408 0 "-" "-"」「"\xb7\xda\x84"」なの意味がわからないのですが、 これらは悪意のあるアクセスですか。わかることを教えてください。

  • wordpressの管理画面

    wordpress(3.4.1)の管理画面について質問です。 BackWPupというプラグインを利用しており、左側の管理メニューに 「BackWPup」というメニューが作成されています。 自分以外の管理者の場合に、このメニューを非表示にさせたく試行錯誤して いるのですが消えてくれません。 同じく、Contact Form 7というプラグインを利用すると左側の管理メニューに 「お問い合わせ」というメニューが作成されますが、これはfunctions.phpに 下記のようにすると消えました。 function remove_admin_menu() { remove_menu_page( 'wpcf7' ); } add_action( 'admin_menu', 'remove_admin_menu' ); この例に沿い function remove_admin_menu() { remove_menu_page( 'backwpup' ); } add_action( 'admin_menu', 'remove_admin_menu' ); とやっているのですが消えません。これを消すにはどうすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • 携帯サイトの <a href="tel:~"> のアクセス数をカウントする方法について

    過去ログにもありますが、 http://www.gac.jp/article/index.php?stats=question&category=22&id=10227&command=msg http://oshiete1.goo.ne.jp/qa2056721.html 携帯サイトの電話発信リンク(<a href="tel:~"></a>)から電話をかけたアクセス回数を、スクリプト或いは他の手段で、サーバーにログを残しつつ、別画面(ex この番号に電話を発信します。宜しいですか? などの類の)を1度表示させることなくカウントする方法は、やはり無理でしょうか? 古めのキャリアでも共通対応の <form> <input> などを使うとしても、ユーザーの1アクションでサーバーにログが残り、かつ電話発信モードもスタートする(プログラムでユーザのアクション無しで電話発信モードを呼び出す方法)が思い浮かばず、 javascript や meta タグも、対応していないキャリアで多くエラーとなると思います。 【別画面を表示させてそれをカウントする】という方法以外に、ユーザーの1アクションで済む妙案をご存じの方いらっしゃれば、ぜひ教えて頂けますと幸いです。 みなさまどうぞ宜しくお願い致します。