Feb. 6, 2025

Episode 109: Creative Recon - Alternative Techniques

The player is loading ...
Critical Thinking - Bug Bounty Podcast

Episode 109: In this episode of Critical Thinking - Bug Bounty Podcast we start off with a quick recap of some of the DeepSeek Drama that’s been going down, and discuss AI in CAPTCHA and 2FA as well. Then we switch to cover some other news before settling in to talk about Alternative Recon Techniques

Follow us on twitter at: https://x.com/ctbbpodcast

Got any ideas and suggestions? Feel free to send us any feedback here: info@criticalthinkingpodcast.io

Shoutout to https://x.com/realytcracker for the awesome intro music!

====== Links ======

Follow your hosts Rhynorater and Rez0 on Twitter:

https://x.com/Rhynorater

https://x.com/rez0__

====== Ways to Support CTBBPodcast ======

Hop on the CTBB Discord at https://ctbb.show/discord!

We also do Discord subs at $25, $10, and $5 - premium subscribers get access to private masterclasses, exploits, tools, scripts, un-redacted bug reports, etc.

You can also find some hacker swag at https://ctbb.show/merch!

Today’s Sponsor - ThreatLocker. Check out their Managed Detection and Response!

====== Resources ======

Resources

Wiz Research Uncovers Exposed DeepSeek Database

Bypass Bot Detection

Tweet from sw33tLie

rsc 2fa

Stealing HttpOnly cookies with the cookie sandwich technique

Report Pointers for Collaborative Chains

Clone2Leak: Your Git Credentials Belong To Us

Deanonymization via cache

GoogleChrome related-website-sets

====== Timestamps ======

(00:00:00) Introduction

(00:02:03) DeepSeek debacle and Bypass Bot Detection

(00:23:48) Stealing HttpOnly cookies with the cookie sandwich technique

(00:30:54) Report Pointers for Collaborative Chains

(00:34:43) Clone2Leak: Your Git Credentials Belong To Us

(00:40:04) Deanonymization for Signal and Discord

(00:41:53) Alternative Recon Techniques

Transcript

Justin Gardner (00:00.416)
Alright, let's just go ahead and start the recording and you can just tell me what you were just saying. So I was asking you, like, because this research came out binogically, right? Like, what the heck is this DeepSeq thing? And dude, there's so much drama around this. So it's like a state of the art model for local stuff. And it's from China and it's getting pwned and it's potentially stolen from OpenAI. What's the situation here?

Joseph Thacker (00:14.508)
Yes. Yes.

Joseph Thacker (00:23.018)
Yeah, so well, I'll try to go a quick overview. Basically, there's a bunch of buzz around it because if it's actually easy to create state of the art models and all these companies that have raised like tens of billions of dollars didn't actually need that. And supposedly DeepSeek only spent 5 million on training. If that's actually true, then all of the huge funding that's going on by companies like OpenAI and, and Anthropic is kind of like quote unquote unnecessary. But yes.

Justin Gardner (00:41.038)
Mmm.

Justin Gardner (00:50.574)
It's just like a cash grab then at that point. Yeah.

Joseph Thacker (00:53.11)
That's right. But most people think that they're lying about how much it costs them to train it because if they told the real number, it would mean that they have access to too many chips and there's like an embargo saying they're only allowed to have so many chips sold to them. So if they had, so if they admitted to higher training costs, they would have to admit to owning more chips. And then at that point they would be in trouble. And so they have to kind of say this lower number. also makes them look way more impressive. And if they want to seem more impressive than they want to throw out a lower number, one way they could have done it with a lot less training data is with a lot higher

Justin Gardner (01:05.035)
Joseph Thacker (01:23.053)
quality data and that's why everyone's blaming them for stealing open AI's like a one thought process. So one thing you can do to train a model almost to a comparable level is take the output from a smarter model and then use that as your input data. Right? So people are claiming that they were using like a VPN.

Justin Gardner (01:36.923)
Mm, mm. But that must have cost like an insane amount of money, right? If they're just hitting OpenAI constantly.

Joseph Thacker (01:45.6)
Well, if you paid for the $200 a month subscription, you get unlimited access to O1 and O1 Pro. And if you've noticed, opening has been under a ton of load and even went down a few times. So it's like, maybe they were contributing to that. It's so hard to know. So yes, the Wiz team and then also like two or three other hackers all found this kind of at the same time. I got messaged about it from Haxler and he, and then I shared it with the Palisade guys, know, Sam Curry and Zy and those guys and Chill. And we were kind of poking on it looking at it because it was pretty interesting.

Justin Gardner (01:50.19)
Joseph Thacker (02:15.503)
X posted something exactly Mike posted about it today on on Twitter that what he thought was interesting was that they're like this system prompt sort of thing that's like basically you know just to promote and support and follow all the rules in China and so there's like there's so much interestingness about this there was there was like three

100 million records or through maybe it was like 30 million records or something in the database that leaked, it was was a, you know, dev database, but you know, maybe that was that training data from open AI. Maybe it was real user data. It's really hard to know. It was mostly telemetry. So.

Justin Gardner (02:37.324)
Yeah.

Justin Gardner (02:47.852)
Yeah, so what actually happened was, like I'm just reading the article here, was Nogli found this exposed database, right, and was able, click house, and was able to query some data out of there that was related to the functionality of DeepSeek. And it looked like, I mean, according to his X thread, it was just like, just a straight recon win. Like, you just find this port.

Joseph Thacker (02:56.748)
Yep. It's called ClickHouse.

Justin Gardner (03:16.128)
on this host and then the database is just wide open.

Joseph Thacker (03:18.637)
Yeah, did you see the, let me see if I can share this very small window. Oh, actually I'll just read it to you. So an in-map scan of that host. Here's, here is the port that were open 443, 1090, 1091, 2053, 2087, 2096, 5140, 8002, 80040, 80041. All these are real services.

Justin Gardner (03:40.462)
Jeez.

Joseph Thacker (03:42.477)
And it just keeps going. There was like 50. It lit up like a Christmas tree if you scanned it with in-map. Absolutely zero netsec or infosec knowledge in regards to opening up those ports on dev.deepsea.

Justin Gardner (03:45.229)
Yeah.

Justin Gardner (03:51.202)
Yeah. It must have been like presumed to be an internal server or something like that and then they just like stuck it on the internet.

Joseph Thacker (04:00.575)
Maybe, so there's the theory or the description about this company is that they're a bunch of like, they're like a quant trading firm and this is like their side gig and they like actually don't care about it that much. If that's true and they actually are already rich from some other, you know, financial sector thing and they're just a bunch of smart people who are good at ML and AI stuff, maybe they actually don't have security expertise. It's hard to know.

Justin Gardner (04:08.438)
Hahaha

Justin Gardner (04:22.114)
Wow, pretty crazy dude. Well, either way, nice find by Nogli and apparently like six other hackers on Twitter. that's a pretty cool find for sure. All right, well we jumped right into the news, but that was one of the news items. And another one that I had sort of on my list here was Portswigger Research has put out two really quality pieces of content. One is the Bypass Bot Detection BAP.

Joseph Thacker (04:27.154)
Yeah.

Joseph Thacker (04:39.296)
Mm-hmm.

Justin Gardner (04:50.934)
in the BAP store, which is something that I think is becoming a little bit more of an issue recently is like these, yeah, these like WAFs are doing TLS fingerprints on the proxy softwares and blocking it. So this BAP allows you to emulate the browser fingerprints of various browsers and stuff like that inside of burp and sort of bypass those problems, which is I think really cool. And something I think I mentioned on the pod a while back was like,

Joseph Thacker (04:52.503)
Mm-hmm.

Joseph Thacker (04:56.481)
really is.

Justin Gardner (05:20.502)
I think it's called CFFI or something like that, CFFI curl, Python library that allows you to do this for Python and it's nice to see it integrated into an HTTP proxy directly.

Joseph Thacker (05:34.548)
Yeah, this is, feel like gonna keep being an issue now that there are things like operator, which we're gonna talk a lot about as you're trying to prevent AI agents from browsing like humans, captures get worse and worse. There was a hacker one challenge that me and a few others were hacking on like yesterday or the day before. And it was like 10 steps and each each capture was like.

Justin Gardner (05:39.747)
Mmm.

