実行時にアップローダにシェル(リバースシェル)を付与するPHPファイルをアップロードするオプションを持つラップトップでCTFのようなものをテストしていますが、問題があります。私がするとき
su - www-data
cd /tmp
php -S 0.0.0.0:80 #upload.php is present uploaded data is saved in this dir
#it gives permission denied and i do
sudo php -S 0.0.0.0:80 #it runs
PHP シェルに直接アップロードすると、次の結果が表示されます。根シェル。したがって、PHPサーバーは次のように実行されます。根。ルールはapache2やnginxを使用できませんが、phpは使用できるということです。また、管理者特権ユーザー(www-dataと仮定)でPHPサーバーを実行する方法があり、シェルをアップロードするときに通常のCTFなどのwww-dataを取得する必要があります。
答え1
特権ポートを使用しています。 1024より低いポートのみをroot
聞くことができます。そのため、Apacheは次のように始まりroot
(そして残り)、ワーカープロセスはwww-data
次のように始まります。
1023以上のポートをお試しください。
答え2
次のコマンドを使用すると、すべてのポートでPHPを実行できます。
setcap -v cap_net_bind_service=+ep "$(readlink -f "$(which php)")"
返される場合:(/usr/bin/binary differs in [pe]
エラーです。)-v
最初に引数なしで実行してください。