1. LCFIB- 2007 Seguretat en aplicacions web Jordi Planadecursach [email_address] Héctor Puente [email_address]
2. LCFIB- 2007 Parlarem de… Protocol HTTP Sistemes d’autenticació Cookies Vulnerabilitats més comuns Polítiques de control d’accés Tractament d’erros i logging
3. LCFIB- 2007 Parlarem de… Com protegir dades sensibles Polítiques de seguretat Testing de seguretat
39. LCFIB- 2007 Username: admin Password: 1234 SQL generat: SELECT * FROM logins WHERE username=‘ admin ’ AND password=‘ 1234 ’ ; Username: admin Password: ‘ OR ‘’=‘ SQL generat: SELECT * FROM logins WHERE username=‘ admin ’ AND password=‘ ‘ OR ‘’=‘ ’ ; Username: admin Password: ’; DROP TABLE logins where ‘’=‘ SQL generat: SELECT * FROM logins WHERE username=‘ admin ’ AND password=‘ ’; drop table logins where ‘’=‘ ’ ; String sql = “ SELECT * FROM logins WHERE username=‘” + username + “’ AND password=‘” + password + “’” ;
40.
41.
42. LCFIB- 2007 Username: admin Password: 1 OR 1=1 SQL generat: SELECT * FROM logins WHERE username=‘ admin ’ AND pin_code= 1 OR 1=1 Altres vectors: 1 OR HAVING 1=1 Error, ‘cuenta_corriente’ is not on the group by clause 1 OR GROUP BY cuenta_corriente HAVING 1=1 Error, ‘dni’ is not on the group by clause 1 OR GROUP BY cuenta_corriente,dni HAVING 1=1 Error, ‘direccion’ is not on the group by clause 1 OR (SELECT cuenta_corriente FROM logins) = “1234 1000 6666 45256” 1 OR (SELECT cuenta_corriente FROM logins) > “5000 0000 0000 0000” 1 OR (SELECT substr(cuenta_corriente,1) FROM logins) = chr(1) String sql = “ SELECT * FROM logins WHERE username=‘” + username + “’ AND pin_code=” + pin_code ;
74. LCFIB- 2007 Hacker Obtenció d’URL d’administració CREAR NOU USUARI + Esbrinar la URL de la pàgina de crear un nou usuari + Esbrinar el nom dels camps del formulari (nom, id, email) + Construir URL tal que si s’accedeix a ella es dona d’alta l’usuari especificat ASSIGNAR PERMISOS D’ADMINISTRACIÓ + Idem que l’anterior però usant la pàgina d’assignar permisos Obtenir URL
75. LCFIB- 2007 Hacker <script> … crear_usuari(X) fer_administrador(X) … </script> Creació de Script maligne SCRIPT + Cridar URL1 (crear nou usuari) + Cridar URL2 (assigna al nou usuari permisos d’administrador) (si s’utilitzen peticions AJAX l’usuari no se n’adona de que ha executat un script)
76. LCFIB- 2007 Hacker Introduir script maligne com a comentari a l’e-blog <script> … crear_usuari(X) administrador(X) … </script> Introduir SCRIPT a l’e-Blog
77. LCFIB- 2007 Hacker Ingenieria social Administrador Enviar un mail a l’admin amb l’enllaç al blog Quan l’administrador vagi a veure el Blog, si aquest està identificat, s’executarà l’script insertat. Aquest crearà un nou usuari amb permisos d’administrador que el hacker podrà utilitzar per fer maldats. També es podria robar la cookie de l’admin per tal de fer una suplantació d’identitat.