Joseph Thacker (05:52.92)
five to six clicks, you had to like rotate something around to make it point the same direction as other stuff. And I don't know why there was 10 steps, like surely five is enough. And it's super frustrating. It's like when your time is valuable, which you know, ours definitely is, you don't want to spend like three minutes filling out a captcha. And then when it fails, you just want to rage quit and throw your computer across the room.

Justin Gardner (05:58.99)
Yeah.

Justin Gardner (06:05.133)
Yeah.

Justin Gardner (06:11.55)
Exactly dude, it's like, alright, turn on your webcam, hold up seven fingers, now three fingers, now just one finger. Yeah, so that's pretty crazy man. I think they will continue to get worse and worse and worse. And we'll swing back around to the other Portswigger piece of research that I was gonna mention, but yeah, yeah, but the...

Joseph Thacker (06:15.981)
All right. gosh. Yeah, exactly.

Joseph Thacker (06:33.557)
Okay, I definitely want to talk about it too, so.

Justin Gardner (06:37.19)
It makes me think, because like you were saying, as we're testing all these applications, we often have to do these captures and re-auth and that sort of thing. And that makes me think of a tweet by Sweetly that he put out not too long ago that was essentially giving you a way to do a 2FA sort of thing from the command line. And I was like, my gosh, why haven't I thought about this? So apparently there's this app, github.com slash rsc slash 2FA. We'll put it in the description.

Joseph Thacker (06:42.209)
Mm-hmm.

Joseph Thacker (06:53.889)
Mm-hmm.

Justin Gardner (07:05.806)
Essentially, it allows you to just have a command line utility be your 2FA, like authenticator app provider.

Joseph Thacker (07:12.813)
Yeah, and it works with like a matcher place too, where you can actually put it in the thing and it happens automatically, right?

Justin Gardner (07:17.708)
Yeah, well, he integrated it with, so it's just a command line tool, but he integrated it with one of my favorite efficiency tools called Espanso. And now you can just type colon OTP and it just drops your OTP code right into the text box. Pretty awesome, I love that he shared this.

Joseph Thacker (07:25.229)
I'm Spence O.

Joseph Thacker (07:37.549)
Yeah, I'm hoping Mac will build that in eventually. I'm sure you get this a little bit with at least having an iPhone, but you know how it'll automatically fill the text from SMS for for 2FA.

Justin Gardner (07:39.745)
Mm.

Justin Gardner (07:45.038)
Yeah, they have that on Android too, and I don't have an iPhone. I'm an Android. I'm a full Android shop. Excuse me. Yeah.

Joseph Thacker (07:51.342)
sorry, sorry, Okay, okay. Yeah, yeah, so that obviously is nice. And I've been wanting that for web too. Like, I'm sure, I guess Android probably has shared clipboard. Are you able to share your phone to your Windows machine clipboard?

Justin Gardner (08:10.606)
You know, well, we could, probably. You know, it's not native.

Joseph Thacker (08:12.717)
Okay, okay. Yeah, so that's one thing I use a lot too is like when I'm copying and pasting two FA codes out of the authenticator app, I copy it on my phone and then I just hit command V on my computer and it's really fast. But you know, this thing from Sweetly is gonna be nice as well.

Justin Gardner (08:20.898)
Ugh.

Justin Gardner (08:30.83)
Dude, that makes me a little jealous. I'm not gonna lie, man. If you have a shared, like seamless shared clipboard, like there is a thing on Google, on the Pixel devices where you can go and like share a specific tab to a different device and it'll like pop up on the other device and stuff like that and it's pretty easy to use and seamless. But man, I've just been realizing over time, the iOS ecosystem is so nice, really. They put so much.

Joseph Thacker (08:36.569)
yeah.

Joseph Thacker (08:47.17)
Mm-hmm.

Joseph Thacker (08:57.055)
It does, yeah.

Justin Gardner (08:58.304)
effort into making it nice and I've just been a Linux, Android, Windows subsystem for Linux boy for such a long time. But I don't know man, it might be time to make the jump, I don't know.

Joseph Thacker (09:01.933)
called out.

Joseph Thacker (09:10.829)
Yeah, I mean it's a tough decision that's for sure I like the flexibility that it has honestly this is off our notes But you know sometimes more fun when it goes off the rails the latest MBK HD video has him like testing out Android XR and so it's basically the Android operating system for augmented reality and the first headset it looks just like the vision Pro, but it's made by Samsung

Justin Gardner (09:17.09)
Mm. Mm.

Mmm.

Justin Gardner (09:32.578)
Cool.

Joseph Thacker (09:35.298)
But the killer feature is I'm getting really bullish on Google AI because Flash 2 is amazing and like both Gemini and Flash are the best at multimodal processing. So in this video in Android XR, Marques says, actually, by the way, right there on Google Maps, can you zoom me into the Bronx? And it just does it for him because it has natural language-based navigation of the operating system in Android XR through Gemini.

Justin Gardner (09:39.096)
Yeah.

Justin Gardner (09:42.574)
Dude. So good.

Justin Gardner (10:03.518)
No way! Dude!

Joseph Thacker (10:04.777)
Yeah, it feels like he's in Ready Player One or something. I was like, what, this is coming? And so, yeah.

Justin Gardner (10:08.694)
Is it fast? I could see that happening right now. I've seen multimodal AI and I could see that working. But I feel like it would be like, hey, zoom in to the Bronx. And then it's like, three, two, one. All right, we're in the Bronx. Or then we start zooming to the Bronx and then it takes five seconds to zoom to the Bronx and then we're there. How fast was it? I didn't see the video. Wow.

Joseph Thacker (10:27.052)
Yeah.

Joseph Thacker (10:30.849)
Right.

Joseph Thacker (10:36.01)
It seemed relatively quick, but of course, you know, like, you know, it could be magic editing or whatever else, but he seemed impressed with it and it seemed really impressive to me. So.

Justin Gardner (10:44.174)
Well, to be honest, I trust him, man. You know, if he's impressed with it, I mean, if he wasn't impressed with it, he would say, I'm not impressed with this, you know? So.

Joseph Thacker (10:49.526)
Yeah, yeah, exactly. And I just think it's really cool because everyone's been waiting for what the open source operating system was going to be for that, like for AR and VR.

Justin Gardner (10:56.962)
Yeah. Dude, you mentioned Flash 2, man. That update you did to Shift was legendary, man. Seriously. I hit Joseph up one night, and I was like, hey, man, I've been using Shift, which is our tool that we built together, AI integrated into Kaido. And if I hadn't had a Shiftplugin.com.

But I was using it to do some hacking on Google and I was like, man, know, lately it's been a little slow, it's been a little dumb, like I really think we need to like step this up a little bit. And so I integrated some things on the client side and I was like, Joseph, can you get up to the smarter model to flash too? And then like he just like pounded it out one night with like a bunch of other really nice features and I tried it again the next morning and it was like working so well on big requests. Because that was the problem we were running into before. was like.

the requests that we were modifying were massive. And you have to shove all of those tokens into the LLM. And then if you're generating the whole request, it has to then just spit out all those tokens. So the re-architecture that you did, plus adding it to the smarter model, which is still lightning fast, is unbelievable.

Joseph Thacker (12:01.164)
Yeah.

Joseph Thacker (12:04.831)
Yeah, yeah, there's definitely some like, you know, trade secrets there on the how to make the replace work in the editing that I think is like, yeah, then you would add it all that already. So it's perfect. you're good. No, no, it's fine.

Justin Gardner (12:14.38)
Yeah, sorry, I'll try not to like spill all of our trade secrets. Dude, I don't know what my deal is, man, but like I realized recently that I just have no filter on CTVB. Like I've just become so comfortable on this podcast. It's like talking to my wife. You know, I'm just like, just say it exactly how it is. And then I'm just realizing it just gets put out there to like thousands of people. Yeah.

Joseph Thacker (12:33.998)
Everyone. Well, not just that, but then it's searchable for all of eternity. That's really the bigger issue, right? Yeah, I'm high on openness too. But yeah, so one thing I was gonna circle back to, we almost got to it when we talking about CAPTCHAs. It's in my list of things to talk about. I posted about Operator. So, ChadGPD's Operator is basically a computer use agent that they rolled out. And there's a lot of interesting things here. One, I found a cool bug. It was basically an eye door to read other people's prompts and stuff, which is neat. It's already paid out, but.

