XS-Search abusing the Chrome XSS Auditor - filemanager 35c3ctf

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ธ.ค. 2024

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

  • @SolarLiner
    @SolarLiner 5 ปีที่แล้ว +446

    So what you're saying is... We should stalk CTF organizers (and their social feeds) for insight on challenges? Now that's proper social engineering!

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

      time for maltego?

    • @rajkumar-ro8co
      @rajkumar-ro8co 5 ปีที่แล้ว +3

      can we just brute force all possible queries from normal url loading and check if there is flag.. anyone reply ??

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

      @@rajkumar-ro8co wdym by 'normal' loading?

  • @unicodefox
    @unicodefox 4 ปีที่แล้ว +21

    > make xss auditor to prevent XSS attacks
    > hackers use the xss auditor to do xss attacks
    > shocked_pikachu.jpg

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

      This is why they ended up just removing the xss auditor

  • @Warlock1515
    @Warlock1515 5 ปีที่แล้ว +27

    More than 3/4 of your video went over my head. Still, it's an interesting one and I have tons to google xD

  • @RuLythC
    @RuLythC 5 ปีที่แล้ว +30

    watching this made me realize how close I was when time ran out.
    great challenge and cool video

  • @lijuminati
    @lijuminati 5 ปีที่แล้ว +130

    *zajebiste*

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

    awesome as always, the moving pointer while you explain xssearch function is super useful, thanks!

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

    I saw some tricky XSS attacks but this one is next level in terms of creativity :D Also this is another example of Chrome XSS Auditor gone wrong. In my opinion XSS Auditor should be removed - the developer should be responsible for sanitizing user input properly because he knows the context of his application, not the browser.

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

    11:24 "pretty simple, right?" mad respect for him getting to this.

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

    If you just had to brute force a search, wouldn't a chrome extension that adds code to the search page do the job (no worries about cross site issues then)? I once used a similar technique to create a list of thousands of email addresses by entering a partial UK postcode into a search, instead of having to do it manually (still took a while and had to manually deal with captcha's)

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

    Hey it's up! Cool to see the process and what goes into just one video.

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

    This is probably a stupid question; but 2:15, was the name used to generate the session ID? As in; using the same name generates the same session ID? EDIT: 5:37 nevermind :)

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

    Can u share like a book or source to make u understand about browser protocols

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

    humble and informative and a great guy

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

    how did u know the first part of the flag? i.e '35' or '35c3' ?
    If u already knew that, then u already had got the flag at this point 6:27. so why build a whole new script for checking that?

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

      Because the CTF had other challenges and flags typically follow the same format

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

      @@LiveOverflow ohk. so that was a guess start. What if someone doesn't have an idea about the flow?

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

      And yes, the question still remains: you already had the answer at 6:27, right?

  • @Paviste93
    @Paviste93 5 ปีที่แล้ว +4

    Is it somehow possible to play those challenges even after the CTF event is over? Would like to try it out myself before watching your video :D

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

    I remembered someone talked about it in his videos but could not remember who that was. Really cool tricks btw.

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

      Pls remember the videos. I want to see them!!!

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

    Great video once again, awesome work!

  • @IddoE
    @IddoE 5 ปีที่แล้ว +4

    Q: How is it possible he found out letter after letter in (left2right) order if the serverside search condition is:
    if 'query' in FLAG:
    It would make sense if the condition was FLAG.startsWith(q) || iterating the FLAG by index
    A: u don't see the real flag you only get indication that it exist..
    assuming the flag was "ABC" it would take 6 attempts
    Attemp #1, sending "A" = exists
    #2 AA = nope
    #3 AB = yes
    #4 ABA = nope
    #5 ABB = no
    #6 ABC = success
    hope it's not case sensetive

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

      there are two options.
      1. you know that the flags start with '35c3' or '35C3'. So start with that and you should leak the flag (what I did in the video)
      2. let's say the flag is 'abcdefghijk'. Then you just start with a random character. Let's say you start with 'e', so using this you find 'efghijk'. Once you reach the end (no valid characters found) you continue by prepending new charcaters and search from the right2left.

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

      LiveOverflow so in those challenges you know the first four characters of the flag? Is that always the case or just in this challenge?

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

      Its typical that the flag follows a special format, so you know when you find it. But that obviously depends on the CTF

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

    Hey there, I recently watched your SIM card video and since I just heard of eSIM, I wondered if you could do a video on that. I imagine it has a lot more vulnerabilites than the standard sim.

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

    Good stuff

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

    Great video (already)!

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

    Great content!

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

    Which editor (colorscheme) are you using, ~10min

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

    Just wow 😍

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

    awesome sir

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

    Did you get a new recording setup or mic?

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

    Q: What effect does the hash(#leak or #test) have on server response? or it is catched by browser?

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

      The hash part of an url is client-side, so if you're on example and then go to example#test, the page does not need to reload because the hash does not need to get sent to the server. If the page is not loaded, loading a hash url reloads the page because the page isn't already loaded in the first place.

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

    Must admit, I didn't follow how the xss attack was required to detect the presence/absence of particular code in the returned page. Is it something to do with the search - if you searched for "35" in the regular webapp would it not show the flag amongst other files?

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

      Only the logged in admin can search for its own files and the flag. Our logged in user doesnt have the flag

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

    Why couldn't you just determine whether a query is an error or not by the response code length?
    Since the response error is always the same length wouldn't it be easier and quicker?
    Also why not use python for that script? Was the a must?

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

      You don't have access to the response. All you have is the onload event

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

    Awesome video :)

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

    I was so confused becose there was 35c3 ctf junior for begginets right?

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

      Yeah there was a normal and juniors ctf

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

    Q: what do i need to do/read to understand this video?

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

      @@user-ir4tu7fb3u oh yeah yeah

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

    wait am i missing something? why isnt just checking if the page has a script tag enough to detect if the search query was successful? no need to go trough an and make it crash right?

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

      how would you do that? You need to send your attack script to the admin and let the admin execute it.

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

      The malicious URL you would send to the admin to carry out the attack is outside the domain of the target web app. The browser enforces the same origin policy, which means scripts in your site cannot access the contents of sites outside your domain. The same origin policy and the CSRF protection is what is preventing you from just reading search results cross-site.
      You cannot force the admin to create a new file containing the malicious script due to CSRF protection. If it were no CSRF protection, then we could upload a malicious script, which will be in the same domain as the web app, and carry out the attack like you describe.

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

      @@yosoyboi thanks for the explanation, think i get it now

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

      LiveOverflow So we send ip of our server to admin, which is a page with , then the script on page detects if the onload happened twice and...how to detect it with server? All the server gets is a http response, so it would be sent twice for each onload?

  • @SumanRoy.official
    @SumanRoy.official 5 ปีที่แล้ว +11

    Need more research before diving straight into CTF hell holes. Noted

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

    So it gives a different response if there's a matching file even if you don't have access to it?

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

      yes, because the session cookie is still sent along. we can't directly read it out though.B that's why we have to do this sidechannel attack

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

    its early in the morning so my concentration might have lapsed, but as far as i understand the flag is publicly searchable if you know the name?
    so the webscrapy thing to do would be to send search queries like the hack solution, but then simply check the length. The reply is far longer (due to length of the javascript part) if the searchquery hit, so the inducing of XSS_auditor error page seems overkill to me. or did i miss something?

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

      No. The site has a login. And the admin only has the file with the flag on his account. Thats why we had go execute the search from out website which we send to the admin to execute

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

      @@LiveOverflow I'm also struggling to understand this part. I realize that we need to execute the search from our website which we send to the admin for execution, but would it not suffice to load the with search query like you did, but instead getElementsByTagName('pre') and retrieve the flag? If the tag doesn't exist it would mean that "no result" is returned then we will just continue looping the mechanism. I'm new to all this and just got interested through watching your video, please forgive me for my naivety.😅

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

      You cant access the DOM of another domain ;)

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

      @@LiveOverflow Ah now I see why. Thanks 😂

  • @rajkumar-ro8co
    @rajkumar-ro8co 5 ปีที่แล้ว

    can we just brute force all possible queries from normal url loading and check if there is flag ...

  • @VeryBlueBot
    @VeryBlueBot 5 ปีที่แล้ว +4

    So basically at the end of the day this was sort of a social engineering challenge :D

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

      How so?

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

      @@LiveOverflow descovering the thickest clue in a twitter post lookup.. love your vids btw.. ussally i understand less then 30% but its slowly going up :)

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

      Ah! Heh

  • @nezu_cc
    @nezu_cc 5 ปีที่แล้ว +4

    why not just load some kind of browser rat and then just proxy the traffic from our browser to the "admin" browser and do the search manually and just get the flag

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

      "browser rats" also can't magically break the same origin policy.

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

      @@LiveOverflow does the "same origin" policy also apply to direct tcp/udp connections or only for http(s) ?

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

      I dont dont what you try to say. At least for me the technique in this video this is the only way How you can leak some info cross origin. A browser cannot really speak raw TCP. Or just show me code that you think can read the search response :) code is easier to read than english

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

      @@LiveOverflow also, I'm not sure if I fully understand the challenge, I'll try to recreate it later ant let you know if I find anything.

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

      If I got your idea right, then I have to say that it's not possible to read cross-domain content to start with.

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

    Next time I'll try too

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

    This is so complex!

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

    i dont understand a single word :D lots to learn

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

    Good to know... Thanks for the video

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

    Great video, as always!
    I am wondering why you always use Chrome. There are also other browsers (Firefox, Opera, Safari). You should also look them and try to find and report their bugs.

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

      I like Chrome the most ;)

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

      Yes, but other browsers may be in interesting to try 🙂. Firefox have many improvements from last year, but other are also interesting.

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

    why didnt we just try every letter of the alphabet until we find the flag? it DOES find multiple characters, right?
    maybe you would get a WR fastest ctf challenge solved within 9 seconds, 7 seconds, maybe even 5?

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

    why did u have to brute force it, i mean ifu enter any char that is.part of the flag u get the flag. I might be missing something

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

    How did the web app react to duplicate session cookies? If it accepts duplicate cookies and the right one takes precedence you might be able to perform a session fixation / login csrf attack from *.appspot.com if you can control a subdomain to it, either by signing up for service or if there is an XSS anywhere on appspot.com, which should not be too hard to find. Take a your own session cookie value and via an XSS on *.appspot.com run: "document.cookie='session=YOURSESSIONIDVALUE; domain=.appspot.com';" impose it on the the victim (CTF box). In your session (shared by victim) create a file with a (self-)XSS that should make the CTF client leak its own session cookie (httponly isn't set) when it is opened in origin filemanager.appspot.com instead of the origin of your XSS on subdomain; or alternatively write javascript to delete the duplicate session cookie on the victim side and some more code to the leak the flag from the original session running your xss on the ctf browser.

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

    what is the name of ur music. I'm in love with it.

  • @user-ex6xc5ox3k
    @user-ex6xc5ox3k 5 ปีที่แล้ว

    Why do you have a sticker of the workers party of Korea flag on your laptop in your profile pic?

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

    If important security research is only available in twitter conversations then I would say that is the fault of the researchers for failing to publish their findings properly, not on other users for not staying up to date.

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

    Nice vid

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

    HOLLY SHIT BRO.. i feel like a real script kiddie now :(

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

    i wish after one month in time i will be able to understand this

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

    How did you find the password when every user that you create has a different database of files?

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

      You connect to the headless Chrome instance of the admin and tell it to go to the malicious URL, which would then perform the XS-Search attack from the admin's perspective, thus scanning the admin's files.

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

    Who wants to do a CTF with me?

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

      Testing rly

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

      @@atsohg3963 Yes.

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

      I would like to do it but i think i am not good enough😂

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

    Which one is better? Django or Flask?

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

    This is some high level shit

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

    The thumbs up - as promised :-)

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

    Hi LiveOverflow,
    I am trying to access raspberry pi, which is behind a Nat ‘ed network from internet without port forwarding and third party website. The functionality I am looking is something like what dataplicity.com is doing. I am noob to networking and python. But have strong coding knowledge with Microsoft .net and Angular 2 and higher. I would like to host my own website with this functionality. Could you please help me with this? Aslo dataplicity’s client agent can be found at github.com/wildfoundry/dataplicity-agent

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

    Заебато челик раскладывает

  • @kressckerl
    @kressckerl 5 ปีที่แล้ว +4

    Duuuuuude, 2 midroll ads. On a 13 minute long video... uncool

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

      Love your vids anyway

    • @LiveOverflow
      @LiveOverflow  5 ปีที่แล้ว +11

      Adblock

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

      They're making content for you for free. The least you can do is watch an ad.

    • @kressckerl
      @kressckerl 5 ปีที่แล้ว +4

      @@LiveOverflow touche. Kodus for answering a negative comment😀

    • @kressckerl
      @kressckerl 5 ปีที่แล้ว +4

      @@JamEngulfer yeah, I guess it aint that bad. I just have this personal vendetta against midrolls.😁
      I've seen gaming news channel have 2 midrolls, all they do is narrate.

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

    I watch all of your videos But I don't understand shit

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

    I didn't understand shit

  • @64humans25
    @64humans25 5 ปีที่แล้ว +2

    Last

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

    So what's really the solution to any of these problems?
    Who has time to subscribe to like 50 different people on Twitter and watch as they re-tweet and re-post some random political bullshit 90% of the time to dig out the hidden gems?
    And is Google planning on fixing this issue?

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

    ok after all i just understood the word HTML :(

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

    first