Petit client + ajax + php

Description

Permet d'executer des commandes via la commande shell_exec(), Les requettes qui sont envoyer via la page html au script php.

Pour le fonctionnement, deux fichiers.
shell.php qui execute $_GET['shell']; et affiche le resultat.
et le fichier shell.html qui permet d'envoyer la requette au script php qui permet l'affiche du resultat de la commande, via XMLHttpRequest.

Source / Exemple :


shell.html :

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
body 	{ background-color:black; color:white; font-size:10px;				}
pre  	{ padding-top:2px; 								}
#input_ { border:1px solid black; width:70%; background-color:black; color:white; 	}
#status { display:block; position:fixed; right:1px; bottom:1px;  background-color:red;  }
</style>
<script type="text/javascript">
//AJAX
var FILE_SCRIPT="shell.php"

function status_write(txt)
{
	document.getElementById('status').innerHTML=txt;
}

function getXhr()
{
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
		xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		 } catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else { 
		status_write("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	} 
return xhr;
}

function ajax_load() //quand ca charge
{ 
	status_write("Chargement en cours ...");
} 
function ajax_end(){ // quand ca a fini
	status_write("Chargement terminé");
}
function wget(get)
{ 
	var xhr_object=getXhr();
	ajax_load();
	xhr_object.open("GET", get, false);
	xhr_object.setRequestHeader("Content-type","text/html ; charset=utf-8");
	xhr_object.send(null);
	ajax_end();
	if(xhr_object.readyState == 4) 
		return (xhr_object.responseText);    
}

//FIN AJAX

function submit_f()
{
	document.getElementById('txt').innerHTML=root+input+"\n"+wget(FILE_SCRIPT+"?shell="+encodeURIComponent(document.getElementById("input_").value)+"");
	document.getElementById('input_').focus();

	return false;
}

var root="<span style='color:red'>root@kiki67100</span>:<span style='color:blue'>~</span># ";
var input="<input name='s' type='text' id='input_'>";

window.onload=function()
{	
	document.getElementById("txt").innerHTML=root+input;
	document.getElementById("input_").focus();
}

</script>
</head>
<body>
<div id="status"></div>
<form name="form" onsubmit="return submit_f()" >
<pre id="txt"></pre>
</form>
</body>
</html>

shell.php :

<?php
if(isset($_GET['shell']))
	echo shell_exec($_GET['shell']);
?>

Conclusion :


Le script ne gère pas tous ce qui est "intéractif" ( nano, vi, dialog ...).

Si vous voulez changer le nom du script php changer juste la variable "FILE_SCRIPT" par ce que vous voulez.

À vos clavier.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.