Justin Gardner (12:38.004)
Yeah. Yeah. Yeah. Okay. All right.

Justin Gardner (12:49.795)
Mm.

Justin Gardner (13:02.552)
Nice. They fixed it already. Have you had a good experience with the OpenAI team?

Joseph Thacker (13:03.227)
but the

Joseph Thacker (13:09.077)
Yeah, yeah, they are. I will say that like, you know, they're pretty secure, which is kind of annoying because, so it's hard to find stuff. And when you do, it's usually like a medium or a low because it requires a unique ID because they're doing things properly. So that's kind of frustrating, but in general, they're great to work with. well, I mean, they've kind of also been slammed by fake reports for the last two years because LLMs hallucinate bugs so quickly, so much, like so well. Anyways, so on the operator, one thing that I tweeted that went kind of viral, and I think it's worth talking about for this community because

Justin Gardner (13:12.558)
Yeah.

Joseph Thacker (13:38.984)
InfoSec is so passionate about like just having like good secure design and there's almost no good secure design at this point in time for AI agents. So it's really tough, but this thing is very similar to rabbit in the way that it's kind of like a VNC portal that's just like working. And so it has to have your credentials to do things. And I just wanted to make like a PSA here that if you use an operator, you know, I've worked at.

at an enterprise company at AppOmni and other people have to like those backend engineers definitely have access to the database. They have access to your account. They can log in as you, they can see the data you put in there. Like maybe they don't very often. Maybe there are good controls around that, but in general, you should assume that those credentials are accessible by them. And so for these AI agents to work, have to give them creds, right? And so if you give them credentials to your email, you are basically also giving up that those credentials to anyone who works at OpenAI. I'm not saying they'll use them. I'm not saying they'll abuse them, but it's just like,

there's a trust barrier there that you're giving up that I think people should be aware of.

Justin Gardner (14:34.53)
Yeah, yeah. And I think that that's got to be true in any scenario. And companies can try to put guardrails up, especially in these sort of like, it's a browser, sort of scenarios where you've got this VNC portal. It just kind of feels like your native environment where you're comfortable and you're like, let me just go through this 2FA flow and just log into my account really quick. That being said, I also have built some automation recently that utilizes just my normal browser.

Joseph Thacker (14:46.028)
Yes.

Joseph Thacker (15:03.597)
Mm-hmm.

Justin Gardner (15:04.248)
via, it wasn't puppeteer, I'm trying to, it uses DevTools protocol in Chrome. I can't remember the name of the library right now for some reason, but I just, for some reason, when I was thinking about using headless Chrome or whatever, I was always thinking like, it's gotta be headless, but it doesn't have to be headless. You can just use your browser that you're actually using on a day-to-day basis to automate tasks. So I had this particular flow that I needed to go through a million times and it needed to use my cookies.

Joseph Thacker (15:09.477)
cool.

Joseph Thacker (15:20.46)
Right.

Joseph Thacker (15:30.7)
Mm-hmm.

Justin Gardner (15:30.806)
and stuff like that, and I was like, how do I go through the auth on this headless browser, and I give it the cookies, and it just was becoming a mess. And then I realized, wow, I can just turn on DevTools protocol on my normal browser and just hook it up to this, and then it just goes through the process in my browser while I'm watching, which makes it really easy to debug, too. I think getting comfortable with those tools can really help make some of those semi-manual processes that you have to do.

Joseph Thacker (15:48.813)
Yeah.

Joseph Thacker (15:59.022)
Mm-hmm.

Justin Gardner (15:59.999)
a lot more automated, a lot more clean.

Joseph Thacker (16:02.421)
Yeah. And I think that that is the paradigm going forward. That's going to be best for most people is that they're going to host their own second laptop server, whatever VM. And it's going to just use computer use in there on their own hardware so that they don't have to like give up those cookies. And rabbit tried to claim that a long time ago. It's like, we don't store your credentials. We only store your cookies. It's like, yeah, but cookies is access. Right. And so,

Justin Gardner (16:24.268)
Yeah, your credentials are on the page for like one second, you know, on any application. And then it's a cookie for there on out. And I know that Network Chuck is really big on the whole, like, have your own, what did he name the server? It's like Tracy or something like that. Yeah, and, you know, have your own private AI server and then kind of try to build your workflows around private AI first. And I just, you know, I was really kind of.

Joseph Thacker (16:39.167)
yes, yeah.

Justin Gardner (16:52.088)
I don't know, I am still a little bit bearish on that. know, I just like, the models are just so much better when they run on the providers, you know, hardware or whatever, but as things gets better, mm.

Joseph Thacker (17:02.869)
Yeah, but think about it.

Think well, think about it from a company though. So I was too, and I still kind of am, but I've recently had a conversation with Marcus from like head of AI security at KPMG and he kind of convinced me otherwise. I think he's going to be doing a talk at DefCon actually about this. I might reach out to him and see if we need to bleep this, but basically these model providers are quantizing their, their models when they're under heavy load. So they actually do get dumber, which is a theory that's been going around that like when, when there's more load that the models get dumber, that's actually true because they have like an

Justin Gardner (17:17.624)
Really.

Justin Gardner (17:29.998)
Mm.

Joseph Thacker (17:34.418)
on the fly quantization that like uses a slightly smaller model. So when you're using the model, when no one else is using it, it has, it's at full size or when there's like a low amount of load, it's at full size and it's going to be smarter. But here's the big security issue. Prompt injections and jailbreaks work way more effectively and efficiently on smaller models. So if you're under load, it's less secure. And so like, if you're a company, if you're a bank and you're wanting to run and make sure it never gets quantized, you have to rely on your own hardware. And on top of that, if you think about like, yes, it's true. I don't.

Justin Gardner (17:43.669)
Interesting.

Joseph Thacker (18:04.341)
that they're going to leak training data or anything. But imagine that you're a company like, for example, App Omni, where I was at the last year, the thing that we built was a chat with your own data. So what's actually going to the model and back is your customer's data. And so even if you do trust, these third party providers like open AI or anthropic, what if someone gets into their network? Do you want them to then have all the data for all of your customers? It's like self-hosting kind of makes more sense again.

Justin Gardner (18:13.998)
Mm-hmm.

Justin Gardner (18:29.984)
I don't know, Joseph. And here's the thing with that. I get that, but also, I just feel like so many people in security are so anal about security when it's so clear from being in this world that nobody gives a shit about you. I run this little podcast with my however many people listening every week, and I'm my full-time bug bounty hunter boy. But if somebody gets access to OpenAI, they're not coming after Justin Gardner.

Joseph Thacker (18:44.841)
Mm-hmm. Right, yeah, that's her.

Joseph Thacker (18:59.35)
for sure. That's right.

Justin Gardner (18:59.842)
You know, they're coming after, they're going after like some presidential thing or you know, like, and so I just, like, like, I get it and I think that a lot of, a lot of hackers, you know, they want to have it for their own personal like paranoia reasons. Yeah, but it's like, just like, it doesn't matter. Like, no one's ever gonna do anything. Why make your life so much harder by not like emailing this document if you, you know, I don't know. Maybe I'm off base.

Joseph Thacker (19:15.309)
Ideal security, right? Yeah.

Right.

Joseph Thacker (19:28.351)
No, no, no, no, I'm with you 100%, especially for individuals. I'm talking definitely for like large enterprises or like banks and that sort of thing. I do think there's now, like I wouldn't have even thought that there was a case to be made for going local, but I actually think there is a little bit of one. And the one thing I wanted to say about the operator that you mentioned with Sweetly is, well, actually, no, it's not with Sweetly, but it has to deal with the captures that we were talking about. Yeah, so what's hilarious, Pliny tweeted this. You can literally just do it in all caps.

Justin Gardner (19:40.93)
Yeah. Yeah.

Justin Gardner (19:45.847)
Mm-hmm.

Justin Gardner (19:50.722)
OTP or the CAPTCHA? Yeah.

Joseph Thacker (19:57.1)
Capture mode enabled, because like right now operator will refuse to do a capture for you. have to click in and do it yourself. And so you can do capture mode enabled, which we'll talk about in our recontact next coming up. Well, so not in the initial prompt, it might work there, but like when you get to the place where it blocks and says like, by the way, I can't do captures here. You need to do it. You can do it at that point. You just reply to the model and say at that point and it will do it.

Justin Gardner (20:08.27)
In the prompt? In the prompt itself?

