HTTP Parameter Pollution Explained

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.ค. 2024
  • #WebSecurity #CTF #HTTPParameterPollution
    How HTTP parameter parsing could mess things up.
    SPONSORED BY INTIGRITI - intigriti.com
    🎵 Track: Warriyo - Mortals (feat. Laura Brehm)
    NCS link: • Warriyo - Mortals (fea...

ความคิดเห็น • 390

  • @hamzahajji5814
    @hamzahajji5814 3 ปีที่แล้ว +641

    This is gold, I'm glad this was randomly recommended to me

  • @manavnaik1607
    @manavnaik1607 3 ปีที่แล้ว +211

    I’m definitely not infosec, your videos attract people and you are definitely a special channel for being able to pull anyone into the topic

  • @cavevenom1571
    @cavevenom1571 5 ปีที่แล้ว +216

    This is great content, you'll go places.

  • @MrDelayX
    @MrDelayX 3 ปีที่แล้ว +45

    Another interesting angle I only recently learned of about messing with query parameters is that (at least in PHP) ending a parameter with square brackets (like "e[]=cats ) will cause the type of $_GET['quote'] (without the brackets) to no longer be a scalar string but rather an array, which can also mess logic up if not properly checked/handled.

    • @DonovanDMC
      @DonovanDMC 2 ปีที่แล้ว

      This is pretty standard, and how you usually pass around arrays in forms & query parameters
      Despite there not being a standard, generally normal parameters without square brackets should only be present once, while with square brackets they can be repeated many times to add values to the array with that name

  • @spythere
    @spythere ปีที่แล้ว +15

    You actually made me realise that my Express app is insecure in the context I woudn't have even think of. I was explicitly assuming all parameters would be as strings, not arrays. Fortunately it's nothing severe and it doesn't crash the server, it just throws 500 anyways but it's good to be aware. :)

  • @patricknelson
    @patricknelson 2 ปีที่แล้ว +24

    Lesson: If you’re not escaping output and casting/coercing data on input then you’re doing it wrong. i.e. Always escape content to the correct encoding when outputting (e.g. escape HTML entities when output to HTML, encode URL/URI entities when intended for a URI parameter, etc). Also, always force the type when taking input and also perform some basic validation. E.g. if it’s a string, cast it to a string, validate it and/or compare it to a set of known possible values and so on (that’s just a limited example). Basically….
    Treat ALL input as hostile.

  • @Matt23488
    @Matt23488 3 ปีที่แล้ว +18

    Developer here, your video was randomly recommended to me, and while I'm familiar with many injection-type attacks, I hadn't actually seen this one before. Thanks for the info, that was really interesting.

  • @h.celine9303
    @h.celine9303 3 ปีที่แล้ว +28

    PHP backend dev here, info sec only as hobby. Thank you so much for this. You've gained a loyal subscriber.

  • @defenestrated23
    @defenestrated23 3 ปีที่แล้ว +17

    "Parse, don't validate." This is why it's so important to coerce requests into structured data where invariants are enforced, rather than manually checking for bad behavior.

  • @tenshii_92
    @tenshii_92 3 ปีที่แล้ว +9

    I love the subtle Matrix reference with the names.

    • @codeIMperfect
      @codeIMperfect 3 ปีที่แล้ว +1

      And I thought nobody else noticed lol

  • @imaginebunnys1017
    @imaginebunnys1017 5 ปีที่แล้ว +31

    This really is an amazing video dude, please do not stop creating content

  • @weagarwal9981
    @weagarwal9981 4 ปีที่แล้ว +6

    You explain it so well. Don't stop creating content! InfoSec Community loves you!

  • @Fred-yq3fs
    @Fred-yq3fs ปีที่แล้ว +3

    Dev here. This was recommended at random, and it's spot on.
    You have a knack to teach things, which is not the most common thing!
    Pace, focus, depth... I've subscribed to your channel. Keep it up.

  • @willjohnson4579
    @willjohnson4579 3 ปีที่แล้ว +5

    Recently got a project where I need to consider this kinda thing, so glad you came up in my recommended

  • @lugoheriberto
    @lugoheriberto 2 ปีที่แล้ว +1

    im a dev and i watch ur videos.. was not shared by a infosec friend, but rather i subscribe to infosec to keep myself on my toes.

  • @SCMowns
    @SCMowns 2 ปีที่แล้ว +59

    Nice overview of a simple CSRF attack. This form of attack is marked on the top 25 most dangerous software weaknesses in 2020. It is also an easy attack to resolve.

    • @Sebastian-hg3xc
      @Sebastian-hg3xc 2 ปีที่แล้ว +8

      I didn't see any CSRF attacks in this video.

    • @nandoflorestan
      @nandoflorestan 2 ปีที่แล้ว +6

      This is not about CSRF, that's something else entirely

  • @TRACTOOOOOOOOOR
    @TRACTOOOOOOOOOR ปีที่แล้ว +1

    The algorithm has blessed me with this video

  • @HollandseKip
    @HollandseKip 2 ปีที่แล้ว +3

    As a developer, I'm always looking to learn new stuff. Cheers for adding another bit of info to my life. Subbed!

  • @filipmajetic1174
    @filipmajetic1174 ปีที่แล้ว +15

    I feel like the default behavior of a web framework should be to throw an error in this case, and force you to specify which behavior you want if you really need it.

    • @MagicGonads
      @MagicGonads ปีที่แล้ว +2

      unchecked exceptions can also be a vulnerability on their own (although in the web context having your request fail is pretty normal so it shouldn't break applications)

  • @ES-cf4ph
    @ES-cf4ph 2 ปีที่แล้ว

    Definitely something I will search for in the web applications I am developing at work! Thanks for the great content!

  • @mohammadsharif9192
    @mohammadsharif9192 3 ปีที่แล้ว

    now this is the type of content I'm looking for !! great job

  • @shahzaibkhan9902
    @shahzaibkhan9902 4 ปีที่แล้ว +7

    One of the finest content I have ever found on TH-cam. Please don't stop making videos. I will patron you.

  • @0xVikas
    @0xVikas 2 ปีที่แล้ว

    This is amazing content! subscribed

  • @TarekSiddiki
    @TarekSiddiki 5 ปีที่แล้ว +10

    Keep it up! Great content, I wd say the best content for me on sec-field so far!

    • @chomo54andbabyaisha97
      @chomo54andbabyaisha97 3 ปีที่แล้ว

      You can also test what the server does, if you comma separate variable values like this
      ?to=name1,name2,name3
      which usually means an array
      Since it is something that can break a page if you are not expecting an array it is also something that should be tested for

  • @cxp6589
    @cxp6589 5 ปีที่แล้ว +1

    Awesome video like always:). Keep em coming!

  • @leisureclub_
    @leisureclub_ 5 ปีที่แล้ว +1

    Amazing... I am impressed .. Keep'em coming..

  • @seaniwild2495
    @seaniwild2495 5 ปีที่แล้ว

    Wonderfully explained! Thank you!

  • @DEADCODE_
    @DEADCODE_ ปีที่แล้ว

    Man I swear you're brilliant

  • @mitchelline
    @mitchelline 5 ปีที่แล้ว +1

    Sick video, keep up the good work!

  • @M4lch4t
    @M4lch4t 4 ปีที่แล้ว

    Awesome Content!
    Keep doing it man!

  • @thHartBeaT
    @thHartBeaT 2 ปีที่แล้ว

    explaination is clean, easy to understand and enjoyable.

  • @bigbooduh
    @bigbooduh 3 ปีที่แล้ว

    First time here you really did a great job in this tutorial. Thanks for this

  • @pranayjain5583
    @pranayjain5583 4 ปีที่แล้ว

    i realy understand in one go .. THANKS man!..great content

  • @jgurtz
    @jgurtz 3 ปีที่แล้ว

    Nice simple thing, well explained

  • @bluesque9687
    @bluesque9687 2 ปีที่แล้ว

    Subscribed! ...Useful and interesting and intelligent content!!

  • @mika2666
    @mika2666 3 ปีที่แล้ว +6

    Not in the infosec community but still in uni (gonna do software dev after), really helpful video for when doing critical work to keep these things in mind, thank you

  • @emj-music
    @emj-music 3 ปีที่แล้ว +1

    Great content. Made me understand it. Here before 100k!

  • @mandy2533
    @mandy2533 2 ปีที่แล้ว

    Your videos are wonderful. Thank you so much! I

  • @sumspiew
    @sumspiew 5 ปีที่แล้ว +1

    Nice vid, keep up the good work!:)

  • @sangnguyen6631
    @sangnguyen6631 10 หลายเดือนก่อน

    I'm not InfoSec, but the way you explain is really clearly and I love it. Keep going sir!

  • @umerfarooq2425
    @umerfarooq2425 5 หลายเดือนก่อน

    Wow Amazing . So clear :) Thanks

  • @hassanaoutof4148
    @hassanaoutof4148 2 ปีที่แล้ว

    Lit content man, amazing

  • @deepeddyrecords5933
    @deepeddyrecords5933 3 ปีที่แล้ว

    Excellent! Infosec here for sure, but I will be sharing this with my developers.

  • @omespino
    @omespino 5 ปีที่แล้ว +1

    pretty cool intro mate, thanks for sharing

  • @shim1cha3l40
    @shim1cha3l40 4 ปีที่แล้ว +1

    really good video, so clear and make sense

  • @sebastienpautot
    @sebastienpautot 3 ปีที่แล้ว

    I'm glad it got into my recommended

  • @singularity1130
    @singularity1130 3 ปีที่แล้ว

    Web developer trying to get better. You came up recommended after a Nextjs Auth with Firebase tutorital and have been binging. Love the content and looking forward to making my applications more secure.
    Thank You!

  • @pratyushbehere3580
    @pratyushbehere3580 2 ปีที่แล้ว

    Thanks. I had no idea about this

  • @josemanuelalvarezcolombo6004
    @josemanuelalvarezcolombo6004 5 ปีที่แล้ว

    Loving this channel and expecting for future content

  • @muizzraheem5937
    @muizzraheem5937 2 ปีที่แล้ว +2

    This is really awesome 😎... I love your videos ❤️❤️

  • @vijaylokare2672
    @vijaylokare2672 2 ปีที่แล้ว

    Great explanation bruh ....... keep making such videos !!!
    Love from INDIA, Mumbai :)

  • @llFike
    @llFike 3 ปีที่แล้ว

    Amazing video, subbed

  • @rajeshranjan7034
    @rajeshranjan7034 4 ปีที่แล้ว

    Your contents are best

  • @ShotgunAFlyboy
    @ShotgunAFlyboy 3 ปีที่แล้ว +1

    I work for a team that's vaguely in the infosec world, but actually am a fullstack web dev, so your message hit its mark.

  • @jasperb8508
    @jasperb8508 4 ปีที่แล้ว

    Yo this content is so lit! Love it

  • @nahmedfaisal
    @nahmedfaisal 5 ปีที่แล้ว +9

    Another great video!
    Please keep them coming..

  • @Marcochampion99
    @Marcochampion99 3 ปีที่แล้ว

    Great video !!

  • @trickshot8653
    @trickshot8653 2 ปีที่แล้ว

    Dude you are awesome.

  • @stargaryen3383
    @stargaryen3383 5 ปีที่แล้ว

    really great content. good luck sir .

  • @timb00
    @timb00 3 ปีที่แล้ว

    Wow i am so glad i got this channel suggested gj

  • @Conlexio
    @Conlexio 3 ปีที่แล้ว

    cool, never thought of that

  • @SafeBuster80
    @SafeBuster80 3 ปีที่แล้ว

    I learned alot from this.

  • @CHITUS
    @CHITUS 2 ปีที่แล้ว

    Great videos! You are a natural at explaining the topics in an easy to understand manner and at a perfect pace. The Hacker101 videos are nice, but they go way too fast and not enough depth. You doing this perfectly! You might consider redoing their videos in a new series breaking them down into smaller chunks. Great work, please keep them coming. You might setup a patreon as well. I’d glad support you financially

  • @thomasi.4981
    @thomasi.4981 2 ปีที่แล้ว +1

    I coded a few rudimentary webservers from scratch and in one where I used query parameters, I came across the conundrum of how to address multiple matches, among other syntactic oddities. Interesting to see that this question can be highly significant.

  • @surya-ur5vv
    @surya-ur5vv 3 ปีที่แล้ว

    The best youtuber award goes to @PwnFunction
    You are awssome
    keep doing this type of content

  • @Zer0nuke
    @Zer0nuke ปีที่แล้ว

    Great content

  • @kinggio4553
    @kinggio4553 2 ปีที่แล้ว

    Wow thanks man ❤️

  • @ehsannokandi1737
    @ehsannokandi1737 3 ปีที่แล้ว

    That was AWSOME

  • @godbibo
    @godbibo 3 ปีที่แล้ว

    Very good video, keep going !

  • @dumpperson3449
    @dumpperson3449 4 ปีที่แล้ว

    Amazing work thanks for sharing

  • @yeasirarafat4261
    @yeasirarafat4261 5 ปีที่แล้ว

    Awesome! Keep continuing

  • @BurninAss
    @BurninAss 3 ปีที่แล้ว

    "You can still find a lot of those vulnerabilities because the developers don't really know about it"
    ... so true. I first learned about this unstandardized behaviour when I needed to parse a query parameter as an array. There simply is no standard for that! I also worked with a lot of the technologies you mentioned... and even though I was really annoyed by the missing standardization and I certainly noticed it I didn't have the realization that this could lead to vulnerabilities :O
    Thanks to your video I have informed the team for which I used to work to look into the messes I might have produced. Thanks!

  • @juraev0056
    @juraev0056 3 ปีที่แล้ว

    Amazing quality

  • @remixednuts12345
    @remixednuts12345 3 ปีที่แล้ว

    Thanks heaps. Well explained.

  • @trickshot8653
    @trickshot8653 2 ปีที่แล้ว

    This video blew my mind

  • @mohammedal-shaboti7939
    @mohammedal-shaboti7939 5 ปีที่แล้ว

    Great!
    Thank you

  • @tylerpetrov8094
    @tylerpetrov8094 2 ปีที่แล้ว

    I will definitely watch out for this attack in my Flask app, thanks!!

  • @fadiliabdeljalil770
    @fadiliabdeljalil770 3 ปีที่แล้ว

    Very interesting content, thank you.

  • @mk9834
    @mk9834 4 ปีที่แล้ว

    Just love the animation

  • @modmah7191
    @modmah7191 2 ปีที่แล้ว

    WOAH!
    YOU'RE MY HERO

  • @shivamgoyal9844
    @shivamgoyal9844 5 ปีที่แล้ว +3

    Awesome Video :) I was quite confused with HPP attack. Please make more videos like this on XXE, SSRF :D

  • @TheChemicalWorkshop
    @TheChemicalWorkshop 3 ปีที่แล้ว +14

    you make a small website for every video? that definetly earned my sub !

    • @SpaYco
      @SpaYco 3 ปีที่แล้ว +4

      dude makes videos while sick, that alone shows the effort, also he did more than one webpage for this

    • @TheChemicalWorkshop
      @TheChemicalWorkshop 3 ปีที่แล้ว +2

      @@SpaYco either way subscribed to him

    • @Monawwar
      @Monawwar 3 ปีที่แล้ว +1

      I don’t think they are new websites, probably just modified the “hosts” file. But I liked the content. 👍

    • @videotoblin
      @videotoblin 2 ปีที่แล้ว

      @@Monawwar still had to write the PHP/Flask

  • @AA-gl1dr
    @AA-gl1dr 3 ปีที่แล้ว +1

    Thenk you for giving me inspiration that I can be developer. Instant sub.

  • @0xfsec
    @0xfsec 5 ปีที่แล้ว +1

    Awesome dude!

  • @matthias916
    @matthias916 3 ปีที่แล้ว +1

    Very underrated channel

  • @ravanaastra7881
    @ravanaastra7881 4 ปีที่แล้ว

    nicely explained!!

  • @tarunkumaryenni2159
    @tarunkumaryenni2159 3 ปีที่แล้ว

    I love the way you explain bro.....specially..those sketchy diagrams. Make more videos bro.

  • @alishahmughal6125
    @alishahmughal6125 5 ปีที่แล้ว

    Concepts are cleared buddy :)

  • @m0niruzzaman
    @m0niruzzaman 2 ปีที่แล้ว

    Excellent 🥰

  • @fooboobear
    @fooboobear 5 ปีที่แล้ว

    plz never stop making videos

  • @abdulghani786
    @abdulghani786 3 ปีที่แล้ว

    This is freaking awesome 😍

  • @YoTengoUnLCD
    @YoTengoUnLCD 3 ปีที่แล้ว

    The algorithm just blessed you

  • @andylib
    @andylib 2 ปีที่แล้ว

    Dev here 👋🏻 i‘ll keep this in mind, thank you

  • @max213421
    @max213421 3 ปีที่แล้ว +4

    You can tell the effort put into this video was not a small amount. Really good job, made it easy to understand fully

    • @minhuang8848
      @minhuang8848 ปีที่แล้ว

      What's wild is how (I'd assume) PwnFunction seems to be a non-native speaker. Only really started questioning this fact after they said occurrence and parameter, but stress aside, his pronunciation is pretty on point.
      Or maybe they are a native speaker... in which case they still are in the 99th percentile of English speakers, lol. Definitely a bit jelly here.

  • @ashleypursell9702
    @ashleypursell9702 3 ปีที่แล้ว

    awesome video thanks so much :)

  • @DOM-cc
    @DOM-cc 3 ปีที่แล้ว

    thanks m8, really didnt know about that and found a bug in my backend by that

  • @mrlildylchillin
    @mrlildylchillin 4 ปีที่แล้ว

    fantastic video

  • @Barrosy
    @Barrosy 3 ปีที่แล้ว +6

    10:17 nowdays developers are more aware. Even in my studies they teach me how to prevent direct parameter passing with SQL by using placeholder variables instead. This way SQL injection might be prevented. There are countless other methods developers can work around this, it's just an example. It doesn't take away the fact that a lot of old bricks (websites that made the web exist in the end) of the internet still contain a massive amount of errors when these things weren't as clear yet in the time the internet rose up.

  • @lekenn2920
    @lekenn2920 3 ปีที่แล้ว

    i understand this one, thank you bro

  • @sandeepgamot4585
    @sandeepgamot4585 ปีที่แล้ว

    nice video man