Insecure Deserialization Attack Explained

Поделиться
HTML-код
  • Опубликовано: 8 сен 2024
  • #Deserialization #WebSecurity
    We'll explore the basic concepts of an Insecure Deserialization by attacking a web app written in Python.
    🐤 Twitter: / pwnfunction
    🎵 Track: Warriyo - Mortals (feat. Laura Brehm)
    NCS link: • Warriyo - Mortals (fea...

Комментарии • 244

  • @PwnFunction
    @PwnFunction  3 года назад +213

    eyJtZXNzYWdlIjoiaGVsbG8gdGltZSB3YXN0ZXIsIHdlbGNvbWUgdG8gdGhlIGNsdWIuIiwgInNlY3JldCI6Imh0dHBzOi8vYml0Lmx5LzNqc1BxUXoifQ==

    • @pwndumb2903
      @pwndumb2903 3 года назад +3

      Cool

    • @mrhappysmiley2968
      @mrhappysmiley2968 3 года назад +35

      I hate you

    • @3N18AKPzmGOsBgWKH
      @3N18AKPzmGOsBgWKH 3 года назад +23

      Well that was mean! xD But i like it ;)

    • @anushmanglani5979
      @anushmanglani5979 3 года назад +4

      Smart Ass!!
      BTW: how can you italicize the python keywords in VSCode?

    • @sodiboo
      @sodiboo 3 года назад +28

      Can’t copy youtube comments on mobile :(
      But i recognize the ey, that’s JSON!

  • @wnathanielw
    @wnathanielw 3 года назад +222

    This channel is so underrated

    • @loanqypol6797
      @loanqypol6797 3 года назад +5

      completely, i just discovered it, the end music is perfect

    • @Fadhilx
      @Fadhilx 3 года назад +2

      @@loanqypol6797 agreed

    • @thatguy5277
      @thatguy5277 3 года назад +2

      It's a programming channel
      No matter how good it is, most people are sadly extremely bored by programming content

    • @darknessandbelow.4640
      @darknessandbelow.4640 3 года назад +2

      @@thatguy5277 In fact, Programming is actually so enjoyable if u wish to learn it.

  • @fr0mage
    @fr0mage 3 года назад +165

    Amazing video! It would be great if you could also include a small section at the end on how to defend against these vulnerabilities for the blue team people out there :D

    • @PwnFunction
      @PwnFunction  3 года назад +66

      Noted

    • @shivaganesh6939
      @shivaganesh6939 3 года назад

      Yes it is....

    • @mabakalox2353
      @mabakalox2353 3 года назад +11

      The simple way to defend against such attack is to check cookie string at first place, that this cookie was created by your server, before calling serializer. I mean Digital signature at cookie.

    • @dacid44
      @dacid44 3 года назад +16

      Certain serialization methods are also more secure than others. For example, don't use pickle. It literally has a huge warning at the top of it's documentation saying not to use it to (de)serialize untrusted data. Other forms like JSON are more secure (though check documentation for whichever library you might want to use to be sure.) This can still depend on your implementation though. JSON isn't secure just because it's JSON, if you write a deserializer that generates and runs code from the JSON, that could still be a vulnerability.

    • @hilligans1
      @hilligans1 3 года назад +1

      @@dacid44 just write the serialization and deserialization yourself with two methods. Boom easy

  • @batatakhizou4509
    @batatakhizou4509 3 года назад +15

    One of the best tutorials channel out there, MADE RESPECT TO YOU

  • @marlon582
    @marlon582 3 года назад +22

    Your timing with these videos is pretty good! When I finished a challenge about Server-Side Template Injections you uploaded the video about SSTIs. And today I finished a challenge about Deserialization Attacks and now you uploaded this! Haha, keep it going man :)

    • @PwnFunction
      @PwnFunction  3 года назад +30

      I can see the future because your computer is my computer.

    • @coder_rc
      @coder_rc 3 года назад +1

      @@PwnFunction 😂😂

    • @karthibalaji3817
      @karthibalaji3817 3 года назад +2

      😂

  • @3N18AKPzmGOsBgWKH
    @3N18AKPzmGOsBgWKH 3 года назад +8

    I found your channel earlier today when trying to search for anyone explaining the difference between XSS in HTML and XSS in json requests. Haven't had the luck but saw your XSS video. Loved it a lot and shared it with my co-workers! Trying to advance myself in web application pentesting and understand everything. It's rare to see people explain in a good way and even get things drawn graphically in front of you. It helps a lot so thank you!
    I've been working with this for about a year from being freshly new from university. All you learn is mostly the theoretical part and not the practical. What i've recently noticed is that i lack the knowledge in HTML to be able to perform and really understand XSSes. So i have also been on the look out to create a web application and use some HTML to really understand JavaScript.
    p.s Just got myself two 1TB M2 SSD for my Raspian :P Already have pi-hole installed and will now fiddle with creating an OpenMediaVault to create my own NAS. Hoping by fiddling with stuff like this, will give me more knowledge in actual hacking and understanding it all. Will be fun! Love your videos! have only seen two of them. Saving the rest for the weekend. Good job with them all and greetings from Sweden! :P

    • @PwnFunction
      @PwnFunction  3 года назад +3

      I very much appreciate comments like these, thanks.
      Also I do think it's necessary for one to learn HTML and Javascript to understand XSS on a fundamental level.

  • @telnobynoyator_6183
    @telnobynoyator_6183 3 года назад +3

    came for the penguin profile pic, stayed for the awesome content

  • @Omar-wm9kz
    @Omar-wm9kz 3 года назад +3

    the only teachers which i like Pwn for these awesome videos and net-ninja for explainning java script and web technologies.

  • @eccentricOrange
    @eccentricOrange 2 года назад +1

    1:04 I love how you took a moment there and then actually estimate "5 hours or so" as though it was meant to be precise :D

  • @rishabhtiwari6641
    @rishabhtiwari6641 3 года назад +48

    Just imagine if this guy creates his own course. That would be crazy.

    • @mr.rabbit5642
      @mr.rabbit5642 Год назад

      Is that sarcastic or there truly aren't any? :((

  • @alexandros7832
    @alexandros7832 3 года назад

    The gif of the person banging his head against the desk accurately sums up my pentesting career… love all your content btw

  • @vxqr2788
    @vxqr2788 3 года назад

    I have nothing to add, but to support this channel I will leave a comment.

  • @thesmartguy3523
    @thesmartguy3523 3 года назад +1

    Quality content like this is what is needed more. Kudos to you mate - waiting for more.

  • @prog_demos
    @prog_demos 3 года назад +3

    You're doing an amazing job. I have no idea why you don't have like 2 mil subs. I'm sure that in like a year or two we'll be there as well.
    Greetings from a fellow Gen Z-er from Croatia

  • @venkateshpandian7239
    @venkateshpandian7239 3 года назад +2

    I have a request dear brother/mentor. You are posting really good stuff here 😊 big congratulations for that 😊👍. We need a complete course from you covering all the basics to advanced of hacking... So that it is helpful for lots of new comers like me. 😊👍 Hope you consider this !!!!

  • @avilde
    @avilde 2 года назад +1

    Well done with ilustrations and quite a good explanation. Definetely would be useful to also hear how to defend against such attacks )

  • @_DeProgrammer
    @_DeProgrammer 3 года назад +3

    great video! Got a ton out of this! Thank you so much for all your amazing content!

  • @janwrona9539
    @janwrona9539 Год назад

    Great explanation of what de/serialization is !

  • @corbyere
    @corbyere 3 года назад

    thank you so much, best and most concise, easy to understand videos that saved my webtechnologies course grade. i'm reviewing for my exam and your videos came just in time

  • @_xylotus_
    @_xylotus_ 3 года назад

    Keep going man, pretty underrated channel. I bet it'll gain some more popuation over time. The video has good quality.

  • @khanhhnahk1
    @khanhhnahk1 Год назад

    Thank you so much for your explaination, cant find anywhere else better than yours, hope you can make a lot more videos related to web vulnerabilities :D

  • @geigerflo37
    @geigerflo37 3 года назад +1

    Your video quality is insane!

  • @casual_gamer987
    @casual_gamer987 3 года назад

    I hit like button at your example of Serialization! Great video and explanation! Thanks

  • @Vazzible_gaming
    @Vazzible_gaming 6 месяцев назад

    I have a good idea for you, might I suggest you try giving us some QNA notes or questions at the beginning of each video, giving us the necessary question, and then you go onto answer the questions in depth in the rest of the video.

  • @hyugacirsei3377
    @hyugacirsei3377 3 года назад

    Just a comment to say the content of your channel is great

  • @reyaaoki
    @reyaaoki 3 года назад +1

    and that's why you should always sign this kind of stuff

  • @ammaarshamail
    @ammaarshamail 3 года назад +1

    amazingly i understood every bit of it...Thanks..it means alot!!!

  • @okal7706
    @okal7706 3 года назад

    Excellent video! I've encountered this issue myself from a developer perspective, the workarounds are usually to either use a non-serialized format (i.e. store parameters in XML) or to only deserialize binaries signed with some server-side key.

    • @somebodystealsmyname
      @somebodystealsmyname 3 года назад +2

      I mostly slap a JWT around these things. Makes it simple to create and parse.

    • @okal7706
      @okal7706 3 года назад

      @@somebodystealsmyname Very nice although mine was actually not a web application.

    • @xeridea
      @xeridea 2 года назад

      Store parameters in JSON, and manually load them back in. I haven't had a reason to actually raw serialize an object. If need to store in a database or whatever I just use JSON... which is technically serialization, just not raw objects. Haven't touched Python though, I don't like the language. Mainly PHP, Java, or C++.

  • @mukulgaut
    @mukulgaut 3 года назад +6

    Just one word PERFECT

    • @PwnFunction
      @PwnFunction  3 года назад +4

      🙏

    • @ifelseprog
      @ifelseprog 3 года назад

      @@PwnFunction 🙏

    • @NightDragonPlayz_2
      @NightDragonPlayz_2 3 года назад +1

      @@ifelseprog
      SO PERFECT
      function subscribe2PWN()
      Redirection.load = subscribe
      Site.function.load = www.youtube.com
      (Not real html js)

  • @MrMrCraftmine
    @MrMrCraftmine 3 года назад +3

    So normally the client would send a pickled + base64 encoded session object to the server? That means there should be Python running on the Client Browser? This is the easiest security hole to stuff, just don't use pickles. Use JSON or XML instead.

    • @seroamado6283
      @seroamado6283 2 года назад +1

      youre right, I didn't even know someone would actually restore objects in this way.

  • @mohitkashyap5393
    @mohitkashyap5393 3 года назад

    mission passes + respect + concept amazing explanation please make more videos

  • @shinkaihuang6286
    @shinkaihuang6286 3 года назад

    man it's so damn cool! please keep creating videos. you'll be successful

  • @jamisonmartino1136
    @jamisonmartino1136 3 года назад +1

    Your vids are amazing, thanks so much!

  • @malikashtar7216
    @malikashtar7216 3 года назад

    Channels underrated but only one request would like mic volume to increase!!! 😍

  • @sajidali-hs4vv
    @sajidali-hs4vv Год назад

    каждый раз 10% это здорово спасибо за связки

  • @jenyasidyakin8061
    @jenyasidyakin8061 3 года назад

    I hope to see more videos on your channel. This content is special

  • @MadlipzMarathi
    @MadlipzMarathi 3 года назад +2

    If you Deserialization object with verificarion is your fault not pythons , This can be done with any Language, nice video btw.

  • @Thiscantbeanyone
    @Thiscantbeanyone Год назад

    This means the server should store cookies in python pickles, so that when reading pickled cookies to unpickle it, the bad code runs, this is a very specific situation, but its still a cool way to explain serialization and to say to not copy&paste random code into web compiler

  • @shaddy9648
    @shaddy9648 3 года назад

    That Keeanu Reeves joke was funny man

  • @DaggerMan11
    @DaggerMan11 3 года назад

    this exploit is so elegant and cool! thanks!

  • @ogwokwilliam3891
    @ogwokwilliam3891 3 года назад

    Wowww the intro is killer

  • @idan4329
    @idan4329 3 года назад +2

    I don't get the web exploit:
    1.Does the server must have python installed or is this some kind of a asm shellcode?
    2.You didn't show the deserialization code on the server
    3.How can one distinct between local effects and remote successful rce?

  • @annomy1493
    @annomy1493 3 года назад

    Simple but great. Good work.

  • @adityyyaaa
    @adityyyaaa 2 месяца назад

    you hyped me up for cybersec

  • @khalilbouzidi8432
    @khalilbouzidi8432 3 года назад +1

    thanks a lot for this very educational content

  • @lusidras3682
    @lusidras3682 3 года назад

    Thank you!! love your videos!

  • @xenonbox9393
    @xenonbox9393 3 года назад

    The legend is back!

  • @mudassiralvi1
    @mudassiralvi1 3 года назад

    Your videos are exceptional

  • @saladking980
    @saladking980 3 года назад

    Love your content, man! I'm curious about what you use to draw on screen? What software & hardware do you use for drawing?

  • @chiragbablani8325
    @chiragbablani8325 3 года назад

    Bring more of these please!

  • @4ag2
    @4ag2 3 года назад

    I love your teaching methodology 💯🔥

  • @anik6393
    @anik6393 3 года назад

    Best video ever i have been seen ❤️

  • @tarankaranth8782
    @tarankaranth8782 2 года назад

    awesome presentation.

  • @lisannasil2346
    @lisannasil2346 5 месяцев назад

    you're a legend!

  • @patrickslomian7423
    @patrickslomian7423 3 года назад

    Maan ! Love your videos !

  • @ukaszkiepas57
    @ukaszkiepas57 2 месяца назад

    thank you !!!! Awesome !!!

  • @kolorytoweoke
    @kolorytoweoke 3 года назад

    great explanation, thanks a lot!

  • @alfatihflowlesk4010
    @alfatihflowlesk4010 3 года назад

    ur videos man is too good !

  • @checkmate6732
    @checkmate6732 3 года назад

    great job! continue please : D

  • @coder_rc
    @coder_rc 3 года назад +1

    As I said the best RUclipsr of Indian web security community.
    If you don't know he is Indian!.

    • @sudhanshurajbhar9635
      @sudhanshurajbhar9635 3 года назад +1

      Any references? I can't believe it 😅

    • @sudhanshurajbhar9635
      @sudhanshurajbhar9635 3 года назад +1

      Ok i see now, from his intigriti profile

    • @coder_rc
      @coder_rc 3 года назад +1

      @@sudhanshurajbhar9635 We are proud of him😎

    • @ChelGaming
      @ChelGaming 3 года назад

      wow nice. his pronunciation is really good

  • @maulikshah28
    @maulikshah28 3 года назад +1

    Veautiful video man
    You deserve the like and subscribe

  • @TheRetsekShow2236
    @TheRetsekShow2236 3 года назад +1

    Great video!!

  • @ducky1681
    @ducky1681 2 года назад +1

    Most disturbing part of this is that the server runs windows(or at least powershell).

  • @galitan5881
    @galitan5881 3 года назад

    I didnt see comin, it was so fast !!!

  • @smiley_1000
    @smiley_1000 3 года назад +5

    I don't see how python is particularly vulnerable to this. You using an insecure package is not the languages fault.

    • @alagaika8515
      @alagaika8515 3 года назад +6

      Especially if the documentation of the package screams THIS IS INSECURE! DO NOT USE WITH UNTRUSTED INPUTS

    • @lismanrazvan5783
      @lismanrazvan5783 2 года назад +2

      it's about the concept...

  • @user-ly8yz6ym1q
    @user-ly8yz6ym1q 2 месяца назад

    amazing 🔥

  • @ratulhasan7136
    @ratulhasan7136 2 года назад +1

    Quick question: how did python code run in the server? Is it converted to ASM or some global language?

  • @karthibalaji3817
    @karthibalaji3817 3 года назад

    Osm breakdown👍.

  • @DHIRAL2908
    @DHIRAL2908 3 года назад

    Would love a vid on prototype pollution!

  • @lerooyferr3725
    @lerooyferr3725 2 года назад

    really cool and easy to understand. Agree @NathanielWard

  • @fabiorj2008
    @fabiorj2008 2 года назад

    Hi , amazing video. Its possible let the app available to download in a docker environment ?

  • @crashpol9693
    @crashpol9693 3 года назад

    Very good video!

  • @infosecman
    @infosecman 2 года назад

    Great explanation, Thank you!

  • @igu642
    @igu642 2 года назад

    You awesome thank you

  • @loradawn
    @loradawn 3 года назад +1

    Not only that your explanations are great, but you got a huge talent to draw/sketch, so you should change the hobby... (just kidding). :)

  • @20kilograma
    @20kilograma 3 года назад

    Nice man, You are good, no you are best :)

  • @draklowell
    @draklowell 2 года назад

    Who uses pickle for serialization/deserialization on production?

  • @hk3564
    @hk3564 2 года назад

    That was lit

  • @0xyg3nSecurity
    @0xyg3nSecurity 3 года назад

    Love ur vids

  • @musicforalifetime133
    @musicforalifetime133 3 года назад +1

    what font do you use for terminal?

  • @abdessalam8468
    @abdessalam8468 3 года назад +1

    Thank you
    Please , api attack

  • @udaynarayanmukherjee5208
    @udaynarayanmukherjee5208 3 года назад

    Nice and superb art style.
    Btw What's the font on your terminal (python prompt)

  • @alperkaya8919
    @alperkaya8919 2 года назад

    Basically, creator of the website trusts that you have given valid inputs instead of they checking your inputs.

  • @Me.n_n
    @Me.n_n 3 года назад

    Woow great ^^

  • @techwithwhiteboard3483
    @techwithwhiteboard3483 3 года назад

    love it

  • @fun_childdhood
    @fun_childdhood 3 года назад

    I want more !

  • @abdiwahabahmedomar2399
    @abdiwahabahmedomar2399 3 года назад

    cool its work!

  • @user-uw5ck9xm4l
    @user-uw5ck9xm4l Год назад

    What I am not getting here is : the command is executed on server side (deserialization) , but how is shell obtained at client side ? It should have been on server side itself . Please correct if I am wrong here

  • @king_tv4
    @king_tv4 2 года назад

    What software do you use for your screen explanation

  • @syedalizainnaqvi9450
    @syedalizainnaqvi9450 3 года назад

    you are awesome.

  • @lordlenno6791
    @lordlenno6791 3 года назад

    Did somebody know which musik playes in the backround
    PS: thanks for your great videos

  • @ittzhardy6236
    @ittzhardy6236 3 года назад

    i wait you for new video❤

  • @tarankaranth8782
    @tarankaranth8782 2 года назад

    one question, wouldnt this be an issue for all the existing restapi code we have,?

  • @jesikalisa2598
    @jesikalisa2598 3 года назад

    Cool

  • @almorga
    @almorga 3 года назад

    are there any vulnerable test apps you recommend to practice this? can you share what you used?

  • @eduardoandrescastilloperer4810
    @eduardoandrescastilloperer4810 7 месяцев назад

    As Patrick star once said:
    I’ve come for your pickle!!!

  • @tbc...
    @tbc... 2 года назад

    What is the typography you're using on your vscode instance?

  • @aphelioschenik3162
    @aphelioschenik3162 2 года назад

    Yo i have a question ! Is Laravel safe against these type of attacks ? Compared to Django witch is using python ( a prototyped style of OOP) it's possible to inject some functions in session cookie and execute them using something like constructor, but for Laravel i think it's impossible to do the same thing, so please correct me if i m wrong , and thanks in advance.

  • @gamesdean8620
    @gamesdean8620 3 года назад

    I think K. Reeves is 491 in 2021. But the rest of the video is fine. Jokes apart, excellent as always

  • @antimatter6728
    @antimatter6728 3 года назад

    How do i know that the website has the vulnerability