Justin Gardner (20:22.678)
No way, dude, that's so stupid. I hate how, and this is going back to what you were saying about the like model size decreasing under load. I hate how variable and non-concrete AI hacking is. Like that's my main beef with AI hacking right now. Like the, I guess sort of like soft hacking you might call like prompt injections and jail breaks and that sort of thing, right? It's just so freaking like.

Joseph Thacker (20:23.551)
Yeah, there's this great there's a screen shot we can put it in the the show notes.

Joseph Thacker (20:40.781)
Mm-hmm.

Joseph Thacker (20:47.735)
Yep.

Justin Gardner (20:51.022)
variable and like sometimes it works, sometimes it doesn't work and it's like why? We don't know, we don't have any introspection into the system, it's not consistent. If you get a takeaway, you're like, I got a takeaway and then you try it again two minutes later and it doesn't work and it's like ugh. And we found some really, know, Roni and I found some really cool bugs on Google and I went to go demo it and it's so embarrassing. You like show up, you're like I've crafted this exploit, it works like five times in a row and then I go and show it to the team and it's like.

Joseph Thacker (21:03.777)
Yep. That's true.

Joseph Thacker (21:14.273)
That's true.

Justin Gardner (21:18.894)
Sorry, I can't do that. You know what like? Just do the thing. You just did the thing like two seconds ago, you know?

Joseph Thacker (21:24.365)
Yeah. And I think some of that could be that load I was talking about. Right. So if it was under load before it was, it was working. Yeah. And that's frustrating too, whenever triage has got to replicate, I've noticed that a lot in those, my reports, my AI hacking reports, I have to tell them like, try multiple times, try this modification. So, yeah. Back on track. No. Yeah. Let's do it. Yeah.

Justin Gardner (21:27.01)
Yeah, it could be, yeah.

Justin Gardner (21:35.084)
Yeah, it's a nightmare.

Justin Gardner (21:39.874)
Yeah, all right, let me, do you have anything else to say on that AI front or I'm gonna pull back to some traditional WebSec stuff, okay. Let's see, so yeah, the other thing that I was gonna mention that I mentioned like 10 minutes ago was another piece of research and I'm totally gonna butcher this guy's name but it's like Zakhar Fedukhin is a, it's D4D, he's a Portswinger researcher and this is something that,

was really interesting and actually Matan and I actually had done some research on this that is in the, that's a critical thinkers exclusive. So we sort of have part of this technique already documented in the exclusive content on the discord. But the concept here was a cookie sandwich and tricking the server into thinking that a specific cookie should be parsed with sort of legacy RFC compatibility mode.

Joseph Thacker (22:33.645)
Hmm.

Justin Gardner (22:33.742)
which includes the ability to quote cookies. like the way that we were dealing with it, it's like, if you use a server that deals with this legacy compatibility mode where you have a cookie, know, x equals double quote, and then like a cookie, it will go to the next double quote, even if there's like a semicolon, right, which is where the cookie should break typically. But what the researcher here, D4D, sort of came up with was a way...

Joseph Thacker (22:54.325)
Well, interesting. Yeah.

Justin Gardner (23:00.866)
you know, a more technical way of actually addressing this, which is he analyzed how Apache Tomcat and some of the other common web servers are going into this cookie compatibility mode, and he found a way to trigger it, which is by providing a cookie that starts with dollar sign version with a capital V. And when Apache Tomcat sees that, it will switch to legacy parsing logic.

and allow you to sort of quote various cookies, which can allow you to encapsulate other cookies, like HTTP-only cookies, for example, in a cookie that's reflected on the page. So you can get access to a session cookie via JavaScript, which typically is impossible if you're able to get the session cookie encapsulated in a cookie that's reflected. And you can do all sorts of other fun stuff like this with session manipulation.

on certain endpoints by setting the version cookie to only be on a specific path. and that sort of does the thing that we were talking about before where you're like partially logged in, partially not logged in on some endpoints with like that Matan was talking about. So there's lots of really good applications here. There's some stuff for PHP, there's some stuff for Python, and we'll link this sort of right up in the description as well. I should be sharing my screen. I'm not sharing my screen right now, sorry.

Joseph Thacker (24:03.852)
Yeah.

Joseph Thacker (24:25.901)
So where's the cookie sandwich part of this?

Justin Gardner (24:28.396)
Yeah, so that's the piece with the double quotes thing, right? So you have one parameter in the front that's like, here, hold on, let me just. Mm. Mm.

Joseph Thacker (24:36.406)
No, no, no, no, no, I understand now, sorry. Anytime I hear sandwich attack, I think of like Lupin's research and that sort of thing where you basically, like, you know, Lupin with V1 of UUIDs has talked about sandwich attacks before where you generate a bunch or you generate two at like a very short timeframe and you're able to sandwich in and then basically, you know, predict or guess the other value for that. That's what I was looking for in this. This is like a completely different type of sandwich.

Justin Gardner (24:48.393)
Mm-hmm. Yeah, yeah, yeah.

Justin Gardner (24:59.79)
Totally different type of sandwich. So many sandwiches in hacking, man. But this one is an interesting one because in JavaScript, you can set the version cookie and then you can set param one and then have the session secret get manipulated and put it in the middle and then param two. And what will happen with this is if it starts with the version cookie, then it'll be legacy parsing logic. Then param one equals double quote.

and then it can, the value of param one, semicolon, then it starts the next, the browser thinks that the next cookie is starting, right? So session ID equals secret, that's HTTP only cookie, semicolon, thinks the end of the session cookie is happening, and then you've got param two equals, you know, whatever, and then double quote, right? And the browser perceives that param two as its separate cookie, session ID is its own cookie, param one is its own cookie, but really that param two, when it ends that double quote,

Joseph Thacker (25:33.805)
That's right.

Justin Gardner (25:56.162)
the server is sort of perceiving that as one cookie, param one equals double quote, session ID equals secret, param two equals whatever, double quote. And that last double quote ends the param one cookie. And so it's sort of like using this double quote manipulation to encapsulate cookies inside of other cookies, which could be reflected into the page or cause unintended effects on the server with authentication. Does that sort of make sense?

Joseph Thacker (26:22.763)
Yeah. Yeah. No, makes perfect sense. Yep.

Justin Gardner (26:25.484)
Yeah, yeah, so I really thought that was cool research. There's stuff for PHP, there's stuff for Python, which I think some Python servers are vulnerable to this just by default. They just always parse them, yeah.

Joseph Thacker (26:39.021)
So practically speaking, you're gonna have to have control of a cookie though to even get this started and to use the version thing, you'd have to have access to the first cookie.

Justin Gardner (26:47.916)
Well, you can, you can, if you have XSS, you can use like, cookie jar overflows or just unsetting cookies and that sort of thing to get your cookie to the front. and, and the ordering of the cookies is actually, determined by the path that it's set at. And then I believe after that, when the cookie was set. So by utilizing a more specific path, on the cookie, you can bump your cookie to the front and then trigger this whole thing.

Joseph Thacker (26:55.723)
Okay. Got it.

Joseph Thacker (27:15.543)
Got it. Cool.

Justin Gardner (27:17.942)
So definitely some cool stuff there. It will definitely take some manipulation, especially when you have like an XSS on a subdomain or something like that where you can set cookies and then like a login, logout, CSURF, you can sort of churn through the cookies, set one, and then log the user back in, get the cookie set, and then set another cookie to create the sandwich, and then you may be able to extract the session token. It's a pretty cool technique. Yeah.

Joseph Thacker (27:45.003)
Yeah, it's really cool.

Justin Gardner (27:46.414)
So a little bit heavy on the technical explanation there, but hopefully that was clear for everybody who's listening on audio. We do our best.

Joseph Thacker (27:55.734)
Yeah, let's let's jump to something less technical because I've got two left and one is very technical on the on the cash geolocation attack, but I'm going jump to to Douglas Day. So the Archangel, the Archangel, we all know him well. And also, man, I don't know if we mentioned this before.

Justin Gardner (28:05.026)
yeah.

Joseph Thacker (28:10.325)
If we didn't, we should have, but his domain is so cool. Douglas.day, last name is a TLD, so you get the dot last name. Yeah, pretty cool. But anyway, so he tweeted about, we'll put this in the show notes, of course, he tweeted about this and then also posted on his blog, basically just this idea of report pointers. And so you often want to, especially when it comes to like, you require a specific ID in the application. And one person, know,

