Insecure Deserialization Attack Explained

  Рет қаралды 113,332

PwnFunction

PwnFunction

Күн бұрын

Пікірлер: 244
@PwnFunction
@PwnFunction 3 жыл бұрын
eyJtZXNzYWdlIjoiaGVsbG8gdGltZSB3YXN0ZXIsIHdlbGNvbWUgdG8gdGhlIGNsdWIuIiwgInNlY3JldCI6Imh0dHBzOi8vYml0Lmx5LzNqc1BxUXoifQ==
@pwndumb2903
@pwndumb2903 3 жыл бұрын
Cool
@mrhappysmiley2968
@mrhappysmiley2968 3 жыл бұрын
I hate you
@RnVjayBZb3V0dWJl
@RnVjayBZb3V0dWJl 3 жыл бұрын
Well that was mean! xD But i like it ;)
@anushmanglani5979
@anushmanglani5979 3 жыл бұрын
Smart Ass!! BTW: how can you italicize the python keywords in VSCode?
@sodiboo
@sodiboo 3 жыл бұрын
Can’t copy youtube comments on mobile :( But i recognize the ey, that’s JSON!
@wnathanielw
@wnathanielw 3 жыл бұрын
This channel is so underrated
@loanqypol6797
@loanqypol6797 3 жыл бұрын
completely, i just discovered it, the end music is perfect
@Fadhilx
@Fadhilx 3 жыл бұрын
@@loanqypol6797 agreed
@thatguy5277
@thatguy5277 3 жыл бұрын
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 жыл бұрын
@@thatguy5277 In fact, Programming is actually so enjoyable if u wish to learn it.
@fr0mage
@fr0mage 4 жыл бұрын
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 жыл бұрын
Noted
@shivaganesh6939
@shivaganesh6939 3 жыл бұрын
Yes it is....
@mabakalox2353
@mabakalox2353 3 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@dacid44 just write the serialization and deserialization yourself with two methods. Boom easy
@batatakhizou4509
@batatakhizou4509 4 жыл бұрын
One of the best tutorials channel out there, MADE RESPECT TO YOU
@felixw8004
@felixw8004 2 жыл бұрын
made respect. yeah-...
@RnVjayBZb3V0dWJl
@RnVjayBZb3V0dWJl 3 жыл бұрын
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 жыл бұрын
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.
@eccentricOrange
@eccentricOrange 2 жыл бұрын
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
@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
@marlon582
@marlon582 4 жыл бұрын
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 4 жыл бұрын
I can see the future because your computer is my computer.
@coder_rc
@coder_rc 4 жыл бұрын
@@PwnFunction 😂😂
@karthibalaji3817
@karthibalaji3817 3 жыл бұрын
😂
@telnobynoyator_6183
@telnobynoyator_6183 3 жыл бұрын
came for the penguin profile pic, stayed for the awesome content
@Omar-wm9kz
@Omar-wm9kz 4 жыл бұрын
the only teachers which i like Pwn for these awesome videos and net-ninja for explainning java script and web technologies.
@PwnFunction
@PwnFunction 4 жыл бұрын
🙏
@rishabhtiwari6641
@rishabhtiwari6641 3 жыл бұрын
Just imagine if this guy creates his own course. That would be crazy.
@mr.rabbit5642
@mr.rabbit5642 2 жыл бұрын
Is that sarcastic or there truly aren't any? :((
@thesmartguy3523
@thesmartguy3523 3 жыл бұрын
Quality content like this is what is needed more. Kudos to you mate - waiting for more.
@prog_demos
@prog_demos 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
@_xylotus_
@_xylotus_ 3 жыл бұрын
Keep going man, pretty underrated channel. I bet it'll gain some more popuation over time. The video has good quality.
@vxqr2788
@vxqr2788 3 жыл бұрын
I have nothing to add, but to support this channel I will leave a comment.
@geigerflo37
@geigerflo37 3 жыл бұрын
Your video quality is insane!
@malikashtar7216
@malikashtar7216 3 жыл бұрын
Channels underrated but only one request would like mic volume to increase!!! 😍
@avilde
@avilde 3 жыл бұрын
Well done with ilustrations and quite a good explanation. Definetely would be useful to also hear how to defend against such attacks )
@Thiscantbeanyone
@Thiscantbeanyone 2 жыл бұрын
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
@Vazzible_gaming
@Vazzible_gaming 9 ай бұрын
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.
@khanhhnahk1
@khanhhnahk1 2 жыл бұрын
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
@hyugacirsei3377
@hyugacirsei3377 4 жыл бұрын
Just a comment to say the content of your channel is great
@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
@venkateshpandian7239
@venkateshpandian7239 3 жыл бұрын
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 !!!!
@janwrona9539
@janwrona9539 Жыл бұрын
Great explanation of what de/serialization is !
@MrMrCraftmine
@MrMrCraftmine 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 3 жыл бұрын
youre right, I didn't even know someone would actually restore objects in this way.
@ducky1681
@ducky1681 2 жыл бұрын
Most disturbing part of this is that the server runs windows(or at least powershell).
@_DeProgrammer
@_DeProgrammer 4 жыл бұрын
great video! Got a ton out of this! Thank you so much for all your amazing content!
@ratulhasan7136
@ratulhasan7136 2 жыл бұрын
Quick question: how did python code run in the server? Is it converted to ASM or some global language?
@idan4329
@idan4329 3 жыл бұрын
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?
@shinkaihuang6286
@shinkaihuang6286 3 жыл бұрын
man it's so damn cool! please keep creating videos. you'll be successful
@mukulgaut
@mukulgaut 3 жыл бұрын
Just one word PERFECT
@PwnFunction
@PwnFunction 3 жыл бұрын
🙏
@ifelseprog
@ifelseprog 3 жыл бұрын
@@PwnFunction 🙏
@NightDragonPlayz_2
@NightDragonPlayz_2 3 жыл бұрын
@@ifelseprog SO PERFECT function subscribe2PWN() Redirection.load = subscribe Site.function.load = www.youtube.com (Not real html js)
@casual_gamer987
@casual_gamer987 3 жыл бұрын
I hit like button at your example of Serialization! Great video and explanation! Thanks
@mohitkashyap5393
@mohitkashyap5393 4 жыл бұрын
mission passes + respect + concept amazing explanation please make more videos
@draklowell
@draklowell 2 жыл бұрын
Who uses pickle for serialization/deserialization on production?
@musicforalifetime133
@musicforalifetime133 3 жыл бұрын
what font do you use for terminal?
@jenyasidyakin8061
@jenyasidyakin8061 3 жыл бұрын
I hope to see more videos on your channel. This content is special
@xenonbox9393
@xenonbox9393 3 жыл бұрын
The legend is back!
@fabiorj2008
@fabiorj2008 2 жыл бұрын
Hi , amazing video. Its possible let the app available to download in a docker environment ?
@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?
@reyaaoki
@reyaaoki 3 жыл бұрын
and that's why you should always sign this kind of stuff
@coder_rc
@coder_rc 4 жыл бұрын
As I said the best KZbinr of Indian web security community. If you don't know he is Indian!.
@sudhanshurajbhar9635
@sudhanshurajbhar9635 4 жыл бұрын
Any references? I can't believe it 😅
@sudhanshurajbhar9635
@sudhanshurajbhar9635 4 жыл бұрын
Ok i see now, from his intigriti profile
@coder_rc
@coder_rc 4 жыл бұрын
@@sudhanshurajbhar9635 We are proud of him😎
@ChelGaming
@ChelGaming 3 жыл бұрын
wow nice. his pronunciation is really good
@MadlipzMarathi
@MadlipzMarathi 3 жыл бұрын
If you Deserialization object with verificarion is your fault not pythons , This can be done with any Language, nice video btw.
@ammaarshamail
@ammaarshamail 3 жыл бұрын
amazingly i understood every bit of it...Thanks..it means alot!!!
@king_tv4
@king_tv4 2 жыл бұрын
What software do you use for your screen explanation
@berkaybakacak
@berkaybakacak 3 жыл бұрын
Is this vulnerability still exists in Django?
@tbc...
@tbc... 2 жыл бұрын
What is the typography you're using on your vscode instance?
@chiefkeeflover4
@chiefkeeflover4 3 жыл бұрын
Your vids are amazing, thanks so much!
@btmg4828
@btmg4828 3 жыл бұрын
how about to Link the Stackoverflow post?
@btmg4828
@btmg4828 3 жыл бұрын
stackoverflow.com/questions/19855156/whats-the-exact-usage-of-reduce-in-pickler
@tarankaranth8782
@tarankaranth8782 3 жыл бұрын
one question, wouldnt this be an issue for all the existing restapi code we have,?
@sajidali-hs4vv
@sajidali-hs4vv Жыл бұрын
каждый раз 10% это здорово спасибо за связки
@annomy1493
@annomy1493 4 жыл бұрын
Simple but great. Good work.
@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 жыл бұрын
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 3 жыл бұрын
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++.
@udaynarayanmukherjee5208
@udaynarayanmukherjee5208 3 жыл бұрын
Nice and superb art style. Btw What's the font on your terminal (python prompt)
@ramalho3439
@ramalho3439 3 жыл бұрын
i want this font too.
@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.
@anik6393
@anik6393 3 жыл бұрын
Best video ever i have been seen ❤️
@Manabender
@Manabender 3 жыл бұрын
How come the base-64-encoded cookie has a run of AAAAAAAA in it? Is the cookie screaming? Does it need help? *Should I be concerned!?* (but no really why is that there?)
@cmyk8964
@cmyk8964 3 жыл бұрын
In Base64, the letter “A” corresponds to the bits “000000”.
@Manabender
@Manabender 3 жыл бұрын
@@cmyk8964 So, long runs of zeroes get converted into A's. Or, emptiness gets converted into screaming. Sounds like midlife crisis.
@mudassiralvi1
@mudassiralvi1 3 жыл бұрын
Your videos are exceptional
@antimatter6728
@antimatter6728 3 жыл бұрын
How do i know that the website has the vulnerability
@chiragbablani8325
@chiragbablani8325 4 жыл бұрын
Bring more of these please!
@gerardosuarez9051
@gerardosuarez9051 2 жыл бұрын
what is your font in visual studio?
@AlienAndrew51
@AlienAndrew51 3 жыл бұрын
Now how do you prevent these attacks? I guess just checking for the correct command or using a list off commands that are allowed would work. Also, limiting the permissions on the server as well.
@PwnFunction
@PwnFunction 3 жыл бұрын
A better solution would be to sign the cookie with a secret key and any changes made to the cookie will result in a different signature. Now the server has to just drop the request if the signature is invalid.
@AlienAndrew51
@AlienAndrew51 3 жыл бұрын
@@PwnFunction Ah, that makes sense! Thanks for the reply!
@4ag2
@4ag2 4 жыл бұрын
I love your teaching methodology 💯🔥
@dilawar_uchiha
@dilawar_uchiha 3 жыл бұрын
I mean you have clear warnings in pickle docs, for a moment I thought you pulled it off as json
@renify_
@renify_ 3 жыл бұрын
this is same thing happen last year about Drupal8 CMS , serialization RCE
@almorga
@almorga 3 жыл бұрын
are there any vulnerable test apps you recommend to practice this? can you share what you used?
@DaggerMan11
@DaggerMan11 3 жыл бұрын
this exploit is so elegant and cool! thanks!
@wael_shaikh
@wael_shaikh 3 жыл бұрын
I was wondering... Can't we just call os.system('id') within the ___reduce___ function itself instead of by passing it as a return value?
@PwnFunction
@PwnFunction 3 жыл бұрын
`__reduce__` is called during serialization, this means that you'll execute `id` in your system while creating the payload. Only the return values of the `__reduce__` is called during deserialization.
@lusidras3682
@lusidras3682 4 жыл бұрын
Thank you!! love your videos!
@bilguun2765
@bilguun2765 3 жыл бұрын
What editor did you use for edit your video?
@adityyyaaa
@adityyyaaa 6 ай бұрын
you hyped me up for cybersec
@fusca14tube
@fusca14tube 3 жыл бұрын
EXCELLENT! How can you mitigate it from the python server-side?
@PwnFunction
@PwnFunction 3 жыл бұрын
By signing the cookie with a secret. Any changes made to the cookie will result in a completely different signature. Server has to validate this signature and drop the request if it's invalid.
@mrnobody1286
@mrnobody1286 3 жыл бұрын
@@PwnFunction I guess he says just use JWT token :)
@debug9424
@debug9424 3 жыл бұрын
@@PwnFunction using pickle at all is plainly unsafe (by design) , and the python documentation gives ample warnings about just that. It's made for different use-cases where there's no untrusted input to deserialise, and where the capability of re-creating arbitrary objects is needed. A real fix is using a safe (de)serialiser for a safe format, like the builtin json module, which cannot create arbitrary objects, but only dicts, lists, strings, ints, floats, booleans, and None. Safe (de)serialisers also lack the ability to run arbitrary code.
@iftakharhussain
@iftakharhussain 3 жыл бұрын
Are Django websites vaulnarable to this attack? If so, how can it be prevented?
@debug9424
@debug9424 3 жыл бұрын
Nothing that doesn't use pickle is vulnerable to this Pickle is not a normal (de)serialiser, it's an unsafe one, by design. It's made for a completely different use-case. The python documentation on pickle is full of warnings about using it on untrusted data. Most webapps use safe (de)serialisers and formats, like python's builtin 'json' module for the json format
@hidayatbachtar
@hidayatbachtar 2 жыл бұрын
so Insecure deserialize have 2 category? - binary - Web Application? thats right?
@fxiqval
@fxiqval Жыл бұрын
i know this is old, but my question is, why the f!ck does python serialize methods? can't it have just a class that you then initialize like a struct in C(++) somehow (not familiar with python) with only the member variables and the methods will be stored only in your code?
@lordlenno6791
@lordlenno6791 3 жыл бұрын
Did somebody know which musik playes in the backround PS: thanks for your great videos
@smiley_1000
@smiley_1000 3 жыл бұрын
I don't see how python is particularly vulnerable to this. You using an insecure package is not the languages fault.
@alagaika8515
@alagaika8515 3 жыл бұрын
Especially if the documentation of the package screams THIS IS INSECURE! DO NOT USE WITH UNTRUSTED INPUTS
@lismanrazvan5783
@lismanrazvan5783 2 жыл бұрын
it's about the concept...
@VigneshWaran-jr1if
@VigneshWaran-jr1if 3 жыл бұрын
I got error on def __reduce__(self) in this line
@alfatihflowlesk4010
@alfatihflowlesk4010 3 жыл бұрын
ur videos man is too good !
@DHIRAL2908
@DHIRAL2908 4 жыл бұрын
Would love a vid on prototype pollution!
@shaddy9648
@shaddy9648 3 жыл бұрын
That Keeanu Reeves joke was funny man
@OK.156
@OK.156 4 жыл бұрын
question, didnt you have to manually add the cookie in the browser, will this still work
@MT-rp8im
@MT-rp8im 4 жыл бұрын
The attack is on the server, not another user. Therefore manually adding a cookie is a valid attack vector.
@PwnFunction
@PwnFunction 4 жыл бұрын
Yes it will work, this is a server-side vulnerability.
@patrickslomian7423
@patrickslomian7423 3 жыл бұрын
Maan ! Love your videos !
@ogwokwilliam3891
@ogwokwilliam3891 3 жыл бұрын
Wowww the intro is killer
@alperkaya8919
@alperkaya8919 3 жыл бұрын
Basically, creator of the website trusts that you have given valid inputs instead of they checking your inputs.
@thecrazzxz3383
@thecrazzxz3383 3 жыл бұрын
Wait, what is the source code of the webpage ?
@karthibalaji3817
@karthibalaji3817 3 жыл бұрын
Osm breakdown👍.
@khalilbouzidi8432
@khalilbouzidi8432 4 жыл бұрын
thanks a lot for this very educational content
@TheRetsekShow2236
@TheRetsekShow2236 4 жыл бұрын
Great video!!
@tarankaranth8782
@tarankaranth8782 3 жыл бұрын
awesome presentation.
@checkmate6732
@checkmate6732 4 жыл бұрын
great job! continue please : D
@kolorytoweoke
@kolorytoweoke 3 жыл бұрын
great explanation, thanks a lot!
@天馬-u6f
@天馬-u6f 3 жыл бұрын
even json deserialization is enough to break your machine. i see no reason to use pickle unless it is encrypted after serialization
@maulikshah28
@maulikshah28 3 жыл бұрын
Veautiful video man You deserve the like and subscribe
@joopie46614
@joopie46614 3 жыл бұрын
imagine a noob friendly, new and popular language having an exploit such as this
@someonerandom9939
@someonerandom9939 3 жыл бұрын
It's not a problem with the language, its the serialization library that has the exploit. It even outright tells you not to use it for anything untrusted. Not even the most security careless developers would use this kind of serialization in such a way so I'm not sure why this video was made.
@joopie46614
@joopie46614 3 жыл бұрын
@@someonerandom9939 ah that's some good context the video maker should've included, thanks
@loradawn
@loradawn 3 жыл бұрын
Not only that your explanations are great, but you got a huge talent to draw/sketch, so you should change the hobby... (just kidding). :)
@skibo4302
@skibo4302 3 жыл бұрын
Absolutely Beautiful!
@superrv0023
@superrv0023 14 күн бұрын
I didn't know that Keanu Reeves was the oldest person in the world
@crashpol9693
@crashpol9693 3 жыл бұрын
Very good video!
@gamesdean8620
@gamesdean8620 3 жыл бұрын
I think K. Reeves is 491 in 2021. But the rest of the video is fine. Jokes apart, excellent as always
Insecure Direct Object Reference (IDOR) Explained
8:14
PwnFunction
Рет қаралды 107 М.
Don't make random HTTP requests.
14:02
PwnFunction
Рет қаралды 391 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
СИНИЙ ИНЕЙ УЖЕ ВЫШЕЛ!❄️
01:01
DO$HIK
Рет қаралды 3,3 МЛН
2017 OWASP Top 10: Insecure Deserialization
8:50
F5 DevCentral
Рет қаралды 87 М.
Why you should Close Your Files | bin 0x02
8:11
PwnFunction
Рет қаралды 321 М.
Exploit Java Deserialization | Discovering Insecure Deserialization
11:17
10 Important Python Concepts In 20 Minutes
18:49
Indently
Рет қаралды 413 М.
Use Arc Instead of Vec
15:21
Logan Smith
Рет қаралды 157 М.
What are Executables? | bin 0x00
8:35
PwnFunction
Рет қаралды 189 М.
HTTP Parameter Pollution Explained
11:08
PwnFunction
Рет қаралды 255 М.
Dangerous Code Hidden in Plain Sight for 12 years
18:00
PwnFunction
Рет қаралды 1,6 МЛН
Rust Data Modelling Without Classes
11:25
No Boilerplate
Рет қаралды 184 М.
OWASP insecure deserialization explained with examples
12:04
thehackerish
Рет қаралды 17 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.