さくらレンタルサーバー(共有サーバー)の/home🏠はアレが見えてるよ。#知ってた?#駆け出しエンジニアと

2022.09.09

Logging

おはようございます。今日、高知県では雨☔の地域もあったりするそうですよ🙄。

さて、今日はさくらレンタルサーバー(共有サーバー)の/home🏠の話です。さくらレンタルサーバーじゃなくても共有サーバーを借りたことがある人は知っているかも知れませんが・・・常識?🤔。

さくらレンタルサーバーの/homeの階層に複数のディレクトリが存在します。そのディレクトリのディレクトリ名はさくらレンタルサーバーのアカウント名であり、初期のドメイン名になります。

reborn9.sakura.ne.jp

なので、ディレクトリ名.sakura.ne.jpにすれば初期のドメイン名を生成することが可能ですし、ログインでXXXXX…みたいな事が出来たりしまいます。赤の他人のアカウントでログインするのはハッキングにあたりますので、しないように!

でも、初期のドメインを見ることぐらいなら、良いじゃないかなってことで?WEBサーバーな訳ですからね。

という事で、こんなコードを書きました。コマンド ls -a /homeを実行し結果をtxt.txtのファイルに保存します。そのtxtファイルをPHPで読み込み、ディレクトリ名からリンクリストを生成(index.html)という様な流れ。index.htmlの開いてリンクをクリックすれば/homeの配下の初期ドメインへ飛んでいけます😱、ちょっと悪趣味ですがね…。

コードはこんな感じになります。実行するときはls.phpを開いてください。ls.phpを読み込み完了後、index.htmlのリンクをクリックしてみてください🤐。

尚、下記のファイル全てを同じ階層のディレクトリに置くこととします。※ファイルはUTF-8で。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<link rel="stylesheet" href="assets/css/style.css">
<title>Title</title>
</head>
<body>
<a href="index.html">index.html</a>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
</body>
</html>
<?php
exec("sh ls.sh",$output,$result_code);
#!/bin/sh
ls -a /home > txt.txt
/usr/local/bin/php href.php
done
<?php
ob_start();
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="Description" content="Enter your description here"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css">
<title>lsit</title>
</head>
<body>
    <button class="btn btn-primary" type="button" id="btn">BTN</button><br>
    <?=setlist()?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
<script>
    document.getElementById("btn").addEventListener("click",function(){
        for( let i in document.getElementsByTagName("a")){
            document.getElementsByTagName("a")[i].target = document.getElementsByTagName("a")[i].href;
            document.getElementsByTagName("a")[i].click();
        }
    });
</script>
</body>
</html>
<?php
file_put_contents("index.html",ob_get_clean());
?>
<?php
function setlist(){
    $txt_data =  explode("\n",file_get_contents("txt.txt"));
    $str[] = "<ul>";
    foreach($txt_data as $key=>$val){
        $str[] = (preg_match("/\./",$val) || !$val)?"":"<li><a href='http://".trim($val).".sakura.ne.jp'>".trim($val).".sakura.ne.jp</a></li>";
    }
    $str[] = "</ul>";
    return implode("\n",$str);
}

タグ

, home, jp, ne, REBORN, sakura, xxxxx, アカウント, アレ, エンジニア, , こと, サーバー, さくら, ディレクトリ, ドメイン, ドメイン名, ハッキング, レンタル, ログイン, , , 今日, 他人, 共有, 初期, 可能, 地域, 存在, 常識, 生成, 複数, , , 階層, , 駆け出し, 高知県,

さくらのレンタル―サーバーのCRONでファイルの呼び出し方が

2015.10.06

Logging

/usr/local/bin/php -f /home/xxxxx/www/hoge.php
cd /home/xxxxx/www/;/usr/local/bin/php hoge.php
cd /home/xxxxx/www/ && /usr/local/bin/php hoge.php
cd /home/xxxxx/www/ | /usr/local/bin/php hoge.php

さくらのレンタル―サーバーのCRONでファイルの呼び出し方が変わっていた
今までは一行目の呼び出し方でファイルの実行が可能だったのですが
この頃、仕様が変わったのかは分かりませんが、さくらのヘルプにも書いているように
実行させたいディレクトリまで、まずは移動して
走らせたいファイルを実行するという事を行わないと実行されません。
(※実行される場合もあり?)
二行目から解説すると二行目は、移動できなくても次の処理を実行します。
三行目は移動できたら処理を実行します。
四行目は処理は実行されませんが、こういう書き方もあるよ的な
事で書いてます。「|」この記号で処理と処理を結ぶと
Aの処理で帰ってきた値などをBの処理に引き継ぐことが出来ます。
簡単にいえばパラメータを渡すことが出来ます。
WEBでShellをちょっとしたときに使う場合、上記の方法を
つかう事が多いと思います。
覚えていたら何かと役に立ちますよ!!
 

タグ

AM, bin, cron, home, local, php hoge.php, shell, usr, xxxxx, サーバー, さくら, ディレクトリ, パラメータ, ファイル, ヘルプ, レンタル, 処理, 呼び出し方, 書き方, 記号,