Justin Gardner (28:13.976)
So cool,

Justin Gardner (28:18.164)
So badass, yeah.

Joseph Thacker (28:37.0)
use that in their report, for example, because they were able to leak the idea of other organizations and they were able to, you know, do some sort of IDOR to change or update or read that information about another organization. And so then maybe they don't want to share that later, or maybe there's not an Oracle or a way to leak IDs now in the future, but you want the company to take your report seriously because there has been in the past. So he comes up with this idea of what he, he called it collaborative chains or something else initially, but then

Justin Gardner (28:57.698)
Mm-hmm. Mm-hmm.

Justin Gardner (29:04.268)
Report pointers for collaborative chains.

Joseph Thacker (29:06.751)
Yeah, but the report pointers I messaged him because someone else commented on his or told me about it. I was like, dude, this is called a report pointer and it's so much better naming it. So then he like went back and edited it to like make that the name. yes.

Justin Gardner (29:16.342)
Yeah, NBK I think was the guy that did it. That's awesome.

Joseph Thacker (29:21.343)
Yeah, so report porters is what it's called. It basically is just a way for if you need to share or point back to prior research in a previous report, you can just say in your report on HackerOne or BugCrowd or Integrity, just put right there like, and for how to get IDs, reference this report for how to do it or how it was done in the past as a way to show the value. And there are probably lots of other examples. I like the ID leaking examples. I think he mentioned something different.

Justin Gardner (29:41.23)
Mm.

Justin Gardner (29:47.266)
Yeah, we've actually done this in the live hacking circuit for a long time because we get so much insight into each other's reports by just chatting while we're there live at the events. And I'll never forget this one legendary event that we went to where Corbin figured out a way to, Corbin Leo, CDL, figured out this way to leak essentially every ID that you would ever need because all of the IDs were getting put in the URL and he found this endpoint where

Joseph Thacker (29:53.322)
Mm-hmm.

Justin Gardner (30:16.598)
It was just like a metrics endpoint. It was just dumping all of the URLs that anybody was ever hitting, right? And so like, it turned all of the things, you all of the bugs into, you know, yeah, they were mediums and then they got bumped to highs, man. And so everybody was like pointing to this report, like, this is the way, this is the way you get the IDs. it was just like, was just, the cash was just flowing. And the program accepted it. They said, okay, yeah, there's a valid way that's active at the same time as these reports.

Joseph Thacker (30:20.361)
Nice.

Joseph Thacker (30:27.021)
that were like a mediums into highs and crits.

Justin Gardner (30:46.36)
where you can enumerate it. And so Corbin got added to like 20 reports and got this one little like way to leak just the URLs. Got him so much money from collab splits.

Joseph Thacker (30:50.455)
That's amazing.

Joseph Thacker (30:57.494)
Yeah, and in that example, he definitely deserved it because of that. I think sometimes what's nice about this is like, you don't want to give up a large portion of your bug. And so you can just do a report pointer to a report you know about. And this is near and dear to my heart because I like for some reason, if you like go look at my blog analytics, by far the most popular blog and that continues to do well on Google search is the one where I talk about how I think unguessable like IDs should be considered valid IDORs, even if it downgrades the severity. And so this is just another way to increase the severity

Justin Gardner (30:59.791)
for sure.

Justin Gardner (31:24.002)
Amen.

Joseph Thacker (31:27.498)
and show that impact.

Justin Gardner (31:28.354)
Yeah, dude, you know, so glad to have you on the pod. Like, rep and stuff like, you know, unguessable IDs should be valid IADORs. That's amazing. That's great, dude. Yeah, no, I really dig this, too. I think Douglas has been putting out some great stuff. And man, has he been rocking it as a full-time book bounty hunter or what? Like, he's doing so good.

Joseph Thacker (31:48.641)
You have no idea. I think this is his best solo performing month ever.

Justin Gardner (31:53.084)
my gosh, dude, are you kidding me? Because he crushed it at some events. my gosh, Douglas, man, dude, he's crushing it. Wow, and I was gonna say, because remember at the beginning of this, said Douglas has got a cool domain with his last name being Day? Dude, our last names are pretty cool too, right? Yours is Thacker and mine is Gardener, right? You know, we got the hacker, we got the guard, you know, like, not bad.

Joseph Thacker (31:55.274)
Yeah, he found like three more criticals yesterday on Amazon.

Joseph Thacker (32:02.059)
Yeah, yes.

Joseph Thacker (32:14.241)
Which has Dord Hacker in it. Yeah.

Joseph Thacker (32:20.727)
That's true, but I don't know if we'll ever get TLDs for those. We'll see.

Justin Gardner (32:23.362)
Yeah, no, not gonna happen. All right, man, let's see what else we got here.

Joseph Thacker (32:27.709)
if we've got a hacker TLD, which is possible, maybe it could be JosephT.hacker. There you go.

Justin Gardner (32:32.258)
Aha.

there you go, that's good. That's good. But then people are gonna think your last name is actually Hacker and your T is your middle initial. well. All right, so jumping back into the technical stuff, we got a write-up from Flat Security, our boy Uriotuck, who is a legendary hunter and often goes after really traditionally intimidating targets like GitHub and does a lot of very heavy source code review. And he released a...

Joseph Thacker (32:40.375)
All right. That's true, that's true.

Justin Gardner (33:04.814)
blog post from under flat securities domain, flat.tech, called Clone to Leak, your Git credentials belong to us. so, dude, just, love this, I will share my screen this time, so sorry Christian, yes, I'm sharing the screen. Yeah, so I love this blog post, dude, like look at this. Like, he just gives a TLDR up at the top that's like three paragraphs, right, like super short. Not even three paragraphs, it's like three sentences.

Joseph Thacker (33:31.563)
Yep. Three synthesis.

Justin Gardner (33:33.996)
Yeah, and then we get into the thing. He's like, so there's this thing, get credential protocol. Here's what it is, and gives three paragraphs on it. And then each one of these pretty impactful CVEs is majority code block and then three sentences. It's just so simplified and technical and beautiful, but he condenses it down in such a masterful way that it's so easy to consume. I just reread this in four minutes before this episode.

Joseph Thacker (33:53.196)
Yes.

Justin Gardner (34:02.19)
and it's just so easily consumable. So that just really shows that somebody has true mastery over something when they can condense it down to something so simple and minimal. Yeah. So anyway, what I was gonna say about this, sorry, I fanboyed about the style and I didn't even get to any of the content. The major takeaway from this for me was this section right here where he's talking about, so let me just give the...

Joseph Thacker (34:11.074)
That's right.

Justin Gardner (34:27.362)
the concept behind this whole thing. He's attacking Git in so many ways. He's attacking the CLI, the Git desktop, Git itself. And what he's manipulating is primarily differences between the way that Git credential protocol perceives new line characters, which is just a slash n, know, backslash n, and the way that JavaScript or any of these languages that he's working with, I think there's .NET in there as well, the way that they perceive new lines when parsing values. So he's talking about how...

regular expressions in ECMA script, when you use the multi-line flag on the regular expression, have four different types of line terminators. There's the backslash N, the backslash R, and then there's two special ones that everybody who listens to this podcast must know from like off the top of their head, okay? Listen up guys. It's backslash U2028, right? This is a Unicode code point, so it's not like actually that, but it represents a specific character.

Joseph Thacker (35:06.348)
Mm-hmm.

Justin Gardner (35:24.95)
And that's a line separator, and then there's the paragraph separator, which is 2029. And due to these two things, caused so many bugs, protocols don't expect these to be line separators, and they are in JavaScript, which caused a mismatch that would leak your Git credentials when you cloned a repo for this writeup by Rotuck. So amazing work again.

Joseph Thacker (35:48.363)
What is the hexadecimal representation of those two?

Justin Gardner (35:51.33)
These are Unicode, so this is like, you can't really represent it in traditional hexadecimal format. This is like the closest you can get with a Unicode code point. Yeah, and so anyway, I'm not gonna go through all the details of this. He does the same thing with StreamReader in .NET. He does the same thing with some other code pieces here in C and Go, and he found like six CVEs on Git-related stuff. And then, so.

Joseph Thacker (35:54.542)
You can't do them in hex.

Joseph Thacker (36:17.77)
Insane.

