POPULARITY
InfosecTrain hosts a Free Workshop “20-Hrs FREE CYBERSECURITY ORIENTATION PROGRAM” with certified expert ‘Abhishek' Thank you for Listening this Podcast, For more details or free demo with our expert write into us at sales@infosectrain.com ✅ Agenda Covered ➡️ XSS (Cross Site Scripting) Practical
It's just too easy to attack websites using Cross Site Scripting (XSS). The XSS Rat demonstrates XSS attacks. XSS Rat explains and demos cross-site scripting (xss) attacks. // MENU // 00:00 ▶️ We are taking over the world! 00:16 ▶️ Introducing//XSS Rat//Wesley 01:28 ▶️ What is XSS/ Cross Site Scripting? 02:59 ▶️ Types of XSS 05:15 ▶️ Reflected XSS 06:22 ▶️ Example of data sanitization 07:35 ▶️ Circumventing filtering with the img tag 11:01 ▶️ Sending a Reflected XSS Attack to Someone 12:01 ▶️ Using HTML comments as an attack vector 13:49 ▶️ Using single quotes to break out of the input tag 15:14 ▶️ Don't use alert() to test for XSS 17:33 ▶️ What you can do with Reflected XSS 19:26 ▶️ Stored XSS 20:31 ▶️ Using comments for XSS 21:05 ▶️ Example #1 of Stored XSS on Twitter 21:42 ▶️ Example #2 of Stored XSS 22:12 -▶️ The answer to the ultimate question of life, the universe, and everything. 22:56 ▶️ Stored vs Reflected XSS 24:22 ▶️ AngularJS/Client Side Template Injection 25:06 ▶️ Don't use JavaScript? 26:09 ▶️ Where to learn more//XSS Survival Guide 27:04 ▶️ DOM Based XSS 29:36 ▶️ List of DOM sinks 30:12 ▶️ jQuery DOM sinks 32:15 ▶️ XSS Rat Live Training 33:00 ▶️ Support XSS Rat//Wesley 34:06 ▶️ Closing//Thanks, Wesley! // Demo Sites // XSS Labs: https://hackxpert.com/labs/RXSS/GET/ Labs site: https://hackxpert.com/labs Rat Site: https://hackxpert.com/ratsite // David's SOCIAL // Discord: https://discord.com/invite/usKSyzb Twitter: https://www.twitter.com/davidbombal Instagram: https://www.instagram.com/davidbombal LinkedIn: https://www.linkedin.com/in/davidbombal Facebook: https://www.facebook.com/davidbombal.co TikTok: http://tiktok.com/@davidbombal YouTube: https://www.youtube.com/davidbombal // XSS Rat SOCIAL // Twitter: https://twitter.com/theXSSrat YouTube: youtube.com/c/TheXSSrat Website: https://thexssrat.podia.com/ // XSS Rat's Udemy course // XSS Survival Guide: https://www.udemy.com/course/xss-surv... // XSS Rat's courses and bootcamps // https://thexssrat.podia.com/ // MY STUFF // https://www.amazon.com/shop/davidbombal // SPONSORS // Interested in sponsoring my videos? Reach out to my team here: sponsors@davidbombal.com xss cross site scripting portswigger ajax jscript javascript xss attack xss video tutorial xss attack tutorial xss explained xss attack example xss bug bounty xss tutorial xss vulnerability xss vs csrf attack xss example xsser xsssa facebook xsssa kali linux penetration testing ethical hacking bug bounty cross site scripting cross-site scripting red teaming cyber security kali linux install kali linux 2022 ethical hacker course ethical hacker javascript ajax jquery node js node js hacking portswigger Please note that links listed may be affiliate links and provide me with a small percentage/kickback should you use them to purchase any of the items listed or recommended. Thank you for supporting me and this channel! #xss #javascript #hacking
Hãy tải ứng dụng Waves để cập nhật những tập podcast mới nhất và có những trải nghiệm miễn phí tuyệt vời nhất: iOS: https://apps.apple.com/gb/app/waves-podcast-player/id1492378044 Android: https://play.google.com/store/apps/details?id=com.waves8.app Trong kì này của series Hack cùng Code Dạo, chúng mình sẽ cùng tìm hiểu về lỗ hổng bảo mật XSS - Cross-Site Scripting nha.Kênh podcast Tôi Đi Code Dạo được hợp tác sản xuất bởi Phạm Huy Hoàng và Waves. Các bạn có thể xem các video của Phạm Huy Hoàng tại đây: https://www.youtube.com/channel/UCdV9tn79v3ecSDpC1AjVKawWaves là một nền tảng âm thanh trực tuyến, chuyên cung cấp những audiobook và podcast dành riêng cho người Việt. Các bạn có thể nghe được tất cả các podcast nổi tiếng tại Việt Nam trên Waves. Hơn thế, bạn cũng có thể xây dựng chương trình podcast riêng cho mình. Nếu như bạn là một YouTuber và không muốn tên tuổi của mình chỉ xuất hiện trên YouTube mà còn có một kênh podcast của riêng mình, các bạn có thể gửi thư đến hello@waves8.com để được hỗ trợ nhé.Website: https://waves8.com/ Facebook: https://www.facebook.com/WavesVietnam/ Instagram: @wavesvietnam
0:30 - Eksperymenty w Node.js 3:30 - Co to jest Node.js? Do czego się nadaje? Jak działa? 8:30 - Skąd pomysł na backend w JavaScript? 11:00 - Rynek pracy 12:00 - Przerzucenie się na Node.js w jeden dzień? 14:00 - Podatność na XSS (Cross Site Scripting) 17:30 - Metoda ataku Cross-site request forgery 20:50 - Podatność Prototype Pollution 24:00 - Audyt bezpieczeństwa zależności (npm audit, yarn audit) 27:30 - Narzędzia do dbania o bezpieczeństwo 37:30 - Content Security Policy - Co to jest I jak działa? 40:00 - Korzystanie z “gotowców” 43:00 - CORS 46:40 - Skąd czerpać wiedzę o bezpieczeństwie? 50:40 - Jaki jest najlepszy sposób na uwierzytelnianie? 57:00 - Wycieki pamięci Rozmówca: Zbyszek Tenerowicz (https://naugtur.pl) Full-stack developer na codzień rozwijający ponad 30 aplikacji Node.js w swoim zespole w firmie Egnyte. Entuzjasta open-source i jeden z najdłużej działających w społeczności Meet.js Poland (zarówno jako prelegent oraz organizator). Od niedawna szczęśliwy tata. Rozmawiał: Artur Chmaro, Materiały do nauki: https://owasp.org/www-project-top-ten/ https://owasp.org/www-community/xss-filter-evasion-cheatsheet https://naugtur.pl/pres3/securedev2/v2.html#/ Dawid Bałut, super materiały na YT, o bezpieczeństwie i nie tylko: https://www.youtube.com/channel/UC1h6AnWkWOUOC4BlIr51R8w/ https://www.youtube.com/watch?v=04c0JiE8YNQ Wycieki pamięci: https://naugtur.pl/pres3/memnew/#/ https://github.com/nodejs/diagnostics/blob/master/documentation/memory/step2/using_heap_snapshot.md Projekty open-source wspomniane w materiale: https://github.com/naugtur/npm-audit-resolver https://github.com/naugtur/handsfreeyoutube fun nerds: https://www.youtube.com/watch?v=3UAOs9B9UH8 Zapisz się na newsletter Fullstak i nie przegap kolejnych materiałów: https://fullstak.pl/newsletter
Bienvenue dans l’épisode 14 ! On va continuer un peu sur la sécurité, après un épisode complet sur une approche générale et un autre sur les injections. Il nous reste deux types de failles du top 10 de l’OWASP, et dans ma grossière qualification ça donne : “faux et usage de faux” (impostures, arnaques…) “la porte était ouverte” (ou une autre porte) “trop d’infos disponibles” La sécurité par l’obscurité Mais dès qu’on se dit que laisser trop d’infos c’est une mauvaise sécurité, on pourrait croire qu’une bonne sécurité c’est laisser peu d’informations. Bien entendu, ça ne suffit pas. Trop d’infos, ça augmente les chances qu’un attaquant trouve une porte d’entrée, et pourquoi pas un moyen spécifique de l’attaquer (on réduit les possibilités auxquelles il devrait se préparer), mais la base reste quand même d’avoir toutes ses portes bien sécurisées. Si votre clé est sous le paillasson ou sous un pot de fleurs, elle n’est pas en évidence, mais vous avez quand même un double dans la nature et vous ne faites qu’espérer que personne ne le trouvera. Au lieu de vous dire “ma porte et ma clé sont sécurisées”, vous devez alors vous assurer que : personne n’ira par hasard chercher sous le paillasson lors des rares occasions où je dois chercher mon double, personne ne me voit quand je donne la cachette à une connaissance, personne n’entend Et bien sûr puisque vous avez transmis votre confiance, s’assurer que cette personne mérite cette confiance, ne fera pas de double, n’ébruitera pas votre secret, etc. Passe et Backdoor Entre parenthèses, c’est tout à fait l’enjeu du récent procès entre Apple et le FBI : autoriser une “Master Key”, un passe, surtout si c’est public, fait que les attaquants ne vont plus nécessairement chercher à pirater les maisons une par une, mais simplement tenter de récupérer le passe qui leur ouvrira d’un coup toutes les maisons. La porte n’était pas fermée La sécurité d’une chaîne est celle de son maillon le plus faible. L’adage est connu. Le plus bête : vous avez une super porte, mais vous avez oublié de la fermer en partant. C’est le cas “mauvaise configuration” de l’OWASP : vous avez des outils, qui sont bons et bien choisis, mais vous les utilisez de travers, ou vous oubliez de les brancher. La fenêtre était ouverte Presque aussi bête, puisque ça ne vient pas de vous : une de vos dépendances est vulnérable. La porte d’entrée est fermée, mais il y a une fenêtre ouverte au rez-de-chaussée. Tous nos systèmes informatiques et tous nos logiciels sont composés de nombreuses petites parties qui s’articulent entre elles. Si vous vous basez sur tel outil ou telle bibliothèque un peu vieille, sa dernière version a peut-être mis des correctifs de sécurité. Ne pas la mettre à jour, c’est risquer de se faire attaquer par là. Le problème c’est que les dépendances d’un logiciel sont de plus en plus nombreuses et ajoutent elles-mêmes d’autres dépendances. La vérification de chacune devient vite pénible, sauf si vous la faites automatiquement. Heureusement, chaque langage et framework vient de plus en plus avec son gestionnaire de dépendances, et outre les commandes pour installer et mettre à jour des paquets, ces outils proposent souvent aussi de lister les paquets à mettre à jour, obsolètes etc. La porte est restée ouverte trop longtemps C’est un peu le cas du fraudeur qui passe le portillon du métro derrière d’autres : la porte est là, elle marche, elle est plutôt bien dimensionnée, mais il y a des cas où c’est ouvert trop grand, trop longtemps etc. Ce n’est pas suffisant, mais c’est la raison pour laquelle certaines applications vont vous déconnecter après un temps d’inactivité, vous faire changer de mot de passe de temps à autre, vous rappeler de supprimer les accès qui n’ont plus raison d’être, rappeler de ne pas prêter son badge, etc. L’accès pièce par pièce, placard par placard Enfin, la métaphore a là aussi atteint ses limites d’utilité. Je parlais de la sécurité de votre habitation, et il y a un “dehors” et un “dedans”. Une fois “dedans” on peut tout faire. Dans un logiciel, on peut et on veut souvent être bien plus spécifique : une zone pour les administrateurs et une zone pour les clients, très souvent. On pourrait dire aussi : une zone pour la gestion de stock, une autre pour la comptabilité. Un accès pour la succursale de chaque département, et un accès global pour consolider les infos. Imaginez une telle finesse chez vous : le facteur peut entrer s’il a un trop gros colis, mais ne peut que laisser un colis dans l’entrée ; la voisine peut nourrir le chat, mais pas aller dans les chambres ; les enfants ont accès aux placards pour les boissons et le repas, mais pas pour piller les desserts et les bonbons. L’une des failles d’OWASP est d’oublier ou de mal configurer ce genre d’accès. Dans leur section propre à Ruby on Rails, ça donne même un conseil de plus : utiliser les “strong parameters” pour que le concept “modifier un enregistrement” se limite à certains champs, et eux seuls. Je laisse trop d’infos Maintenant qu’il est clair que cacher des choses ne vous sauvera pas, on garde quand même la logique de rendre les attaques plus dures, plus longues, plus complexes et plus visibles. Bref, on peut quand même éviter de simplifier les attaques. Par exemple, un attaquant peut tenter de vous envoyer un email en se faisant passer pour votre banque. S’il se trompe de banque, non seulement il ne vous aura pas, mais en plus il va potentiellement vous mettre la puce à l’oreille pour la prochaine tentative. S’il fait un envoi de plusieurs spams avec chacune des banques les plus probables, l’attaque est plus longue et plus visible, et vous vous doutez non seulement qu’on vous en veut, mais d’où les attaques viennent en ce moment. En cas de doute, vous serez plus enclin à appeler votre banque pour confirmation, et elle vous précisera en général comment identifier un mail qui vient bien de chez eux, et vous précisera probablement que JAMAIS ils ne vous demanderont de mots de passe ou données confidentielles par email. German Tank Problem De même, si vos identifiants sont numériques et croissants, sans même vouloir vous attaquer, vos concurrents sont capables de voir votre progression : tiens, mon compte test d’hier est le numéro 300, mon compte test d’aujourd’hui est le numéro 400, et l’entreprise prétend avoir des milliers d’inscriptions par jour, et des millions d’utilisateurs au total ? Peu crédible. Open API Laisser trop d’infos, comme vos identifiants ou la liste de vos champs, très classique dans le cas d’une API ouverte à l’extérieur, permet à un attaquant de mieux cibler ses tentatives d’injection. Si je sais qui sont les admins, où est le champ qui donne les droits… CSRF Tout cela nous mène au dernier point, la CSRF, prononcée Sea-Surf, pour Cross-Site Request Forgery : fausse requête de site à site. Si un attaquant sait que votre site a une URL qui fait quelque chose, par exemple vous désinscrire, ou valider un transfert d’argent, ou vous faire voter dans un concours en ligne qui l’intéresse, il peut en profiter pour vous faire cliquer ou vous faire faire une requête du genre, depuis un autre site, par exemple avec un lien “cliquez ici pour voir des photos de chatons”. On se protège rarement de cela pour des requêtes en lecture (GET), mais pour un formulaire qui envoie des informations, Rails va souvent ajouter son CSRF-token, un “jeton unique” avec une clé qui permet de se dire “tiens, l’utilisateur souhaite voter pour le concours, mais pourtant il ne connaît pas la clé que je lui ai donnée, c’est donc qu’il vient probablement d’un endroit que nous n’avions pas prévu”. OWASP TOP 10 Bref, révision rapide du top 10 de l’OWASP : Faussaires, imposteurs et passe-passe 1. injection SQL ?. injection shell 3. XSS (Cross-Site Scripting) 10. redirections non vérifiées Je laisse la porte ouverte 5. Mauvaise configuration 9. Dépendances vulnérables 2. Authentification / gestion des sessions 7. Missing function level access control ?. Oubli des `strong parameters` Je laisse trop d’infos 4. Insecure direct object references 6. Sensitive data exposure Un peu un mix : 8. CSRF - Cross Site Request Forgery vous avez confiance en votre browser mais il est prédictible et je vous ferai cliquer sur un lien Je pense que pour la suite du sujet je vais vous laisser vous documenter auprès de qui de droit, la technique et les sujets pointus ne tiendront pas dans un format audio ni en 5~10mn, et j’espère que vous avez une meilleure idée de la sécurité, ses enjeux, et les endroits où vous pouvez intervenir. À bientôt !
Bonjour, bienvenue dans l’épisode 13. Dans l’épisode 011. À l’attaque ! on a fait une introduction sur la sécurité : une vision globale pour éviter de se perdre sur la technique, en comparant avec la sécurité de votre habitation. Pour mieux se protéger, il est important de comprendre comment pense l’attaquant, et comment les points techniques de la sécurité se traduiraient dans le monde réel… Disons plutôt le monde physique, par opposition à virtuel ou numérique, parce que vu la place des technologies dans notre vie, le monde numérique est tout à fait réel. Je vais me baser sur douze erreurs classiques listées par le projet OWASP (Open Web Application Security Project), que je classe grossièrement en “usage de documents falsifiés”, “la porte était restée ouverte”, et “j’ai laissé trop d’informations à l’attaquant”. Encore une fois, je ne veux pas vous empêcher de dormir la nuit, mais après avoir acheté et fait installer une porte d’entrée très solide avec des clés compliquées, c’est sûr qu’on se sent bête d’avoir laissé le garage ouvert ou la clé sur la porte. Faux et usage de faux Une énorme partie de ces erreurs vient tout bêtement par “imposture” : un ordre arrive, vous croyez qu’il faut l’exécuter, mais il s’agit en fait d’un mensonge placé là par un attaquant. Le souci c’est que chaque canal de communication sur chaque partie de vos systèmes peut avoir son attaque appropriée. Depuis des siècles, on a aussi plusieurs personnes ou équipes qui vont faire des faux : fausses lettres, fausses signatures, fausse monnaie… Vous faites confiance à l’autorité, à la signature, à un papier qui ressemble à de l’argent, et vous êtes coincés. Injection Encore plus facile que de fabriquer un faux message royal, imaginons que le contenu du message soit : “faites ce que dira mon messager”. Vous prenez la place du messager, et vous avez gagné. Et encore plus facile que tout cela : si le message du roi a une zone blanche dans laquelle vous pouvez écrire tout ce que vous voulez, le message, la signature, le messager ont beau être connus et certifiés, vous ajoutez “et vous donnerez une forte somme d’argent à untel”, et tout tombe à l’eau. De même, vous faites tourner du code sur toute une infrastructure (machine, OS, BDD…) et vous avez besoin que le code leur envoie des ordres. Si ces ordres viennent du monde extérieur, vous DEVEZ vous en méfier. Le plus connu c’est l’injection SQL. On va écrire une requête très simple, SELECT * FROM users where email = "#{params[:email]}" AND active = true et quel que soit votre langage vous aurez une méthode pour dire “dans la chaîne de texte qui représente ma requête, ajoute ici la chaîne de texte qui vient du champ de recherche, du champ login etc. Si jamais j’entre une recherche avec du code SQL dedans, je peux par exemple faire croire que la chaîne email est finie avec un caractère simple quote ou double quote (qui ressemblent à des ‘apostrophes’ ou “guillemets” respectivement), que la requête est finie avec un point virgule, puis je continue à écrire le code SQL que je veux pour détruire ou récupérer vos données (un mot de passe admin par exemple, ou modifier le montant de ma facture), et enfin je termine en mettant le reste en commentaire pour éviter toute erreur de syntaxe. Ça y est, votre base de données fait confiance à la chaîne de caractères ainsi envoyée, mais elle contient de quoi vous attaquer de l’intérieur. En Ruby on Rails, comme dans la plupart des frameworks Web ou bibliothèques pour accéder à la base de données, on trouvera des mécanismes qui évitent cela en interdisant ou en “échappant” les caractères : tout guillemet contenu dans le paramètre email sera traduit afin que la base de données comprenne que ce n’est pas la fin de la chaîne, mais un guillemet dans la recherche : Personne.active.where(email: params[:email]) Autres injections Dès que vous parlez à quelqu’un qui vous fait confiance, c’est le même problème. Il existe l’injection shell, qui envoie des commandes à votre ligne de commande, et via laquelle on peut attaquer le système d’exploitation du serveur. Il y a aussi les XSS (Cross-Site Scripting) : le but pour l’attaquant est d’écrire du Javascript qui va tourner dans la même page que votre site. Par exemple, si dans mon champ email de tout à l’heure j’écris du JS et que dans une page vous affichez mon JS sans “échapper” les caractères, il a gagné. Gagné ? Eh oui, il peut voir plein de choses, comme vos cookies, et envoyer tout ce qu’il trouve sur un autre site. Par exemple, récupérer la session sur votre banque en ligne et émettre des virements. Enfin, en JS, en affichage ou autres, si j’arrive à vous faire cliquer sur un lien qui vous sort du site en question, je peux faire du phishing (hameçonnage en français) : au lieu d’aller sur le site de la banque, vous allez sur un site qui appartient à l’attaquant, aux mêmes couleurs, qui vous fait croire que vous êtes déconnecté par exemple. Vous rentrez alors votre login et mot de passe… sur le site de l’attaquant. Là ce n’est plus du tout une histoire de sécurité sur VOTRE site, mais de filoutage classique où l’on vous met de la poudre aux yeux pour avoir des informations confidentielles. Toutefois, vous pouvez au moins de votre côté et pour vos utilisateurs, éviter le XSS et pour les redirections intempestives, a minima les éviter, interdire, ou les rendre plus difficiles ou plus évidentes : si je dois me reconnecter à ma banque juste après avoir vu “vous allez sortir de votre espace sécurisé”, je suis plus méfiant. alert(‘pwn3d’) Et c’est pour cela que vous voyez des démos de sécurité, où il y a écrit alert("bad security") et un popup navigateur avec le message “bad security”, bien sûr ça ne fait rien de grave. Ce que la personne vient de vous prouvez, c’est que vous êtes vulnérables à ce XSS et à ces redirections de votre site vers un site vérolé. Autres attaques L’épisode est assez long, je vais garder huit autres failles et vulnérabilités pour la suite. Je ne vais pas les dicter mais vous pourrez les trouver, ainsi que des liens vers le site OWASP et la présentation à ParisRB de Dorian Lupu sur la page de l’article zenm4.net/013/ - à bientôt ! http://slides.com/kundigo/if-you-are-hacked-via-owasp-top-10-you-re-not-allowed-to-call-it-advanced-or-sophisticated#/5
Símbolo WordPrecious Neste episódio, falamos sobre: Eventos e Acontecimentos 1 - Versão 4.4.2 do Wordpress, correção de XSS ( Cross Site Scripting) 2 - Aniversário de 15 anos CMS do Drupal e comparação com o Wordpress que tem 12. 3 - Conferência sobre a REST API 28/1 em Londres 4 - REST API com 61 Bugs reportados 5 - Analisando a performance do seu site com Google Pagespeed Insights 6 - Plugins de Construção de Páginas Plugins de Page Builders Uma das tendências do mundo wordpress é a crescente demanda por produtos que façam de tudo. Estou falando de temas multi-uso e plugins de page builder. Plugins de page builder dão a usuários Wordpress um jeito fácil de criarem leiautes customizados para seus sites, e uma porção de características e funcionalidades em um só lugar. Eles facilitam nossa vida e a comunidade não se cansa deles, plugins page builders dominam as vendas. Agora, existem alguns plugins page builders muito utilizados como Visual Composer, Beaver Builder, Divi Builder, Motopress, Velocity Page e Themify Builder. Links Notas da versão 4.4.2 do Wordpress Notas do Update de Segurança do DRUPAL Sites que famosos usam DRUPAL Sites famosos que usam DRUPAL 2 HackerOne Página de Bugs do REST API (WP-API) Videos de 0 day Exploits para wordpress: 1, 2, 3, 4 Pagespeed Insights TORQUEMAG.IO Prós e Contras de Plugins de Construção de Páginas Comparativo Beaver Builder x Divi Builder (Visual Composer está fora da disputa??) Visual Composer x Beaver Builder Divi Plugin Overview Chris Lema Comparando temas Drag-n-Drop WP Beginner Comparando Plugins Drag-n-Drop Plugins Visual Composer Beaver Builder Beaver Builder Lite Divi Builder Motopress