JSON Web Keys (JWK & JWT) - "Emergency" - HackTheBox Business CTF

Поділитися
Вставка
  • Опубліковано 2 жов 2024

КОМЕНТАРІ • 88

  • @joeymelo2882
    @joeymelo2882 3 роки тому +23

    John: “Man, I’m falling apart”
    Everyone: We’ve all been there John. We’ve all been there.
    Thanks for the video:D

  • @gokoo123
    @gokoo123 2 роки тому +4

    @18:31 you killed gunicorn again after killing it near minute 18, but you didn't kill nginx either time :D

  • @Sarveshpanditrao
    @Sarveshpanditrao 3 роки тому +18

    Setup tour

    • @aumbhatt5339
      @aumbhatt5339 3 роки тому +1

      He already did one 6 months ago...

  • @user-oz5hi1px7e
    @user-oz5hi1px7e 3 роки тому +19

    I love it when u do the "WHY?"

  • @alexlefevre8226
    @alexlefevre8226 3 роки тому +14

    Every time, every video, I learn... I learn a TON. I earned my CS degree in 2012, which is for all intents and purposes, one complete stage of evolution of the field. I missed streamlined AI/ML, as they were all electives that required department approval. I also missed in depth server side scripting such as JSON, but we DID do a lot of PHP and our main focus coding wise was C++.
    We learned nothing pertaining to pentesting or security measure beyond solutions offered in a basic web portal when one purchased hosting.
    We did an oddly large amount of assembly, as well.
    I've learned more about security, malware, and generally understanding what you present here than a 4 year degree. You are awesome and have a forever subscriber.

    • @Joettyy
      @Joettyy Рік тому

      hows it going now?

  • @kyand920
    @kyand920 3 роки тому +13

    This for some reasons gave me a pico ctf challenge flashback that john did, it involved JWT

  • @xXReVo_LuTiOnXx
    @xXReVo_LuTiOnXx 3 роки тому +8

    Why does Jwt allow this behaviour ?
    I mean there should be some strict content Policy like "JWT" can only be checked to a domain which it is used by or something, everything else is really stupid isn't it ?

    • @tartas1995
      @tartas1995 3 роки тому +4

      If I understand you correctly, you are asking why the system is using a "random" source for verification. The answer is that it is kind of the point of the concept JWT. the service that is using JWT would host the "key" itself, the service could be using the good old session ids. The point of JWT is to have authentification and service seperated. The domain with the service trusts the authentification service and simply checks if the token is valid using the public key from the authentification service and the signature from the token. In this case, the service was coded to use the "jku" in the token which makes sense if you have multiple trusted authentification services (think authentification via google, facebook, ...). But the service failed to check if it trusts the jku in the first place. (My understanding could be wrong or incomplete)

    • @arpee1337
      @arpee1337 3 роки тому

      That's pretty much it. This can actually be seen as a "feature" but the server blindly trusted whatever was there

    • @MaZe741
      @MaZe741 3 роки тому

      I dont understand how the JKU can be changed to anything so easily, whats the vulnerability?

    • @lukegaskell8214
      @lukegaskell8214 3 роки тому

      The problem is that typically that well known endpoint is just set on the server side (therefore would always verify against the correct keys).
      This vulnerability was allowing the user to not only provide the jwt… but also how to verify the jwt (well known endpoint in the token)

  • @pengrey
    @pengrey 3 роки тому +5

    John this one was a bit confusing to follow, maybe next time some more slow pace. But loving this series keep on o/

  • @MaZe741
    @MaZe741 3 роки тому +7

    whats the main takeaway? how come the jku location can be changed to anything? please talk about what the vulnerability was here - just human error?

    • @leduyminh48
      @leduyminh48 3 роки тому

      because it is not supposed to be in the header for user to change, you cannot trust the header for that information. Instead, it should look up the jwks_uri through .well-known/config endpoint before using it for verifying signature

  • @DizzySpark
    @DizzySpark 3 роки тому +5

    Weird question... was the "rogin" screen sanitized?

  • @serg472
    @serg472 3 роки тому +3

    I don't get it, what was the vulnerability? This type of authentication surely isn't supposed to fall apart essentially from just setting "user=admin" inside a cookie.

    • @lukegaskell8214
      @lukegaskell8214 3 роки тому

      The vulnerability is that it was allowing the token to dictate how it verified the signature….
      Basically… tell me who you are and tell me how to verify that.
      I should know how to verify without you telling me.

  • @lokithedark1
    @lokithedark1 3 роки тому +2

    lol I saw python4 was like darn whyd I spend so long getting the hang of 3

  • @tehvvisard
    @tehvvisard 3 роки тому +4

    Depending on how the check is setup on the server side you might just have been able to create a new token with username: admin. Not all apis check the signed part only that the jku matches

  • @karolmilewczyk8338
    @karolmilewczyk8338 2 роки тому +1

    Edit the audio out when typing your passwords. People can interpolate the keystrokes from their frequency.

  • @Dygear
    @Dygear 3 роки тому +3

    Actually super helpful to me. I have to use JWTs and I didn't understand them at all. This helped so much and allows me to avoid a pitfall of them as well.

  • @cheezedoodles3447
    @cheezedoodles3447 3 роки тому +4

    I enjoy these ctf videos so much! Thanks for the content John, keep these daily uploads!

  • @ventsislavkirkov
    @ventsislavkirkov 3 роки тому +1

    I like listening to Seth Rogen hacking :)

  • @dedkeny
    @dedkeny 3 роки тому +4

    Python4... I just stared into the eyes of the future!

    • @Reelix
      @Reelix 3 роки тому +1

      By the time python4 rolls around, maybe people will have stopped using python2 - Maybe :p

    • @Yetzederixx
      @Yetzederixx 3 роки тому

      probably not lol

  • @xpau2
    @xpau2 Рік тому

    2:27 your chrome is outdated. lmao 😂
    you are missing some important security updates !!
    I know that issue..

  • @zihasz5305
    @zihasz5305 3 роки тому +1

    you should install a json viewer extension for chrome :)

  • @villager8358
    @villager8358 3 роки тому +3

    its GREAT that you upload daily!

  • @lifeisgameplayit
    @lifeisgameplayit 2 роки тому

    Arent you doing a brain surgery just now by explaining how jwk works ? ;>

  • @geraldmilton9740
    @geraldmilton9740 20 днів тому

    Jones Melissa Williams William Rodriguez George

  • @flaviuscondurache2688
    @flaviuscondurache2688 3 роки тому +7

    Was I the only one who was screaming: use ngrok?

    • @grandmakisses9973
      @grandmakisses9973 3 роки тому

      I was thinking it

    • @HAGSLAB
      @HAGSLAB 3 роки тому +1

      Was thinking the same 😂 John has used ngrok multiple times before, so not sure why he opted to use his prod server this time 😆 I may have done the same thing though 😝

  • @hyperblackhole2105
    @hyperblackhole2105 4 місяці тому

    can we still do this without the public facing website?

  • @kylefaust7743
    @kylefaust7743 3 роки тому +1

    I have been studying networking for the last month and I still have Zero clue what he does with these videos but I am DETERMINDED to figure it out so I can not only follow him on videos but also Solve these problems myself!!! Thanks for the video! loved your cast on HTB battelgrounds and here's hoping for more!

    • @charlesejiegbu5372
      @charlesejiegbu5372 Рік тому

      Hey, it’s been a year since you made this vow, how’s it been going since then? Have you made some progress in your learning thus far?

  • @JaraMoni-q6l
    @JaraMoni-q6l 17 днів тому

    Lopez Deborah Brown Mary Clark Brian

  • @eternalskywalker9440
    @eternalskywalker9440 Рік тому

    I find it hard to believe that you would find a live app that would accept a key from an arbitrary domain. Vetting the signer should be a basic task.

  • @hanpoyang
    @hanpoyang 2 роки тому

    Why it contains the pk file path? is it so rediculous? i've been confused. :-), It is realy a excellent presentation.

  • @Maik.iptoux
    @Maik.iptoux 3 роки тому

    Minute 15: alg, alg, alg!!! Something you don't see the things in front of your eyes 👀😂

  • @zeratax
    @zeratax 3 роки тому

    this is so weird to me lmao. this jku field makes like no sense to me and seems sooo insecure i hate jwt. i guess it's like supposed to be used with a whitelist? but what's even the point?

  • @itstoxicqt
    @itstoxicqt 3 роки тому

    Damn should of watched this earlier would of helped tons in the hactivitycon warm up stuff today lol

  • @mthariqsunur9868
    @mthariqsunur9868 3 роки тому +7

    What a browser extentsion you using?

    • @mithushanjalangan5132
      @mithushanjalangan5132 3 роки тому

      Was going to comments the same! Want to know as well!

    • @a.k_theportal3085
      @a.k_theportal3085 3 роки тому +2

      Cookie editing one? It's called EditThisCookie

    • @jakecrowley6
      @jakecrowley6 3 роки тому

      You can also edit cookies directly in Chrome without any extensions by going to Dev Tools (ctrl+shift+I) -> application tab -> cookies

  • @jocsamisrraine
    @jocsamisrraine 10 місяців тому

    Good one, still watching from Brazil in 2023

  • @dominic_dl2114
    @dominic_dl2114 3 роки тому

    We do not know how it Signet... alg: rs256 Well xD

  • @NeXXyD
    @NeXXyD 3 роки тому +2

    TOOD

  • @EiRA-hiE-x
    @EiRA-hiE-x 3 роки тому

    Damn, I feel like I should never use jwt again lol

  • @challengercybersec2155
    @challengercybersec2155 2 роки тому

    Ed Sheeran is amazing at infosec stuff.

  • @patrickconrad2874
    @patrickconrad2874 2 роки тому

    what problems could this cause from a dev stand point? How can I prevent this? Thanks for the content.

    • @eternalskywalker9440
      @eternalskywalker9440 Рік тому

      Vett the signing key. Know where it comes from.
      This is a dumb exploit to be vulnerable to-very basic.

  • @matteoleone5705
    @matteoleone5705 3 роки тому

    I really liked the première! I think this will be really useful in many occasions. Thanks John!

  • @zombie9503
    @zombie9503 3 роки тому

    Great video as always! , much love man

  • @villager8358
    @villager8358 3 роки тому

    I just wonder: how old are you John ?

  • @TJCREATIVETECH
    @TJCREATIVETECH 3 роки тому

    Bye John👋👋Good Night!!

  • @TheOcta5
    @TheOcta5 3 роки тому

    I hope in the future to solve things like you do, great job John!

  • @Johnny-tw5pr
    @Johnny-tw5pr 3 роки тому

    How do I find these machines on HTB?

  • @chippyswoodworking1765
    @chippyswoodworking1765 3 роки тому

    Great video. I learn a lot from your channel.

  • @shunhasfaithfaith6693
    @shunhasfaithfaith6693 3 роки тому

    do analysis of asyncRAT

  • @BearkFearGamer
    @BearkFearGamer 3 роки тому

    Amazing man, you're are expert!

  • @TJCREATIVETECH
    @TJCREATIVETECH 3 роки тому

    Super

  • @stanislavsmetanin1307
    @stanislavsmetanin1307 3 роки тому

    Bravo maestro 👏👏👏👍

  • @shivamgoyal796
    @shivamgoyal796 3 роки тому +3

    Which plugin you use to check the jwt token ?

    • @aveon9888
      @aveon9888 3 роки тому +2

      i think it is cookiemanager

    • @KGIV
      @KGIV 3 роки тому

      @@aveon9888 That's the one.

  • @harshkashyap8045
    @harshkashyap8045 3 роки тому

    Good luck 👍

  • @JuanBotes
    @JuanBotes 3 роки тому

    :)

  • @ca7986
    @ca7986 3 роки тому

    ❤️

  • @claudiafischering901
    @claudiafischering901 3 роки тому +1

    JWT is really not secure enough for me. When John breaks so fast into - I never want to use JWT. So I still use php-session - That is more secure ; I think. ^^ Thanks for the video.

    • @safwanljd
      @safwanljd 3 роки тому +4

      JWT is secure when configured correctly

    • @mohdalif
      @mohdalif 3 роки тому

      Do check out JWE for additional security of JWT. My advice is to go stateless, simple & easier to scale. Storing session on the server side I guess is fine for a nonscaling web app.

  • @free_coursesforyou6861
    @free_coursesforyou6861 Рік тому

    Look I know he does the whole process with us and all but sometimes it's like hold up hold up how'd we get here???

  • @free_coursesforyou6861
    @free_coursesforyou6861 Рік тому

    HIS SO SMART BRO, MAN'S JUST