Justin Gardner (36:21.038)
That's definitely worth checking out, but the main takeaway here, 2028, Unicode could point 2028, 2029, those are separators and know that when you're using regular expressions in like ECMAScript, in JavaScript, those are line separators on the multi-line. That's gonna cause a lot of other bugs. And then most of the other stuff there is just like, you know, he did really in-depth code analysis and figured out these logic errors inside of the,

various Git products and attacked also Codespaces, which is such an amazing product to go after. Have you played with Codespaces at all? Dude, Codespaces is crazy because it's like, they just spin up an environment for you to run your code in.

Joseph Thacker (36:57.175)
I haven't.

Joseph Thacker (37:04.931)
is that like when you hit dot on a GitHub repo and it just opens? Is that spaces? Okay.

Justin Gardner (37:07.342)
Sort of like that. It's not spaces, that's the IDE version. But then it takes it a step further where it'll spin up like a little server where you can run the code and stuff like that. It's very cool attack surface if anybody's interested in GitHub.

Joseph Thacker (37:16.615)
sweet, yeah.

Was that was that the target for that GitHub event that happened like a year or two ago? OK, cool.

Justin Gardner (37:23.828)
it was, dude, and we found so many bugs in there, know, Duotuck is still finding bugs later. So, code space is...

Joseph Thacker (37:28.811)
Yeah, it's hard to secure infrastructure when you're spinning it up like that.

Justin Gardner (37:32.884)
It super is, man, super is. So really, really ripe attack surface there.

Joseph Thacker (37:36.78)
Yeah, I love that because I feel like you would almost redefine hacking is just like playing with special characters. Like it says so much, all of Orange's research, all of Realtek's research here, it's like, man, there's so many nuances that are really hard. Even those like invisible prompt injection, jailbreak stuff that we, you know, covered a long time ago. Like there's so much with special characters and Unicode characters. Any good hacker nodes to use percent OO, percent OA, percent OD. It's like all these things that we're throwing into requests. Exactly. So.

Justin Gardner (37:41.069)
Yeah.

Yeah.

Justin Gardner (37:51.501)
Yeah.

Justin Gardner (37:56.792)
for sure.

Yeah, no boys.

Joseph Thacker (38:04.865)
So we, honestly, let's just skip this last one. We'll link to it, but I feel like we want to get to the meat of our content. The last thing we had, which we'll drop in the show notes is a really cool way to de-anonymize location stuff for, it was signal and what else.

Justin Gardner (38:18.392)
Discord.

Joseph Thacker (38:19.415)
It's for signal and discord. Pretty neat. mean, it's basically using like content delivery networks to the exact word for it is called cache geolocation attacks. But basically you can kind of de-anonymize things by looking at where specific traffic comes from on CloudFlare or other CDNs.

Justin Gardner (38:38.414)
Yeah, really liked this right up and you know what's crazy to me man. I know we're gonna not spend too much too long on it But like click on this just just just geez. I don't know just Like by this guy hacker Mondav who's 15 years old by the way, which is crazy and just look how many comments are on this thing there's like Hundreds of comments on this thing and I'm like what kind of engagement like if you posted this on Twitter or like

Joseph Thacker (38:47.703)
Just.

Joseph Thacker (39:00.566)
Yeah.

Justin Gardner (39:05.196)
LinkedIn or anything, you're not gonna get this much advice. Just getting like insane amount of engagement. So maybe that's a new hack.

Joseph Thacker (39:05.644)
Yeah.

Joseph Thacker (39:10.253)
It's a good question. to use just, yeah, I don't know if it's because it was linked somewhere else. It could be really interesting to know if this got high up on Hacker News or something or Reddit or something. But I mean, he deserves all of this fanfare, that's for sure. Yeah, it has 600 stars. Why is there no count of comments? I'm curious how many comments there

Justin Gardner (39:13.816)
Yeah.

Justin Gardner (39:23.053)
Yeah.

100%. Yeah, absolutely crazy. I don't know, but I was one of the first people that commented on it, and my email just filled with, great work, nice job, dude, well done. And it could be because he's 15 too, and people are wanting to be like, you rock, dude. But I don't know, I just didn't expect to see that much response on a gist.

Joseph Thacker (39:35.455)
Your email's blown up.

Joseph Thacker (39:42.109)
Yeah, I'm sure.

Joseph Thacker (39:51.625)
Yeah. Cool. So the meat of the episode is what? Tell us, Justin.

Justin Gardner (39:58.444)
So meat of the episode is alternative recon techniques. And dude, I'm so questioning myself right now about, it, it's git, git, gist, gist? It's git, but it's gist.

Joseph Thacker (40:09.951)
It's get, it's just, and it's a GIF.

Justin Gardner (40:13.496)
GIF, yes, gist. Yeah, like, I've never had a problem with this before, but for some reason this morning my brain is just not working. Okay.

Joseph Thacker (40:20.917)
I mean, that's how I say it. I'm sure people say it different ways, but.

Justin Gardner (40:24.008)
Yeah, yeah, okay. So the concept for this episode, we got a little bit behind today, so this is probably gonna have to be pretty tight, but we're just gonna talk a little bit about alternative recon techniques, what I mean by that is, I feel like there's a lot of methodology out there that's core recon, like freaking subdomain enumeration via subfinder, passive DNS sources.

you then you brute force stuff, then you do permutations, then you do like freaking SSL certificate scanning, you know, all those sort of things. And this used to be, like some of those things used to be kind of alternative or like not mainstream, but now, you know, thanks to Jay Haddix and NAHOMSEC and like, you know, all of those big recon guys out there that are sharing their techniques very willingly, it's become mainstream. And that sounded sarcastic. I actually mean, thank you. You know, I'm wearing a NAHOMSEC shirt right now. I wouldn't be...

Joseph Thacker (41:17.801)
Yeah, yeah.

Justin Gardner (41:21.038)
half the hacker I was without those two guys. But I just kind of wanted to take a second and go through some more alternative recon techniques that aren't as mainstream now, and just in case anybody wants to go after some recon stuff. Now, you used to be, slash still are, maybe a recon boy. You got anything to share here, Reza?

Joseph Thacker (41:45.302)
yeah. So on what you just said, I mean, yeah, kudos to all of them. think that had ex recon methodology is how I got started. I literally walked through it step by step, set up my server and then, and then literally followed along with my home sec, you know, and his, his hack alongs and did the same stuff. So yeah, I mean, we're all building on the shoulders of giants here. I do think there's a lot of room for cool alternative recon techniques. You know, I posted in the seats and the critical thinkers chat.

Justin Gardner (41:53.763)
Same.

Joseph Thacker (42:09.915)
last week, the, you know, AI kind of sub domain guessing. And I think there's a lot of other really cool ways. Yeah. Cool AI. Yeah. C E W L AI. but I think there's going to be a lot more of those. And I think that one issue, one blocker to all of the stuff we're about to mention is that it.

Justin Gardner (42:11.47)
Mm-hmm.

Yeah, that was really cool. You released what was it? Cool AI?

Joseph Thacker (42:29.257)
requires coding a lot of it does. And, I think that in the past that's been harder, but now with the help of cursor, with the help of like literally, even if you don't use cursor, you just use Chad to be your cloud. Just say, Hey, write me a script that monitors this or that does this thing. lot of the ideas we're about to mention that Justin has like kind of laid out here, I think are much more possible even for people who are not expert developers because of the fact that we have AI to help us write that code or test it.

Justin Gardner (42:31.214)
Mm-hmm.

Justin Gardner (42:53.422)
Yeah, Yeah, cursor man is just indispensable. Like, we talk about it a lot, but I'm not gonna go down that rabbit hole again. It's just, I just love it every time I use it. Dude, yeah, I mean, I wanna sponsor them. You know, I wanna give them more money. Like, this is like one of those products where it's like, I just wanna give them more money. You know, like, it's that good. Anyway. Okay, so first one that I had on the list was actually a shout out from...

Joseph Thacker (42:59.447)
It does.

Joseph Thacker (43:04.993)
We're gonna have to reach out to them as a sponsor is what we'll need to do.

Right, yeah.

Joseph Thacker (43:14.549)
Right. Yeah.

