Ali*_*guy 187
<?php echo exec('whoami'); ?>
mar*_*rio 75
如果可用,您可以使用posix_geteuid
,然后获取用户名 来探测当前用户帐户posix_getpwuid
.
$username = posix_getpwuid(posix_geteuid())['name'];
Run Code Online (Sandbox Code Playgroud)
但是,如果您在安全模式下运行(通常是exec被禁用时的情况),那么您的PHP进程不太可能在默认www-data
或apache
帐户之外的任何情况下运行.
Jon*_*uhn 67
一种落后的方式,但没有exec/system:
file_put_contents("testFile", "test");
$user = fileowner("testFile");
unlink("testFile");
Run Code Online (Sandbox Code Playgroud)
如果您创建文件,则所有者将是PHP用户.
这也可能与任何临时文件函数一起运行,例如tempnam()
,它在临时目录中创建一个随机文件并返回该文件的名称.如果由于权限open_basedir
或安全模式之类的问题导致无法编写文件,通常仍会允许临时目录.
Set*_*eth 20
更多细节将是有用的,但假设它是一个Linux系统,并假设php在apache下运行,它将运行为用户apache运行的.
一个简单的方法来检查(再次,假设一些unix像环境)是创建一个PHP文件:
<?php
print shell_exec( 'whoami' );
?>
Run Code Online (Sandbox Code Playgroud)
这会给你的用户.
对于我的AWS实例,我在apache
运行此脚本时获得输出.
小智 15
您可以尝试使用这样的反引号:
echo `whoami`;
Run Code Online (Sandbox Code Playgroud)
Gab*_*ves 10
您可以直接从 shell 运行:
php -r "echo exec('whoami');"
Run Code Online (Sandbox Code Playgroud)
我会用:
lsof -i
lsof -i | less
lsof -i | grep :http
Run Code Online (Sandbox Code Playgroud)
任何这些.您可以在ssh命令行中键入em,您将看到哪些用户正在侦听哪些服务.
你也可以去查看这个文件:
more /etc/apache2/envvars
Run Code Online (Sandbox Code Playgroud)
并寻找这些线:
export APACHE_RUN_USER=user-name
export APACHE_RUN_GROUP=group-name
Run Code Online (Sandbox Code Playgroud)
要过滤掉envvars文件数据,可以使用grep:
more /etc/apache2/envvars |grep APACHE_RUN_
Run Code Online (Sandbox Code Playgroud)
exec('whoami')
会这样做
<?php
echo exec('whoami');
?>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
149556 次 |
最近记录: |