Justin Gardner (43:20.494)
that he mentioned on the podcast before, but I just kind of wanted to double click into a little bit again, is what pages, like trying to solve the question, what pages have references to like the given target in their JS files or in the like HTML response, right? And you're gonna get a lot of false positives here where it's like, know, especially if you're looking for like www.google.com or whatever, right? Everything is gonna be linking back to that. But if you're dealing with like some pretty

Joseph Thacker (43:45.015)
Sure. All right.

Justin Gardner (43:50.734)
fringe subdomains or whatever. One of the tips that Natalie had that landed him that token, which is that, that got that crazy bug that we talked about back in December, just finding out which pages reference your target in their JavaScript files or in the HTML, and he does that by a URL scan. And I just think there's gonna be a lot of stuff you gotta filter through on there, but I'm sure that there are things that will not pop up.

Joseph Thacker (44:10.516)
Hmm.

Justin Gardner (44:20.546)
besides in that specific scenario, especially in today's super cloud-based architecture, where they definitely spun up some cloud resource. There's no other identifier on that resource besides just that mentioned in the JavaScript files. And then if you find that resource, you're in great shape. But otherwise, you're never going to find it.

Joseph Thacker (44:27.329)
Mm-hmm.

Joseph Thacker (44:39.982)
Yeah, I think this is especially true now that we're getting more and more programs that are like anything we own or even better. Some companies are anything that impacts us. T-Mobile is historically like this. It's like, if you can get this flag through any means necessary besides, you know, breaking into our building or whatever, then we'll pay you. And I think there are other companies that are at that level. I would say, I think Google can be that way with some other core assets. so I think, right. And so I think,

Justin Gardner (44:44.686)
Mm-hmm.

Mm, yeah.

Justin Gardner (44:55.598)
Mm-hmm.

Justin Gardner (45:02.838)
Yeah, for sure. Especially if user data is affected for Google.

Joseph Thacker (45:08.685)
doing that's like huge. And I, the reason why I like the URL scan a shout out is because it's something that's just so easy to work into your workflow. The same way. I'm sure you also do this with GitHub. do this. It's like anytime I'm working with like a random sub domain or a random cookie name or something, I always Google it in quotes. And then I always search it in GitHub with quotes. And now from, and now I'm going to actually, I hadn't thought about it before. I start searching for that same thing in URL scan. It's like, just, those are the three things I check really quickly to be like, is there anything out there about this obscure asset?

Justin Gardner (45:26.498)
Mm-hmm.

Justin Gardner (45:36.002)
Yeah, yeah, and I love it when I throw it into GitHub and like I just see, because you know, it takes a little while to do the code search, right? And then so like my eyes just sort of laser in on like the code search and it's a dot dot dot dot dot dot and then when it comes up with something that's not a zero, I'm like yes and then I go to it and it's like somebody putting their freaking recon data on GitHub. my god, it's the worst, man. But yeah, no, but sometimes there is really cool like, you know, some devs stuck up.

Joseph Thacker (45:43.148)
Yeah.

Joseph Thacker (45:50.41)
Yes, same. Recon data online, my gosh, it's the worst. I know.

Mm-hmm.

Justin Gardner (46:05.408)
subdomain reference in there. then I know like...

Joseph Thacker (46:07.795)
I saw that with dot files just recently, Google engineer had threw something in a dot file.

Justin Gardner (46:10.411)
yeah.

and put their .files on GitHub. Yeah.

Joseph Thacker (46:16.052)
Yes, and I haven't reported it and it's like not that sensitive, but it's kind of interesting. It's like a, you know, it's like the name of a model of like a, you know, like a little coding model. And so it's kind of interesting. I'll share it with you afterwards, but.

Justin Gardner (46:24.49)
Interesting. Yeah, show me that after. Okay, so then, guys, I'm getting a little bit off topic here, but we did do the first critical research lab team meeting, right, which was great. We had the whole team there, and we were kind of talking about all these research areas that we were gonna go after as a team, and one of the ones that popped up from Kevin Mizu was the fact that there is this protocol

surrounding chips, which is a new feature for cookies that allows you to partition various cookies. And it is a part of the whole suite of protections that Google is releasing in Chrome related to third party cookies and the effect that trying to limit those. And one of the solutions that they have is they have sort of like an HSTS-like list.

which is just a JSON file on GitHub, of third parties that you authorize to have third party relationship with your domain. And I was just thinking, this is kind of an interesting recon technique as well, is like go to this JSON file and look for your target and see whether they've defined relationships with third parties where those third party cookies could be defined. And then try to...

Joseph Thacker (47:24.962)
Mm-hmm.

Joseph Thacker (47:42.689)
Hmm.

Justin Gardner (47:49.528)
have an XSS or something like that on that third party and then use that XSS to attack the main domain sort of abusing that trust relationship.

Joseph Thacker (47:58.122)
Is there a specific name of that file?

Justin Gardner (48:01.086)
Yeah, yeah, I'll link it in the description, but it's under the Google Chrome GitHub repo, and it's called related website sets, and it's just relatedwebsitesets.json. So it's in the doc if you want to check it out right now. So it's probably not going to be a massive win, but here's the thing, man, and I was going to elaborate on this a little bit as well, is when you're dealing with these really, really hardened targets, and these targets that are really value security, it really

Joseph Thacker (48:12.109)
Yeah, that's great.

Joseph Thacker (48:27.117)
Mm-hmm.

Justin Gardner (48:30.862)
is the best route to attack the third parties that they are trusting their information with. It just is. Those third parties are just so much more vulnerable, and the impact is the same if they trust those third parties in a way that they give them code execution on their page or whatever. And yeah, think it could be a really big, I think the industry is moving in the direction, for any program managers listening here, is you have to accept responsibility for what impacts your websites, not what code you.

Joseph Thacker (48:46.572)
Right.

Justin Gardner (49:00.262)
you wrote because at the end of the day, you made an active decision to trust this third party to establish the third party trust relationship. And that active decision is the same as pushing code that is vulnerable, right? And you have to take responsibility for that. Attackers are gonna manipulate it and you're just exposing yourself to more risk if you are not taking responsibility.

Joseph Thacker (49:12.237)
Mm-hmm.

Joseph Thacker (49:20.009)
Yeah. Gimping your, your good guys, giving your buck hunters who are helping you find these issues by not letting them look at it is just a kind of silly. When you think about that, the bad guys are still going to have the ability to use it and create the same impact. Maybe, maybe this means that downstream changes need to occur where when you sign a third party agreement with some, you know, some provider to use their service, they agree to cover some amount of the cost of, of any bug bounty reports that come in or something, right?

Justin Gardner (49:43.832)
Yeah, yeah, yeah, absolutely. I mean, I think that could be integrated into the contracts. And I think there should be more thorough assessment of third parties before they are integrated, especially when you're dealing with high security websites, like a bank or a crypto exchange or something. Don't just be throwing some freaking support widget on there. No. And I just wanna say with that, I hope it was clear earlier when I was saying threat models, you know.

Joseph Thacker (49:59.189)
Yep.

Mm-hmm.

Justin Gardner (50:13.198)
I have a Google home sitting right in front of me, listening to everything I say, and I just don't care. So I like to think of myself as a pragmatist when it comes to security and a realist. This is a problem. This third party thing is actually a problem. And it's not a fake problem that we're trying to inflate because we want more bounties. This is the same thing as just having an XSS on WWW, and you can just steal people's credentials right out of the page or whatever.

Joseph Thacker (50:40.032)
Right.

Yeah, and I think it's just that they don't see as much concern with dropping that widget on there when I think that they should. And so that's basically what we're raising here.

Justin Gardner (50:51.694)
Yeah, 100%. All right, next one I had on the list here was Docker containers for source code leaks, man. That one is nuts, and I've seen a couple players in the game, particularly Lupin and Ronny Carter and that squad really do a good job with this, where just like people have built out full sort of recon infrastructures to scan GitHub for leaks, we need to be doing the same thing with Docker repos.

or Docker images, clone them down, hop in there, scan for secrets, scan for references to your target company, bump back through all the version history for that repo, or for that specific image. There have been tons of times where absolutely indispensable code to very high value exploits have been found inside these repos and you just turn your engagement into a white box engagement.

Joseph Thacker (51:45.056)
Yeah, that's interesting. What do you think is the, like, do you think this could be turned into a tool or basically someone pulls down and indexes the data in there so someone can just search across it easily in some sort of front end app? Or do you think that a tool to do the actual downloading and grepping is more necessary?

Justin Gardner (51:56.162)
Yeah, absolutely.

Justin Gardner (52:02.53)
I think there are some tools out there to do the downloading and grepping already, but man, it would be a cool service if you did grep.app or whatever. I think they've got that for GitHub. It'd be cool if you did something like that for Docker containers, but dang, it'd be heavy, man, because those Docker containers are they are weighty. But I think you could probably do it in a really smart way, because a lot of the Docker containers do a base image, and then they have a modification on top of that base image, so you might be able to graph it out.

Joseph Thacker (52:09.165)
All right. Yeah.

Joseph Thacker (52:28.873)
Yeah, look, look at the diff. Yeah. Is there a good way to know like, are you just talking about the ones that are just out there on like the normal Docker hubs? Or do you think okay, okay.

Justin Gardner (52:39.628)
Yeah, on Docker Hub. Yeah, thank you. I totally forgot to mention that. Yeah, I'm talking about Docker Hub. And I don't know, maybe there's other places where these are hosted. I've also sort of thought about maybe attacking the images that are on the cloud providers' websites. Like I know that if you go to EC2, you can go to the EC2 store and spin up Apache or WordPress or whatever. Those could also potentially have some valuable code inside them that they didn't realize they pushed.

Joseph Thacker (52:53.388)
Mm-hmm.

Joseph Thacker (53:06.541)
Yeah, no, was just thinking, aren't there's, there's also like third party Docker hub stores basically for a lot of enterprise companies. Like I'm sure Google has them, whatever. And it's like, just hosts a bunch of their own images. And so I'm sure that would be similarly, you know, beneficial to look through.

Justin Gardner (53:20.782)
Yeah, that makes sense. The other one that I had on here, before we go into diffing and talking about API specs and stuff like that, is one of the ones from Jay Haddock. So I mentioned before he's been doing a great job disseminating high value recon techniques. And this was one that he mentioned on the pod and also in his own framework. Taking a domain, running a trace route on it to see what

Joseph Thacker (53:40.033)
Yeah.

Justin Gardner (53:50.602)
nameservers are associated with it, and then querying those against those nameservers in a passive DNS sort of way, and saying what other domains use those nameservers? Which is kind of crazy to me that he would do that, because like I was talking about before with Nogli's thing, there's just so many false positives of sorts, right? But I think the way that the industry is kind of going,

Joseph Thacker (54:02.509)
Hmm.

Joseph Thacker (54:15.031)
Right.

Justin Gardner (54:19.69)
A lot of the more specific recon techniques where you get a well-defined, hardcore hit, like just brute-foresting subdomains or whatever, have been enumerated, I feel like, in a big way. And then now what's going to happen, where the game goes, is how do we weed out all of the fluff from these techniques that will just give us a ton of data back and focus specifically only on the ones that are high value to our target? And maybe there's some applications with AI there. I don't know.

Joseph Thacker (54:24.351)
Yeah.

Joseph Thacker (54:40.854)
Right.

Joseph Thacker (54:44.845)
Mm-hmm.

Yeah, I think that you're just gonna have to look for, like it's not gonna work for all companies. Like if they're just using traditional name servers that everyone's using, then it might not be that fruitful. But if there's something custom in there where like there's a name server that only they use and then you find some random asset that's also pointing at that, that's also using that same name server, you know they own it or that they're at least really closely related to it. So.

Justin Gardner (55:05.678)
Mm-hmm.

Justin Gardner (55:09.228)
Yeah, it's helpful. It's a good technique. was really surprised when I heard it, and I was like, that makes a lot of sense. But yeah, lots of weeding, lots of weeding through. I mean, his testimonial from it was that they've gotten a lot of really good top-level domain, like top-level domain, you know, owned by an acquisition or something like that, sort of data out of that, which is super high-value data, right? Like if you get another top-level domain, that can lead to like a mountain of bugs.

Joseph Thacker (55:28.663)
Yeah.

Joseph Thacker (55:32.885)
Mm-hmm.

Justin Gardner (55:39.362)
So really, really, really good stuff there.

Joseph Thacker (55:41.173)
Yeah, do you mean to mention my operator thing?

Justin Gardner (55:43.01)
Yeah, yeah, that was cool, yeah.

Joseph Thacker (55:45.74)
Yeah, so I mean, think in general, there's going to be a lot of cool ways to use AI.

we're all about to have a bunch of our lone little peons to go tell to do stuff. And so was telling Justin, was telling Justin for the call that a fun little alternative recon technique would be like having operator do recon for you. And so when I say operator, you know, any computer use system, and there's going to be a lot of them, Anthropic has an open source one that you can spin up in, in like a, in a VM right now if you need to. but what I had to do, which I thought was pretty neat was Google dorking is always just a little bit manually intensive and you copy paste, you look through, you copy, you paste, look through. And so I just took a list of all the popular

Justin Gardner (55:53.164)
Hahaha!

you

Joseph Thacker (56:19.599)
Google dorks and then just gave it a company name or like a domain name. And I had operator start going through and doing that. And the issue was it ran to the capture. So then I was able to use the capture bypass we mentioned earlier, captures enabled it. So then it kept going. I wonder if you could kind of, this is probably just a good tip for the listeners, but build basically, you know, maybe AI agents can't do it now, but we'll be able to do it in the future by like listing out your methodology of like, I do these cool dorks. I do these searches on GitHub. I do this search with URL scan. And then even

Justin Gardner (56:32.494)
Crazy man.

Joseph Thacker (56:49.659)
you'll be able to hand that over to an AI agent because none of that is like highly technically intensive work. Just be like, hey, do all these things and just give me all the results. I'll go through them myself. Or, you know, don't mention stuff that's like clearly benign. Like if there's a PDF to their, you know, terms and conditions, like ignore that. But if there's any interesting things in the Google Dork of the .pdf, right? I know. Yep, exactly.

Justin Gardner (56:54.453)
Yeah.

Justin Gardner (57:09.688)
So real. So real, like a PDF to their terms and conditions. It's definitely gonna pop up, my God. Yeah, no, that's good, man. I think, know, agentic structure and automation is huge and will continue to be huge. this is, operator is gonna be a part of that, I think. So, very cool. We gotta bounce, but last thing that I just wanted to shout out there is like, I think people sleep on like API spec or

change log diffing. I've mentioned it in the past. That is a really good recon technique because not only does it give you, know, draw your attention back to an asset that is changing, it's time bounded. It's, you know, you know that they just pushed this and it's very deterministic like we were talking about. A lot of the recon techniques are like very fluffy. You know, there's a lot of false positives. This one is like, no, it's a new endpoint. You should go test that, you know, sort of situation. So I think a lot of people sleep on that.

Joseph Thacker (57:43.361)
Mm-hmm.

Joseph Thacker (58:05.917)
Yes. Yeah, I'm good to stay on for a few if you want to stay on for just a few more because I wanted to mention a few things. Okay, cool.

Justin Gardner (58:11.822)
I gotta bounce unfortunately.

Joseph Thacker (58:14.829)
Yeah, so the one thing I was gonna say real quick before we hop off is the fact that one Justin did release a really cool JavaScript monitoring thing in the critical thinkers chat for only critical thinkers exclusive content So if you wanted access to that you could always subscribe and get access to it to you know Someone you know, there's a thing called BB scope or you can look for a new scope like that's a kind of a way to diff and look for things Yeah, I think diffing for JavaScript diffing for API and points to see what change is a really cool alternative recon technique That's custom and it's just gonna pay you dividends if you slowly set up one a week man in two

Justin Gardner (58:21.934)
Hmm.

Joseph Thacker (58:44.803)
years how many are you gonna have running you're gonna be just having like new stuff to look at every day so get the ball rolling now

Justin Gardner (58:46.187)
Insane.

Yeah, very good stuff there, man. And I think we probably could spend a little bit more time on alternative recon techniques, so we might do like part two of this one. We had a big news day, but I think there's a lot of other ones out there that like, maybe not give you a hit all the time, but when they do give you a hit, it's gonna be a hit that no one else has. And that's kind of the ones that I'm interested in for these. All right, man, is that a wrap on the pod? All right, peace.

Joseph Thacker (58:56.235)
We could. Yeah.

Joseph Thacker (59:11.01)
Perfect, sweet dude. Yes sir, thanks y'all, see ya.