WEBVTT

00:00.000 --> 00:09.460
This is dedicated to all the hackers and the crackers, to the hackers and the crackers.

00:09.760 --> 00:15.520
I see in binary, I speak source code, step on my toes, I'll post a million jpegs of you

00:15.520 --> 00:16.600
and a fag pwned.

00:16.720 --> 00:21.640
In your digital stance, getting firewalled ho, cause I'm riding the net in my six-fold.

00:21.900 --> 00:26.440
I was a dick with my 56, now with my cable I'm able to get that stable.

00:26.440 --> 00:32.460
On the out, my name is Ace and I'm a Leo. On the digital highway, my name is Neo and I'm a hero.

00:32.680 --> 00:38.360
In a flash, I'll screw you on burning Dreamcast. You need some ISO? Let me through my hard drive rifle.

00:38.700 --> 00:43.520
Our exchange you could never stifle. In a digital hug, you just caught the love bug.

00:43.840 --> 00:47.540
I bootlegged your CD, I caused a fight between Un and Jay-Z.

00:47.880 --> 00:52.100
Your CG, it's all gonna be free, whether we take it by force or we take it nicely.

00:52.220 --> 00:56.280
You feel that rattle in your bones? When I tell you we just hacked out Jones.

00:56.440 --> 01:00.720
And NASDAQ leaves your fight on your back, cause I am he who loves to hack and crack.

01:00.960 --> 01:03.500
Cause I am he who loves to hack and crack.

01:03.940 --> 01:06.600
This is dedicated to the hackers and the crickets.

01:07.060 --> 01:11.640
Serial codes, source codes, ISOs, RANS, SIPs, SIPs.

01:11.880 --> 01:14.180
This is dedicated to the hackers and the crack.

01:14.740 --> 01:17.720
Welcome once again to Binary Revolution Radio.

01:17.720 --> 01:25.340
I am Stank Dog joining you this week on March 13th, 2007 for episode number 190.

01:26.420 --> 01:33.900
Wow, I can't believe we're keep inching closer and closer to 200 episodes, weekly episodes of this radio show.

01:34.760 --> 01:38.860
Amazing sometimes when you sit back and think that we started this almost four years ago.

01:39.040 --> 01:42.500
Just baffling. I can't believe we've kept it going this long.

01:42.500 --> 01:47.840
But, joining me this week on the show, which is going to be actually a very good show I think.

01:47.920 --> 01:50.360
I'm already, even from the notes I'm already learning quite a bit.

01:50.480 --> 01:53.120
Our good friend Mia Flux is joining us on the show again this week.

01:53.200 --> 01:56.640
You were on, weren't you on the gangster episode a couple episodes ago?

01:57.700 --> 02:00.420
Yeah, 187 on the undercover cop.

02:00.420 --> 02:03.220
There you go. That was the gangster episode 187.

02:03.860 --> 02:05.860
So, joining us again this week.

02:06.080 --> 02:09.620
And we are going to talk about some pretty interesting stuff later on.

02:10.880 --> 02:14.160
Cross-site scripting related things, but we'll go into some more detail later.

02:15.020 --> 02:18.260
First, I do have a little bit of housekeeping to talk about here.

02:18.380 --> 02:22.240
I'm not sure, I don't think I mentioned this on the show, or if I did, I didn't talk about it in detail.

02:22.240 --> 02:28.500
But, we did just relaunch, or I guess, I don't know if I should say launched a new site, or relaunching a site.

02:28.660 --> 02:38.480
But, the people who have been around for a while know that we've run a secure, disposable email service for quite a while now called willhackforfood.biz.

02:39.680 --> 02:41.100
And, it works great.

02:41.340 --> 02:45.280
It's been up and down a couple times due to some technical issues with our old server.

02:45.400 --> 02:46.960
But, we are back up on a new server now.

02:47.060 --> 02:48.640
That site is back up and running.

02:48.640 --> 02:57.060
However, the reason I say launch or relaunch is because willhackforfood.biz actually started off totally as a joke.

02:57.920 --> 03:05.500
.biz addresses at the time were, like, being sold for $1.95 a year or something like that because they wanted to promote them and get people out there using them.

03:05.560 --> 03:06.600
It was when they first rolled out.

03:07.560 --> 03:16.420
So, we went ahead and got it as a joke, and we thought it was kind of irony that it would be a .biz that we're begging, like, you know, having to sign up willhackforfood.biz.

03:16.420 --> 03:20.700
So, it started off as a joke and just a sandbox for us to do some testing.

03:20.800 --> 03:22.660
We never intended it to be a real site.

03:23.360 --> 03:33.680
And then, when we came up with the idea of secure email from my presentation that I gave it at, I guess that was Interzone 4, 3, 4, whatever.

03:34.480 --> 03:41.720
We created the idea and created the site, and we decided since we already had that domain and it's kind of funny, we'd use it.

03:41.720 --> 03:52.080
Well, long story short, which is something I'm not good at making a long story short, willhackforfood.biz is just not the ideal URL to use for email.

03:52.280 --> 03:54.240
It's long, first of all, too much to type.

03:54.820 --> 04:00.060
The whole point of disposable email is you want to use something real quick and fast and throw something in there made up real fast.

04:00.880 --> 04:05.360
.biz is not exactly the best domain because .biz is actually pretty well known.

04:05.360 --> 04:15.260
A lot of spam originates from .biz addresses, and it's got the word hack right in the URL, so people could easily put a filter of it not allowing anything with the word hack in it, stuff like that.

04:15.320 --> 04:19.980
There's just lots of reasons that it's a bad domain name to use for such a service.

04:20.880 --> 04:24.260
So, what we've gone ahead and done is registered a new site for that.

04:24.260 --> 04:36.700
It's still willhackforfood, we'll still refer to it as willhackforfood or WAF for short, but the new domain is wh4nf.org, wh4f.org.

04:36.760 --> 04:45.580
It's the same thing, same interface, and it works the same ways that it always has, so anybody that's been missing it or has forgotten about it, it is back up and running.

04:45.580 --> 04:58.700
There are still a few features we want to add to it, like suggesting names because it's kind of hard to tell which names have been used, but, again, disposable, you should just be making up some gibberish stuff anyway, so the odds of a name collision at this early stage in the game is pretty low.

05:00.340 --> 05:03.200
So, and actually, I think you've used that site before, haven't you?

05:03.220 --> 05:05.920
Didn't you tell me one time that you like that, the willhackforfood service?

05:07.600 --> 05:08.040
Oh...

05:08.040 --> 05:09.020
Back when we were, I think back when I...

05:09.020 --> 05:11.160
I did it was a while ago, I can't remember offhand.

05:11.160 --> 05:32.080
Yeah, I think back when we were talking about, because I gave the presentation, before I gave it a dinner zone, I gave it down at the Fort Lauderdale 2600 meeting using Dodger, an account I created called Dodger, on the fl2600.com site where I showed how dodget.com was vulnerable to this backdoor attack, and that's kind of what gave me the idea for the whole thing.

05:32.140 --> 05:33.460
But, yeah, that's been quite a while ago.

05:34.260 --> 05:35.080
But it's been around...

05:35.080 --> 05:39.780
I remember that wasn't there, actually, I think that was at a DC305 meeting.

05:40.200 --> 05:40.940
Oh, was it?

05:41.800 --> 05:43.360
Wow, I forgot all about those, too.

05:43.400 --> 05:44.820
Yeah, that was with Diablo back in the day.

05:45.020 --> 05:46.460
Yeah, I forgot all about those, too.

05:46.520 --> 05:47.800
Well, it's been around for quite a while.

05:47.820 --> 05:50.460
Yeah, that sort of died quietly, but that was pretty fit, man.

05:50.660 --> 05:51.580
Yeah, that was pretty cool.

05:52.000 --> 05:56.000
All right, so that is still around, so wh4f.org.

05:56.020 --> 05:58.260
It's also shorter, easier to type, etc., etc.

05:58.380 --> 06:00.200
So, check that out.

06:00.920 --> 06:06.340
The only other piece of housekeeping I have is actually kind of a story time, if you will.

06:06.680 --> 06:08.040
This is kind of a funny story.

06:08.160 --> 06:10.600
They lighten the show up before we get into some deep tech here.

06:11.160 --> 06:18.840
Long-time listeners of the show and long-time friends of mine know that I have a little problem with sleeping.

06:19.000 --> 06:20.640
I have horrible, horrible insomnia.

06:21.060 --> 06:26.620
I've actually coined the phrase hacker's insomnia, which I think is one of my few articles that you actually liked.

06:26.620 --> 06:28.820
Oh, I love that one.

06:28.880 --> 06:37.080
The hacker's insomnia article, which was basically a 4 a.m. rant of mine, or, yeah, I guess, for lack of a better word,

06:37.080 --> 06:45.520
where I just was frustrated with being up yet again another night because I'm always up thinking about code, thinking about stuff, and have problems sleeping.

06:45.660 --> 06:47.840
Well, I've pretty much had it my whole life.

06:47.900 --> 06:49.340
It's just been getting worse and worse.

06:49.520 --> 06:54.420
It takes me several hours to fall asleep, and if I wake up in the middle of the night, it's hard to get back to sleep.

06:54.480 --> 06:55.660
It just sucks being me.

06:55.940 --> 06:56.880
Wah, wah, wah.

06:57.460 --> 06:57.820
Emo, emo.

06:57.820 --> 07:03.100
I'm familiar with that, too, because I think I read that article at, like, 3.30 in the morning.

07:03.740 --> 07:05.420
See, that's irony.

07:05.600 --> 07:10.240
Yeah, as soon as I read that article, I was like, all right, you know, I'm going to start hanging out with Stank next meeting.

07:10.440 --> 07:11.180
There you go.

07:11.940 --> 07:15.420
So, okay, so emo, emo, life sucks, nobody understands me.

07:15.480 --> 07:18.380
Anyway, so I finally went and did something about it.

07:19.280 --> 07:22.520
I'll make this quick because it might be kind of boring, but I actually finally went.

07:22.520 --> 07:25.260
If anybody's ever heard of this, they have something called a sleep study.

07:26.000 --> 07:29.180
And, no, this is not like some college volunteer to make 50 bucks.

07:29.240 --> 07:35.500
This is actually something you can go to the doctor, and basically they send you to a sleep study place.

07:35.580 --> 07:42.220
I don't know if there's a term for it, but basically it's a glorified hotel, or simplified hotel for, I guess, a better word,

07:42.740 --> 07:47.540
where they go in there, and they basically attach a whole bunch of wires and sensors to you.

07:48.040 --> 07:51.360
And I actually took some camera phone pictures I might have to upload to the website,

07:51.360 --> 07:55.920
even though I know they will be Photoshop material, Photoshop bait.

07:56.740 --> 08:00.620
But basically they tape all these sensors to different parts of your face.

08:00.700 --> 08:04.660
First of all, it was just pure comedy when I first go into this place.

08:05.420 --> 08:10.260
They sit you down in the chair, and they measure your head with a tape measure, which is already kind of weird.

08:10.360 --> 08:11.580
It's like, what the hell?

08:12.800 --> 08:13.900
You've got a pretty big head.

08:13.900 --> 08:16.220
Yeah, exactly, and, yeah, that's what she said.

08:16.920 --> 08:23.420
And every time he would measure the head, my head, he would put a little grease pencil,

08:23.820 --> 08:28.080
and he's marking X's all over my head and all over my face and crap like that,

08:28.580 --> 08:30.420
for everywhere that he was going to connect a sensor.

08:30.500 --> 08:32.720
It looked like a fucking tic-tac-toe board or something.

08:32.860 --> 08:34.340
It was like 3D tic-tac-toe.

08:34.340 --> 08:42.000
So I had all of these wires basically running to different parts of my body,

08:42.080 --> 08:45.820
all my shins, my chest, my head, the back of my head, my neck, my scalp.

08:46.500 --> 08:50.380
I don't know how in the world anybody could, they expect anybody to sleep with these things.

08:50.460 --> 08:58.160
I think there were 46 different sensors that they had on me through, I think, 20-something different wires.

08:58.160 --> 09:01.820
And they were all stuck to your, different parts of your body,

09:01.940 --> 09:06.860
and then they put this weird glue-type stuff to keep them from coming off at night while you are trying to sleep.

09:08.160 --> 09:12.060
And the cool part about it, and the reason it's worth mentioning on the show,

09:12.140 --> 09:14.460
besides the Simple Hacker Insomnia rant,

09:14.900 --> 09:18.140
is that all of this stuff is tied back to a computer center.

09:18.220 --> 09:21.800
And actually when I walked in, I walked past, I saw this huge lab they had,

09:22.580 --> 09:26.220
where, because they have, I think he said, 10 rooms in the center, in the sleep center.

09:26.220 --> 09:29.240
And each one of them was tied to someone's room,

09:29.360 --> 09:32.840
where it could monitor all of their vital signs and all that stuff at night while they slept.

09:33.580 --> 09:38.260
So that was kind of cool, and ironically, I was there Saturday night this past weekend,

09:38.360 --> 09:40.860
which is, if anybody knows, was the Daylight Savings night.

09:41.580 --> 09:45.360
The mini Y2K, the OMG, my clocks might be off by an hour.

09:46.600 --> 09:48.360
That's got more problems than you think.

09:48.500 --> 09:49.200
Yeah, well...

09:49.200 --> 09:50.420
Especially across the 2,000 computers.

09:50.720 --> 09:52.420
Come on, what's the worst case scenario?

09:52.480 --> 09:54.720
You're off by a freaking hour, come on.

09:56.220 --> 10:00.040
If you've got problems bigger than that, then you didn't code very well to begin with.

10:00.680 --> 10:02.840
You've got all the Outlook users going,

10:03.280 --> 10:05.540
oh no, my appointments are off by an hour.

10:05.640 --> 10:06.460
Yeah, exactly.

10:08.020 --> 10:10.760
So, all this stuff is monitor by a computer.

10:10.880 --> 10:13.920
I actually asked them, you know, they give you the general chit-chat,

10:14.000 --> 10:15.260
what do you do for a living, blah, blah, blah.

10:15.380 --> 10:16.840
And I said, oh, I'm a computer programmer.

10:17.260 --> 10:19.540
Hey, what are the chances I could go back and see your computer system?

10:19.580 --> 10:22.300
Because I was curious in how it worked, and they would, of course, not let me do that.

10:22.300 --> 10:26.960
This is a medical facility, doctors, privacy, all that kind of stuff, comes into play,

10:27.080 --> 10:28.820
which was kind of depressing.

10:28.920 --> 10:30.580
But okay, I can understand that.

10:31.600 --> 10:33.360
So anyway, they hooked me up to all this stuff.

10:33.520 --> 10:37.300
Finally, you go in at, at least for this one, I went in at 8 o'clock,

10:37.400 --> 10:40.060
but you're not allowed to go to sleep until 10, theoretically.

10:40.820 --> 10:44.000
And they wake you up at 5 a.m. to be out by 6 in the morning.

10:44.160 --> 10:46.640
So, first of all, they're not even giving you eight hours of sleep,

10:46.700 --> 10:48.240
which I think is a pretty crappy sleep study.

10:49.080 --> 10:51.220
Second of all, it takes me a while to fall asleep.

10:51.300 --> 10:52.200
That's why I'm there.

10:52.380 --> 10:56.080
So I'm in there and laying down, finally drift off to sleep after, I don't know,

10:56.120 --> 10:58.540
a half hour to an hour, which is a really good night for me.

10:59.980 --> 11:02.340
And, well, and now let me describe the room.

11:02.580 --> 11:06.780
The room itself was basically a very simple hotel, queen-size bed.

11:06.780 --> 11:09.480
It had a chair and, like, dressers and drawers and shit.

11:09.560 --> 11:13.140
I don't know what the hell people do in these things for one night to sleep study.

11:13.140 --> 11:22.180
I probably don't want to know, but basically there is a bed in the center of the room or whatever,

11:22.620 --> 11:28.340
and directly across from the bed, as you're laying there and looking at the ceiling opposite of your head,

11:28.400 --> 11:31.260
where your head's laying, there is one of those dome cameras.

11:32.420 --> 11:36.500
So it's already kind of, like, really pervy feeling, like I'm being watched at night while I'm asleep.

11:36.560 --> 11:40.320
I was scared to scratch my sack overnight because I didn't know if it was on film.

11:40.320 --> 11:46.180
And it's going to, you know, I'm going to wake up and find myself on YouTube with my ball sack glued to my leg or something like that.

11:46.920 --> 11:48.540
So that was already creepy.

11:48.640 --> 11:53.040
And they've got a microphone in case you snore or make any noise or talk during your sleep so they can record all that.

11:53.400 --> 11:54.740
That's already really creepy.

11:55.620 --> 12:01.200
Now, again, I'm under that, I did ask, and I'm, you know, typical privacy policies apply here.

12:01.260 --> 12:02.280
This is a medical procedure.

12:02.420 --> 12:06.840
So I was assured that that was safe and it wasn't going to end up on YouTube, but you never know.

12:06.840 --> 12:10.660
So I'm sure some of the funny ones, it's hard to not post them out somewhere.

12:12.040 --> 12:14.860
Anyway, go to sleep for what I would guess.

12:14.960 --> 12:15.980
They don't give you any clocks.

12:16.240 --> 12:18.940
You're not allowed to have a cell phone, anything like that, no interaction.

12:19.260 --> 12:21.280
Once they shut the door, you're in there and that's it.

12:21.820 --> 12:27.040
So I'm in there for probably what I'm guessing is a half hour to an hour to fall asleep.

12:27.160 --> 12:30.880
I'm guessing I slept for maybe two to three hours, two to two and a half hours.

12:30.880 --> 12:37.640
And then the other thing in the room is right behind the bed, right behind your head where you're sleeping, is a speaker.

12:37.940 --> 12:40.040
Where they're monitoring from the other room, they communicate with you.

12:40.080 --> 12:46.320
So I'm in there, dead asleep, and all of a sudden, this booming voice comes on and says,

12:47.020 --> 12:54.600
well, like, my name, excuse me, Mr. Dog, we need you to roll over onto your back so that we can get a clear reading while you sleep.

12:54.600 --> 12:57.080
Because I guess I had rolled over onto my side.

12:58.040 --> 13:00.720
But it comes at, like, super high volume, booming.

13:00.880 --> 13:04.020
I thought God himself was talking to me or something.

13:04.760 --> 13:05.780
Completely startled me.

13:05.840 --> 13:08.500
I jump out of bed, like, swinging to kick somebody's ass.

13:08.560 --> 13:10.000
I didn't know what the hell was going on.

13:10.580 --> 13:12.180
So that was not cool at all.

13:12.900 --> 13:13.580
And then...

13:13.580 --> 13:16.020
Like that movie, True Genius or whatever, right?

13:16.160 --> 13:17.000
With Val Kilmer.

13:17.420 --> 13:18.740
Real genius, Val Kilmer.

13:18.740 --> 13:23.120
Yeah, you remember that one where they do that implant in the filling?

13:23.380 --> 13:24.040
Yeah, exactly.

13:24.040 --> 13:25.160
And if anybody...

13:25.160 --> 13:25.720
And if anybody...

13:25.720 --> 13:26.440
That's a...

13:26.440 --> 13:27.200
If no one's...

13:27.200 --> 13:28.540
Stop touching yourself.

13:29.280 --> 13:30.600
Or I'll put it on YouTube.

13:33.160 --> 13:34.580
And actually, that's a great movie.

13:34.680 --> 13:39.540
If anybody listening, as far as hacker movies go, it's not so much computer hacking exactly,

13:39.800 --> 13:45.300
but it's very scientific, and the people in there have a lot in common with hackers, believe it or not,

13:45.300 --> 13:47.940
even though it's more science, laser-based storyline.

13:48.080 --> 13:48.980
But anyway, I digress.

13:49.620 --> 13:52.340
So I will shorten up, though, simplify the story.

13:52.980 --> 13:54.300
Wakes me up out of a dead sleep.

13:54.700 --> 13:56.800
I'm completely wide awake because of that.

13:56.840 --> 13:57.960
I don't know if that's part of the test.

13:58.020 --> 14:01.740
Maybe they're supposed to see how I react if they wake me up in the middle of the night.

14:01.800 --> 14:02.320
I don't know.

14:02.440 --> 14:06.320
But I couldn't go back to sleep after that.

14:06.400 --> 14:07.220
I'm laying there in bed.

14:07.300 --> 14:07.980
I'm rolling around.

14:08.060 --> 14:09.420
I'm trying to figure out what the hell's going on.

14:09.420 --> 14:10.500
I can't fall back asleep.

14:10.600 --> 14:11.560
I'm thinking about code.

14:11.560 --> 14:15.140
I'm thinking about the problem I had with some PHP I was working on the night before.

14:15.260 --> 14:18.820
I'm thinking about some SQL code I've got to write Monday when I get back to work.

14:18.900 --> 14:19.680
I've got all this stuff.

14:19.840 --> 14:25.700
I must have been up for probably two or three hours after that trying to fall asleep and not able to,

14:25.780 --> 14:28.240
and I was pissed off that the guy woke me up in the first place.

14:28.920 --> 14:32.220
So, all in all, I'm saying that it really, really sucked.

14:32.300 --> 14:35.040
I guess that's the short answer to the whole story.

14:35.260 --> 14:36.540
I was not happy with it.

14:36.580 --> 14:38.200
It was not as clinical as I had thought.

14:38.260 --> 14:44.000
It was just downright creepy, and I will not get the results to see if there's anything wrong with me,

14:44.040 --> 14:45.320
at least sleeping-wise, that is.

14:45.460 --> 14:50.300
We all know that there's a lot more wrong with me than that, until sometime in the end of the month.

14:50.300 --> 14:54.880
So, maybe I'll keep people up to date and find out if there's anything wrong with me

14:54.880 --> 14:57.600
and if hacker's insomnia is, in fact, curable.

14:59.780 --> 15:00.800
So, there.

15:00.900 --> 15:01.620
There's some housekeeping.

15:01.880 --> 15:04.600
We haven't done show-and-tell or story time in a long time.

15:04.600 --> 15:08.880
So, I guess that is enough to start this show off,

15:09.040 --> 15:11.500
and we have a short email section this time,

15:11.580 --> 15:13.860
so we have plenty of time to talk about our main topic.

15:14.560 --> 15:18.420
So, stick with us for a few minutes, and let's do some email.

15:34.600 --> 15:45.920
And our first email this week is actually, this is kind of a message to pass on from our good friend Mubix,

15:45.980 --> 15:47.860
who's been on the episode of the show before.

15:47.980 --> 15:51.320
Mubix was on the USB key.

15:51.540 --> 15:56.320
We talked about a lot of cool tools and might be doing some more episodes on that topic in the future,

15:56.420 --> 15:57.940
as we'll find out a little bit later here.

15:57.940 --> 16:04.500
But, he sends an email because we want to remind all the listeners that coming up on the 23rd of March,

16:05.260 --> 16:08.740
ShmooCon is going to be going on up in Washington, D.C.

16:08.740 --> 16:12.060
So, the 23rd of March, after all the talks are done,

16:12.560 --> 16:18.420
there's going to be a meet-up at the Chipotle that's right around the corner from the hotel where ShmooCon is being held.

16:18.540 --> 16:22.480
It's going to be 9 p.m. after all the talks, March 23rd at Chipotle.

16:23.700 --> 16:25.720
How's this for irony? How's this for an address?

16:26.640 --> 16:31.820
2600 Connecticut Avenue, Washington, D.C., 20008.

16:31.820 --> 16:36.740
I don't think you could have made that up that it's 2600 Connecticut Avenue.

16:36.840 --> 16:37.700
That worked out pretty good.

16:39.460 --> 16:39.820
Definitely.

16:40.360 --> 16:43.940
So, he's looking for artists that can make some flyers to hand out at the conference

16:43.940 --> 16:45.940
to let everybody know where it's at.

16:46.000 --> 16:47.820
So, if people want to drift over from the conference,

16:48.360 --> 16:50.580
have everybody's logos on it, stuff like that.

16:50.660 --> 16:52.880
So, if anybody wants to contact him about that,

16:52.880 --> 16:57.340
his email address is jd, as in John Doe,

16:57.420 --> 17:03.320
jd.mubix at gmail.com.

17:03.720 --> 17:06.220
And he says the winning submission will get a t-shirt from all the shows

17:06.220 --> 17:08.260
and signed version of the flyer.

17:08.720 --> 17:10.640
Don't worry, he will buy the shirts.

17:10.780 --> 17:11.220
All right.

17:11.780 --> 17:13.060
And, not only is he buying shirts,

17:13.120 --> 17:16.300
he says he's going to be having free beer and food.

17:16.440 --> 17:18.040
By the way, you got your beer handy right there, right?

17:18.920 --> 17:20.040
Oh, I got my beer.

17:20.120 --> 17:21.920
By the way, do you have your sweet tea?

17:21.920 --> 17:23.480
Oh, I do have my sweet tea.

17:23.560 --> 17:24.800
See, you and Logos X.

17:24.820 --> 17:25.060
Yeah, yeah.

17:25.200 --> 17:27.260
Oh, I forgot to mention that at the beginning.

17:27.620 --> 17:27.960
The, uh...

17:27.960 --> 17:28.300
Uh-oh.

17:28.480 --> 17:29.760
You've got your sweet tea,

17:30.080 --> 17:31.460
but I've generally got my Guinness.

17:31.500 --> 17:33.700
I substituted it tonight for a nice Stella.

17:34.260 --> 17:37.520
You know, I figured an icy pint of Stella will do me good.

17:37.800 --> 17:39.220
Well, you and Logos X,

17:39.300 --> 17:41.980
we have to get you both liquored up to get you to do the show.

17:43.620 --> 17:45.400
Yeah, it's like you can't talk me into it

17:45.400 --> 17:47.080
until I've had at least, like, a couple beers.

17:47.380 --> 17:48.480
Exactly, exactly.

17:48.580 --> 17:50.800
So, if the show degrades after about an hour

17:50.800 --> 17:52.480
and you start slurring, you know why.

17:54.360 --> 17:54.980
So, yeah.

17:55.080 --> 17:56.400
So, anyway, free beer and food

17:56.400 --> 17:57.760
for everybody in the community,

17:57.960 --> 18:00.140
podcasters, vidcasters, and stuff like that.

18:01.020 --> 18:01.860
And there's going to,

18:01.880 --> 18:03.760
he said there will be a beer tab for our listeners,

18:03.900 --> 18:05.540
but it's probably going to go really, really quickly.

18:06.420 --> 18:08.660
Simple Nomad's actually going to be there

18:08.660 --> 18:09.380
as a guest of honor,

18:09.440 --> 18:10.480
so that's very cool, too.

18:10.480 --> 18:13.800
So, go, again, this is after the talks,

18:13.880 --> 18:15.700
9 o'clock, March 23rd at Chipotle,

18:15.840 --> 18:17.640
2600 Connecticut Avenue,

18:17.740 --> 18:18.840
just around from the hotel.

18:19.380 --> 18:20.220
So, go check it out.

18:20.280 --> 18:22.340
Meet up with a bunch of the podcasters,

18:22.460 --> 18:24.540
vidcasters, radio show hosts,

18:24.620 --> 18:25.940
because I don't like the word podcaster.

18:26.660 --> 18:28.360
Radio show hosts, etc., etc.

18:28.500 --> 18:30.100
I, unfortunately, am not going to be able

18:30.100 --> 18:30.880
to make it there.

18:30.980 --> 18:33.540
I wanted to, but it just didn't work out timing

18:33.540 --> 18:34.700
for me at work, unfortunately.

18:34.940 --> 18:37.220
So, I'm not going to be there,

18:37.220 --> 18:38.800
but I know the guys from Hack 5

18:38.800 --> 18:39.980
are definitely going to be there.

18:40.140 --> 18:41.800
I think, actually,

18:41.880 --> 18:43.160
I'm not going to even drop any more names,

18:43.240 --> 18:44.260
because I'm not sure who's committed

18:44.260 --> 18:45.900
and not committed to going yet.

18:46.240 --> 18:48.500
So, check out,

18:50.100 --> 18:51.500
well, actually, there's no website,

18:51.620 --> 18:53.220
so I guess you can email Mubix

18:53.860 --> 18:55.360
at the email address I mentioned earlier

18:55.360 --> 18:56.620
if you want any more information

18:56.620 --> 19:00.340
or want to get any more details on the meetup.

19:01.240 --> 19:02.540
So, if you're in the area

19:02.540 --> 19:03.360
or going to ShmooCon,

19:03.440 --> 19:04.460
or even if you're not going to ShmooCon,

19:04.520 --> 19:05.040
let me clarify,

19:05.560 --> 19:06.540
you don't have to have tickets.

19:06.540 --> 19:07.940
This is outside of ShmooCon.

19:08.040 --> 19:08.480
This is away.

19:08.580 --> 19:09.980
So, even if you live in the area

19:09.980 --> 19:11.940
and weren't able to get tickets

19:11.940 --> 19:13.160
or don't want to go to ShmooCon,

19:13.240 --> 19:13.920
didn't want to go,

19:14.260 --> 19:16.820
you can still meet up afterwards at this.

19:16.900 --> 19:18.980
This is completely irrelevant of ShmooCon,

19:19.140 --> 19:20.620
the way it ended up working out.

19:21.260 --> 19:22.400
So, I don't know if that's better.

19:22.480 --> 19:23.380
That probably is better.

19:23.500 --> 19:24.000
So, whatever.

19:25.320 --> 19:28.960
So, our next email comes from Lex.

19:30.060 --> 19:30.920
Lex says,

19:30.920 --> 19:33.960
when you talked about the hacker's USB toolkit in 188,

19:34.040 --> 19:35.880
again, that's Mubix's episode,

19:35.880 --> 19:37.380
I was pretty surprised

19:37.380 --> 19:38.580
that I didn't hear anything

19:38.580 --> 19:40.740
about what I think is the most powerful tool

19:40.740 --> 19:42.420
I have on my USB drive,

19:42.740 --> 19:44.880
a fully bootable Linux system.

19:45.600 --> 19:46.280
I run...

19:46.280 --> 19:47.300
Yeah, that was one thing

19:47.300 --> 19:48.640
that I was going to bring up.

19:48.860 --> 19:50.860
You know, I heard that on the show last week,

19:51.320 --> 19:53.400
and he was talking about all the tools,

19:53.540 --> 19:54.480
but I was going to say, you know,

19:54.540 --> 19:56.160
most of the more recent computers

19:56.160 --> 19:58.220
can boot up straight from USB.

19:58.500 --> 20:00.640
So, I mean, a Linux system is pretty handy.

20:00.640 --> 20:01.940
Right, right.

20:02.000 --> 20:02.380
And, of course,

20:02.540 --> 20:04.180
we won't go into the security vulnerability

20:04.180 --> 20:05.420
of booting from a USB,

20:05.740 --> 20:07.700
and allowing your computer to boot from that,

20:07.760 --> 20:08.140
but yeah.

20:08.800 --> 20:09.440
And, you know,

20:09.520 --> 20:09.960
and actually,

20:10.080 --> 20:11.260
let me finish reading this,

20:11.320 --> 20:12.320
and then we'll address it.

20:12.680 --> 20:13.240
He says,

20:13.300 --> 20:14.300
I run Puppy Linux,

20:14.720 --> 20:16.760
and that's puppylinux.org,

20:17.000 --> 20:17.720
all one word,

20:18.140 --> 20:20.320
on my 128 meg flash drive.

20:20.380 --> 20:21.380
It's specifically designed

20:21.380 --> 20:22.440
for this kind of situation,

20:22.500 --> 20:23.800
or for similar cramped conditions,

20:24.300 --> 20:26.040
such as a small sliver of a hard drive

20:26.040 --> 20:26.720
or a live CD.

20:27.160 --> 20:28.920
What's pretty neat about Puppy and others

20:28.920 --> 20:31.540
is that it saves all the changes I make

20:31.540 --> 20:33.060
to any part of the file system

20:33.060 --> 20:34.120
using UnionFS.

20:34.780 --> 20:36.640
For a USB stick,

20:36.720 --> 20:37.880
it dumps the changed files

20:37.880 --> 20:40.820
to a little ext3FS in a file.

20:41.680 --> 20:43.280
For multi-session CD mode,

20:43.760 --> 20:45.080
it actually burns a new session

20:45.080 --> 20:47.500
with the ext3FS onto the CD,

20:48.040 --> 20:48.980
and at next boot,

20:49.040 --> 20:50.940
the most recent session is loaded up.

20:51.060 --> 20:51.560
Pretty neat.

20:52.240 --> 20:53.640
So now I carry around in my pocket

20:53.640 --> 20:55.560
a little Linux distro

20:55.560 --> 20:56.500
with all the hacking tools

20:56.500 --> 20:57.540
I could possibly need

20:57.540 --> 20:59.360
with a nice graphical X-session,

20:59.560 --> 20:59.900
Firefox,

21:00.600 --> 21:01.240
media players,

21:01.360 --> 21:02.680
and lots of system diagnostic

21:02.680 --> 21:03.800
and repair tools.

21:04.200 --> 21:05.160
If I need a new tool,

21:05.240 --> 21:06.740
I just download it and install it,

21:06.800 --> 21:08.220
and it'll be there next time I boot.

21:08.760 --> 21:10.180
Any computer that'll let me boot

21:10.180 --> 21:11.140
a USB drive,

21:11.200 --> 21:12.200
and that's most of them now,

21:12.340 --> 21:14.060
as Mia Flux just referred to,

21:14.560 --> 21:16.520
can be an instant Linux box.

21:17.240 --> 21:18.020
Your show inspired me

21:18.020 --> 21:19.000
to get back under the hood

21:19.000 --> 21:20.020
of my Puppy system.

21:20.120 --> 21:22.100
Now the saved EXT3 file system

21:22.100 --> 21:23.440
on my USB stick is written

21:23.440 --> 21:25.580
using the Crypto Loopback driver,

21:26.000 --> 21:27.020
so a password is required

21:27.020 --> 21:28.260
to boot into my keychain

21:28.260 --> 21:29.540
and get at my files.

21:29.660 --> 21:30.480
TrueCrypt is great,

21:30.860 --> 21:32.100
but this is even more powerful

21:32.100 --> 21:34.020
because it requires no thought,

21:34.380 --> 21:36.780
and my files are always protected.

21:37.500 --> 21:38.700
From Lex,

21:38.960 --> 21:41.660
pronunciation L-E-X.

21:42.520 --> 21:42.860
Now see,

21:42.980 --> 21:43.660
it's always the guys

21:43.660 --> 21:44.660
with the easy handles

21:44.660 --> 21:46.220
that give me a pronunciation key.

21:46.320 --> 21:47.020
Like I'm sitting here

21:47.020 --> 21:47.640
stumbling going,

21:47.640 --> 21:50.500
is it Lex or is it Leeks

21:50.500 --> 21:53.380
or Lexa?

21:54.200 --> 21:55.960
I can handle Lex,

21:56.060 --> 21:56.920
but for those of you

21:56.920 --> 21:59.520
with a little bit more complex handles,

21:59.800 --> 22:01.220
send me a pronunciation key.

22:01.320 --> 22:01.680
But Lex,

22:01.740 --> 22:02.420
I got that one.

22:03.360 --> 22:03.560
Yeah,

22:03.620 --> 22:04.740
I'm always confused

22:04.740 --> 22:05.200
at the people

22:05.200 --> 22:06.380
who like look at my name

22:06.380 --> 22:07.400
and interpret it

22:07.400 --> 22:08.280
as something different

22:08.280 --> 22:09.040
because I figure,

22:09.220 --> 22:09.420
you know,

22:10.000 --> 22:11.360
M-E-A-F-L-U-X

22:11.360 --> 22:12.180
could only be read

22:12.180 --> 22:13.040
so many ways,

22:13.500 --> 22:13.720
you know,

22:13.780 --> 22:14.540
but it's amazing

22:14.540 --> 22:15.140
how many people

22:15.140 --> 22:15.820
will confuse

22:15.820 --> 22:16.840
like the F for a T

22:16.840 --> 22:17.340
and be like,

22:17.440 --> 22:17.580
oh,

22:17.640 --> 22:18.520
meatlox for

22:18.520 --> 22:20.980
less unappropriate things.

22:22.040 --> 22:22.840
And I'm like,

22:22.960 --> 22:23.500
uh,

22:23.820 --> 22:24.500
no.

22:25.400 --> 22:26.640
I was trying to keep

22:26.640 --> 22:27.780
the show clean this week,

22:27.860 --> 22:28.940
but I failed miserably.

22:29.620 --> 22:29.880
Yeah,

22:29.940 --> 22:30.380
exactly,

22:30.580 --> 22:30.760
yeah.

22:31.180 --> 22:32.960
I think it's the UX

22:32.960 --> 22:33.620
and the whole,

22:33.700 --> 22:33.980
you know,

22:33.980 --> 22:34.300
Yeah,

22:34.400 --> 22:34.580
exactly.

22:35.280 --> 22:35.720
But honestly,

22:35.880 --> 22:37.440
I never even thought really

22:37.440 --> 22:38.520
of joking around

22:38.520 --> 22:39.100
with your handle

22:39.100 --> 22:40.300
until you brought it up.

22:40.360 --> 22:41.040
You're the one that said

22:41.040 --> 22:42.340
people call you meatflux

22:42.340 --> 22:44.020
and we started calling you

22:44.020 --> 22:45.180
anyway.

22:45.820 --> 22:47.140
that was IRC,

22:47.360 --> 22:47.480
exactly.

22:47.480 --> 22:47.740
Right,

22:47.840 --> 22:48.560
that's joking around.

22:48.580 --> 22:48.880
I mean,

22:48.960 --> 22:49.180
you know,

22:49.480 --> 22:50.820
an IRC anything goes.

22:51.000 --> 22:51.840
You got such,

22:51.940 --> 22:52.220
you know,

22:52.280 --> 22:53.020
knobs out there

22:53.020 --> 22:53.640
that they just,

22:53.820 --> 22:54.060
you know,

22:54.120 --> 22:54.520
sort of,

22:54.520 --> 22:54.860
uh,

22:55.000 --> 22:57.180
get themselves in.

22:57.440 --> 22:57.780
But, uh,

22:57.880 --> 22:58.500
meat knob.

22:58.500 --> 22:58.640
Yeah,

22:58.720 --> 22:58.920
yeah,

22:59.020 --> 23:00.180
I've always been amazed.

23:00.440 --> 23:00.860
The whole,

23:00.900 --> 23:01.100
uh,

23:01.100 --> 23:02.100
Dr. Zygman thing

23:02.100 --> 23:02.720
with the carrot,

23:02.820 --> 23:04.100
I wanted to pronounce that,

23:04.200 --> 23:04.420
you know.

23:04.520 --> 23:04.840
Yeah,

23:04.920 --> 23:05.440
carrot Zygman.

23:05.500 --> 23:06.380
I did do that with him

23:06.380 --> 23:06.780
all the time,

23:06.840 --> 23:07.240
joking around.

23:07.280 --> 23:07.640
I think I'm going

23:07.640 --> 23:08.300
to change my handle

23:08.300 --> 23:09.320
now to meat knob.

23:09.520 --> 23:10.520
Meat underscore knob,

23:10.640 --> 23:10.920
just to,

23:11.340 --> 23:13.360
because I like the sound of it.

23:13.360 --> 23:14.280
Yeah,

23:14.420 --> 23:14.540
I,

23:14.540 --> 23:14.860
um,

23:15.040 --> 23:16.040
I was thinking,

23:16.180 --> 23:16.380
you know,

23:16.460 --> 23:17.640
I'm just waiting for somebody

23:17.640 --> 23:18.320
to have a handle

23:18.320 --> 23:18.780
with like,

23:18.820 --> 23:19.080
you know,

23:19.420 --> 23:20.920
an exclamation point

23:20.920 --> 23:21.560
in front of it

23:21.560 --> 23:22.040
and be like,

23:22.060 --> 23:22.280
you know,

23:22.520 --> 23:23.320
bang Bob,

23:23.440 --> 23:23.660
like,

23:23.740 --> 23:23.980
you know,

23:24.020 --> 23:25.540
like a exclamation,

23:25.780 --> 23:27.320
exclamation point Bob,

23:27.480 --> 23:27.720
you know,

23:27.720 --> 23:28.600
or something like that.

23:28.600 --> 23:30.360
You gotta have one of those ones

23:30.360 --> 23:30.880
where like,

23:30.960 --> 23:31.940
it'll be humorous

23:31.940 --> 23:33.020
for people to understand

23:33.020 --> 23:34.640
what the actual characters mean,

23:35.060 --> 23:35.740
but a lot of people

23:35.740 --> 23:36.740
just seem to think like,

23:36.820 --> 23:37.440
you're more elite,

23:37.540 --> 23:38.280
the more numbers

23:38.280 --> 23:38.660
and like,

23:38.740 --> 23:39.460
special characters

23:39.460 --> 23:40.280
you throw in there.

23:40.680 --> 23:41.180
Could I get,

23:41.300 --> 23:42.360
would I get sued for copyright

23:42.360 --> 23:44.340
if I made exclamation bus?

23:44.420 --> 23:45.040
Would they sue me

23:45.040 --> 23:45.740
from bang bus?

23:46.840 --> 23:47.240
Probably.

23:47.740 --> 23:48.460
That's probably

23:48.460 --> 23:49.200
a pretty good handle.

23:49.340 --> 23:49.720
You just have

23:49.720 --> 23:50.980
exclamation point bus.

23:51.220 --> 23:51.780
I wonder if you,

23:51.780 --> 23:52.680
not to know that people,

23:52.800 --> 23:53.180
you know,

23:53.380 --> 23:53.760
uh,

23:54.380 --> 23:55.620
That's actually

23:55.620 --> 23:56.500
an interesting question.

23:56.500 --> 23:57.840
That's actually

23:57.840 --> 23:58.500
just kind of a,

23:58.540 --> 23:59.240
joking aside,

23:59.320 --> 23:59.960
that is kind of

23:59.960 --> 24:00.700
an interesting question

24:00.700 --> 24:01.180
because,

24:02.000 --> 24:02.820
what if you did take

24:02.820 --> 24:03.980
an elitized version

24:03.980 --> 24:05.280
of a company name

24:05.280 --> 24:05.620
or a,

24:06.000 --> 24:06.760
something like that?

24:06.800 --> 24:07.660
I wonder how legal

24:07.660 --> 24:08.160
that would,

24:09.360 --> 24:10.400
legally that would work

24:10.400 --> 24:10.620
as well.

24:10.620 --> 24:11.500
As long as their lawyers

24:11.500 --> 24:12.020
have money,

24:12.180 --> 24:12.820
you're screwed.

24:13.020 --> 24:13.480
Well, yeah,

24:13.560 --> 24:14.300
you're always gonna get

24:14.300 --> 24:15.460
buried in the money,

24:15.620 --> 24:15.820
but,

24:16.480 --> 24:17.240
on principle,

24:17.380 --> 24:18.700
I'm curious how that might be.

24:19.580 --> 24:19.800
I mean,

24:19.840 --> 24:20.480
there's fair use

24:20.480 --> 24:21.520
and parity protection

24:21.520 --> 24:22.520
and stuff like that,

24:22.580 --> 24:23.520
but I wonder if I,

24:24.760 --> 24:25.100
eh,

24:25.260 --> 24:25.860
I don't know.

24:26.020 --> 24:26.280
Anyway,

24:26.500 --> 24:28.160
just popped into my head.

24:28.180 --> 24:28.740
I was gonna say

24:28.740 --> 24:29.020
about,

24:29.140 --> 24:29.220
like,

24:29.300 --> 24:29.480
the,

24:29.480 --> 24:30.860
the Linux distros,

24:31.300 --> 24:32.320
I know I've played around

24:32.320 --> 24:33.860
with DSL and stuff like that.

24:34.180 --> 24:34.300
Um,

24:34.520 --> 24:36.140
I haven't gone too far

24:36.140 --> 24:36.940
down the rabbit hole

24:36.940 --> 24:37.240
for,

24:37.240 --> 24:37.600
uh,

24:38.660 --> 24:39.020
booting,

24:39.140 --> 24:39.440
uh,

24:39.720 --> 24:40.920
booting different OS's

24:40.920 --> 24:41.680
from USB,

24:41.900 --> 24:43.400
but it's been pretty handy.

24:43.500 --> 24:44.380
I've had a couple of friends

24:44.380 --> 24:45.460
who are technicians too

24:45.460 --> 24:46.220
and they've just run,

24:46.220 --> 24:46.460
like,

24:46.500 --> 24:46.720
uh,

24:47.160 --> 24:47.800
virus scanning

24:47.800 --> 24:49.040
and AdWare scanning tools

24:49.040 --> 24:50.340
from Linux on there

24:50.340 --> 24:51.460
and that way,

24:51.540 --> 24:51.700
you know,

24:51.740 --> 24:51.920
like,

24:52.000 --> 24:52.180
uh,

24:52.180 --> 24:53.400
if there's any issues,

24:53.960 --> 24:54.280
I mean,

24:54.300 --> 24:54.460
like,

24:54.460 --> 24:55.520
I had a problem

24:55.520 --> 24:56.480
on my uncle's computer,

24:56.580 --> 24:57.760
I remember a few months back,

24:57.820 --> 24:59.500
where he,

24:59.560 --> 24:59.780
uh,

24:59.780 --> 25:01.380
he specifically couldn't delete

25:01.380 --> 25:02.580
a couple of different files

25:02.580 --> 25:03.520
and he's,

25:03.520 --> 25:04.380
he's fairly proficient.

25:04.500 --> 25:05.100
He's an engineer.

25:05.240 --> 25:05.460
He's,

25:05.620 --> 25:07.240
he's the guy who probably got me

25:07.240 --> 25:08.200
into computer programming,

25:08.200 --> 25:09.080
um,

25:09.080 --> 25:09.760
and,

25:09.840 --> 25:10.140
uh,

25:10.600 --> 25:11.500
he could not delete

25:11.500 --> 25:12.500
these specific files

25:12.500 --> 25:13.200
from his system

25:13.200 --> 25:14.620
and they were being loaded

25:14.620 --> 25:15.320
every single time

25:15.320 --> 25:16.020
the computer loaded.

25:16.120 --> 25:16.260
Now,

25:16.360 --> 25:16.720
we could,

25:16.920 --> 25:17.380
like,

25:17.560 --> 25:17.800
you know,

25:17.840 --> 25:19.660
edit the registry keys

25:19.660 --> 25:20.600
and stuff like that,

25:20.660 --> 25:21.760
but we couldn't,

25:21.840 --> 25:22.740
even from DOS,

25:22.880 --> 25:23.100
well,

25:23.180 --> 25:23.900
DOS didn't have,

25:23.960 --> 25:24.180
you know,

25:24.220 --> 25:24.760
NTFS,

25:24.840 --> 25:26.320
but I went into NTFS DOS,

25:26.740 --> 25:28.320
NTFS DOS still wouldn't let us,

25:28.380 --> 25:28.660
you know,

25:28.700 --> 25:28.980
um,

25:29.060 --> 25:29.780
delete the files,

25:29.880 --> 25:31.420
so I pretty much ended up

25:31.420 --> 25:32.020
having to use,

25:32.160 --> 25:32.220
like,

25:32.240 --> 25:33.580
a Linux live boot CD

25:33.580 --> 25:34.880
to go through

25:34.880 --> 25:36.680
and delete the files

25:36.680 --> 25:37.660
so that it wouldn't

25:37.660 --> 25:38.620
reinfect the machine

25:38.620 --> 25:39.120
and then,

25:39.360 --> 25:39.820
you know,

25:39.860 --> 25:41.160
remove the registry keys.

25:41.360 --> 25:41.640
Right.

25:41.780 --> 25:42.600
And at that point,

25:42.700 --> 25:42.980
you know,

25:43.760 --> 25:44.760
times like that,

25:44.800 --> 25:45.040
you know,

25:45.040 --> 25:45.760
it makes sense

25:45.760 --> 25:47.240
that a lot of,

25:47.240 --> 25:47.640
uh,

25:47.820 --> 25:48.340
technicians,

25:48.620 --> 25:48.780
you know,

25:48.820 --> 25:50.120
a lot of computer repair people

25:50.120 --> 25:51.920
are even switching to Linux

25:51.920 --> 25:53.340
for the diagnostics

25:53.340 --> 25:54.320
and recovery tools,

25:54.460 --> 25:54.640
you know.

25:54.640 --> 25:54.940
Certainly.

25:55.560 --> 25:56.660
And that's why they rose

25:56.660 --> 25:57.660
in popularity so much,

25:57.720 --> 25:58.040
but again,

25:58.120 --> 25:58.320
you just,

25:58.360 --> 25:58.720
like you said,

25:58.880 --> 26:00.060
and that's what I was going to say

26:00.060 --> 26:01.120
is I still just boot

26:01.120 --> 26:02.800
from a Linux bootable CD,

26:03.060 --> 26:03.240
you know,

26:03.240 --> 26:04.660
I still haven't bothered

26:04.660 --> 26:06.020
to really investigate

26:06.020 --> 26:06.860
or look into

26:06.860 --> 26:08.680
a bootable USB key.

26:08.940 --> 26:09.960
I know that a CD

26:09.960 --> 26:10.520
is going to work

26:10.520 --> 26:11.300
no matter how old

26:11.300 --> 26:11.940
the hardware is

26:11.940 --> 26:12.960
or how old the system is.

26:13.220 --> 26:13.720
If I can boot

26:13.720 --> 26:14.700
from the CD-ROM drive,

26:14.800 --> 26:15.900
I've got everything there

26:15.900 --> 26:17.040
and I've got more storage space

26:17.040 --> 26:17.700
on the CD,

26:18.360 --> 26:18.580
well,

26:18.680 --> 26:18.880
you know,

26:18.980 --> 26:20.480
unless you've got a 1 gig plus

26:20.480 --> 26:20.640
or,

26:20.840 --> 26:21.220
you know,

26:21.240 --> 26:22.340
more than 660,

26:22.440 --> 26:23.340
700 megs.

26:24.080 --> 26:24.280
Yeah,

26:24.320 --> 26:24.640
exactly.

26:24.760 --> 26:24.900
Well,

26:24.960 --> 26:25.820
we're not like,

26:25.860 --> 26:26.120
you know,

26:26.180 --> 26:26.780
all the noobs,

26:26.880 --> 26:27.660
we're like old school,

26:27.800 --> 26:27.980
you know,

26:28.020 --> 26:28.960
like I used to carry it.

26:29.160 --> 26:30.020
I remember when I used

26:30.020 --> 26:30.880
to repair computers,

26:30.980 --> 26:31.740
I would carry around,

26:31.820 --> 26:32.060
you know,

26:32.100 --> 26:32.320
like,

26:32.320 --> 26:34.100
essentially a freaking,

26:34.300 --> 26:34.660
you know,

26:34.800 --> 26:37.080
briefcase full of CDs,

26:37.380 --> 26:37.720
you know.

26:37.940 --> 26:38.200
See,

26:38.300 --> 26:38.780
I'm even...

26:38.780 --> 26:39.460
Those utilities,

26:39.620 --> 26:40.380
you can just toss them

26:40.380 --> 26:41.480
onto a USB drive

26:41.480 --> 26:41.780
and like,

26:41.840 --> 26:42.020
boom,

26:42.080 --> 26:42.480
you're done.

26:42.640 --> 26:42.940
No,

26:43.040 --> 26:43.200
see,

26:43.300 --> 26:44.480
you're not old school.

26:44.600 --> 26:45.080
Old school,

26:45.220 --> 26:45.900
I walked around

26:45.900 --> 26:47.120
with a little carrying case

26:47.120 --> 26:48.820
of like 15 floppy disks.

26:48.820 --> 26:50.600
Is that what you're going to say?

26:50.760 --> 26:51.480
And actually,

26:51.600 --> 26:52.560
I did have computers

26:52.560 --> 26:53.560
that used cassettes

26:53.560 --> 26:54.900
to store data on as well,

26:55.080 --> 26:55.780
but no,

26:55.880 --> 26:56.220
actually,

26:56.480 --> 26:58.020
but I was talking more along

26:58.020 --> 26:59.460
the having a diskette

26:59.460 --> 27:00.280
that was like an old,

27:00.360 --> 27:00.640
remember,

27:00.780 --> 27:02.000
back in the old gaming days,

27:02.000 --> 27:02.680
you used to have to carry

27:02.680 --> 27:03.960
a boot disk with you

27:03.960 --> 27:05.720
so you could run memory managers

27:05.720 --> 27:06.160
and whatnot.

27:06.340 --> 27:07.820
So I always had a memory manager disk

27:07.820 --> 27:08.900
for any purposes.

27:09.320 --> 27:11.040
It's back in the old Windows 3 days.

27:12.820 --> 27:13.820
A virus scanner,

27:14.220 --> 27:15.380
some utility tools,

27:15.540 --> 27:16.140
DOS shells,

27:16.280 --> 27:17.000
stuff like that.

27:17.660 --> 27:17.900
So,

27:18.500 --> 27:19.200
diskettes, baby.

27:19.200 --> 27:21.500
And the 5.25 inch floppies

27:21.500 --> 27:23.300
where you had like 14 disks

27:23.300 --> 27:23.880
for a game

27:23.880 --> 27:24.780
and it always told you,

27:24.860 --> 27:25.020
you know,

27:25.340 --> 27:26.840
insert disk 7 of 15.

27:27.080 --> 27:27.360
Yeah,

27:27.480 --> 27:28.140
that was the days,

27:28.240 --> 27:28.360
boy,

27:28.420 --> 27:29.460
that was hard.

27:29.460 --> 27:29.800
I remember that.

27:29.900 --> 27:30.120
Actually,

27:30.200 --> 27:31.340
that was a little bit more old school.

27:31.400 --> 27:33.080
I'm going to try not to date myself anymore

27:33.080 --> 27:34.620
as I'm about to turn 25,

27:34.860 --> 27:35.040
so.

27:35.300 --> 27:35.620
Oh,

27:35.680 --> 27:36.000
man,

27:36.220 --> 27:37.040
I don't even remember

27:37.040 --> 27:37.720
when I was 25.

27:38.580 --> 27:38.900
Anyway,

27:39.240 --> 27:39.540
all right,

27:39.600 --> 27:40.040
so let's,

27:40.280 --> 27:41.200
let's see,

27:41.240 --> 27:41.600
where were we?

27:41.660 --> 27:41.840
Oh,

27:42.200 --> 27:42.640
yeah,

27:42.780 --> 27:44.080
I guess it goes without saying

27:44.080 --> 27:44.340
that,

27:44.400 --> 27:44.720
you know,

27:44.860 --> 27:46.020
there's tons and tons

27:46.020 --> 27:47.240
of things we could have talked about

27:47.240 --> 27:48.660
putting on a USB drive.

27:48.660 --> 27:48.980
I mean,

27:49.420 --> 27:50.600
I'm sure we missed quite a bit

27:50.600 --> 27:51.760
and that's why we put the call out

27:51.760 --> 27:52.960
if anybody had some suggestions

27:52.960 --> 27:54.040
or things worth mentioning

27:54.040 --> 27:54.680
to email us

27:54.680 --> 27:55.300
and let us know.

27:55.780 --> 27:55.980
You know,

27:56.020 --> 27:57.300
we've got a limited amount of time

27:57.300 --> 27:58.060
on the radio show

27:58.060 --> 27:58.760
to talk about it,

27:58.820 --> 28:01.080
so we specifically singled out

28:01.080 --> 28:02.380
and chose those few things

28:02.380 --> 28:03.780
because we thought it was a good mix

28:03.780 --> 28:05.480
of some things people know,

28:05.600 --> 28:06.060
but then again,

28:06.120 --> 28:06.580
some other ones

28:06.580 --> 28:07.600
that they may not know,

28:07.680 --> 28:09.000
so we kind of tried to mix it up,

28:09.480 --> 28:10.700
but we've actually talked about

28:10.700 --> 28:11.920
maybe doing some future episodes

28:11.920 --> 28:14.020
by theme or genre

28:14.020 --> 28:15.200
or relationship of tools,

28:15.280 --> 28:16.340
like maybe we'll do one of

28:16.340 --> 28:18.480
a bunch of different scanning tools

28:18.480 --> 28:19.040
that you can,

28:19.220 --> 28:20.100
that are very portable

28:20.100 --> 28:21.420
or a bunch of different,

28:21.900 --> 28:22.100
you know,

28:22.140 --> 28:23.500
like application level stuff

28:23.500 --> 28:24.820
that's actually useful to you,

28:24.880 --> 28:26.220
like OpenOffice portable,

28:26.500 --> 28:27.380
Firefox portable,

28:27.580 --> 28:28.300
stuff like that.

28:29.160 --> 28:29.780
So yeah,

28:29.860 --> 28:31.040
we're definitely never going to hit

28:31.040 --> 28:31.660
all of them.

28:31.720 --> 28:32.200
It's one of those,

28:32.940 --> 28:33.400
all in,

28:33.520 --> 28:33.800
you know,

28:33.920 --> 28:35.340
so big of a topic

28:35.340 --> 28:36.100
that we're never going to

28:36.100 --> 28:37.640
fit it all into one

28:37.640 --> 28:38.600
or even many episodes.

28:38.600 --> 28:39.200
It's always going to be

28:39.200 --> 28:39.860
something we miss,

28:39.920 --> 28:41.160
so that's why we want our readers

28:41.160 --> 28:42.020
or readers,

28:42.120 --> 28:42.520
our listeners,

28:42.740 --> 28:43.240
excuse me,

28:43.720 --> 28:44.880
to mail us

28:44.880 --> 28:45.520
and let us know

28:45.520 --> 28:46.400
some cool things

28:46.400 --> 28:47.060
that they have found

28:47.060 --> 28:47.720
because certainly

28:47.720 --> 28:48.380
there's stuff that

28:48.380 --> 28:50.180
we have missed.

28:51.420 --> 28:52.600
So I'm,

28:52.740 --> 28:53.020
let's see,

28:53.120 --> 28:53.520
we are,

28:53.760 --> 28:54.720
we still got a good amount

28:54.720 --> 28:55.720
of time left for the show

28:55.720 --> 28:57.180
to dedicate to this main topic

28:57.180 --> 28:59.080
because this one's going to be,

28:59.180 --> 28:59.320
well,

28:59.380 --> 28:59.660
let me,

28:59.760 --> 29:00.020
first of all,

29:00.040 --> 29:00.700
let me preface this

29:00.700 --> 29:01.300
and say it's going to be

29:01.300 --> 29:02.040
a little bit tricky

29:02.040 --> 29:03.200
with this topic

29:03.200 --> 29:04.780
because it's very technical

29:04.780 --> 29:06.660
and it's going to be

29:06.660 --> 29:07.600
kind of hard to translate

29:07.600 --> 29:08.680
some of this on radio,

29:08.960 --> 29:10.340
but Mia Flux and I

29:10.340 --> 29:11.180
have been talking about this

29:11.180 --> 29:12.040
for a couple of weeks

29:12.040 --> 29:13.280
of how we can pull this off

29:13.280 --> 29:15.380
and got some good notes together

29:15.380 --> 29:17.880
so we're going to jump into it,

29:17.920 --> 29:18.300
give it a shot,

29:18.380 --> 29:19.240
we're going to try to be careful

29:19.240 --> 29:22.320
not to drop too many code snips

29:22.320 --> 29:23.420
or when we do,

29:23.540 --> 29:24.380
we're going to try to give you

29:24.380 --> 29:24.960
some examples,

29:25.120 --> 29:26.320
some links to some pages

29:26.320 --> 29:27.520
where you can actually view them

29:27.520 --> 29:28.800
while you're listening

29:28.800 --> 29:29.660
along with the show

29:29.660 --> 29:31.360
and even if you need to go back

29:31.360 --> 29:32.420
and re-listen to a show

29:32.420 --> 29:33.360
or rewind or whatever,

29:33.460 --> 29:34.180
you can do that too

29:34.180 --> 29:35.340
so that might be helpful.

29:35.980 --> 29:37.180
But that main topic

29:37.180 --> 29:38.140
that I'm referring to

29:38.140 --> 29:40.240
is cross-site scripting

29:40.240 --> 29:44.180
as well as cross-site request forgery

29:44.180 --> 29:45.160
or forgery request,

29:45.220 --> 29:46.440
I've seen it said both ways.

29:46.880 --> 29:47.780
So we're going to talk about

29:47.780 --> 29:48.620
those two things

29:48.620 --> 29:50.360
are commonly mentioned together

29:50.360 --> 29:52.660
and specifically I think

29:52.660 --> 29:53.820
and you tell me here,

29:53.880 --> 29:54.660
we're going to kind of

29:54.660 --> 29:56.140
talk about this

29:56.140 --> 29:57.600
a lot of relationships

29:57.600 --> 29:59.120
between this and Ajax

29:59.120 --> 30:00.360
because Ajax is making

30:00.360 --> 30:01.640
these things a lot more,

30:02.580 --> 30:02.940
I don't know,

30:03.020 --> 30:04.320
not deadly is a bad word,

30:04.620 --> 30:05.360
a lot more useful,

30:05.560 --> 30:06.040
a lot more,

30:06.820 --> 30:07.380
I don't know,

30:07.640 --> 30:08.160
I'm not sure,

30:08.300 --> 30:09.340
a lot more common

30:09.340 --> 30:10.380
I guess is a simple way

30:10.380 --> 30:10.980
of saying it.

30:11.440 --> 30:12.120
Exactly, yeah.

30:12.820 --> 30:14.460
So, I guess,

30:14.740 --> 30:14.980
I mean,

30:15.080 --> 30:16.360
I'll let you

30:16.360 --> 30:18.580
kind of roll with this

30:18.580 --> 30:20.420
because I'm not,

30:20.700 --> 30:21.260
like I said,

30:21.300 --> 30:22.640
it's such an all-encompassing thing,

30:22.700 --> 30:23.280
I don't even know

30:23.280 --> 30:24.520
exactly where to start.

30:25.100 --> 30:25.300
I mean,

30:25.340 --> 30:26.280
some history a little bit,

30:26.320 --> 30:26.560
I guess,

30:26.640 --> 30:27.960
we want to lay some foundation

30:27.960 --> 30:28.740
down to start with,

30:28.760 --> 30:28.940
right?

30:30.020 --> 30:30.820
Yeah, exactly.

30:31.000 --> 30:31.280
I mean,

30:31.340 --> 30:31.640
there's,

30:32.060 --> 30:33.740
like you just said,

30:33.820 --> 30:34.420
there's about

30:34.420 --> 30:35.800
15 different ways

30:35.800 --> 30:36.580
we could spin this

30:36.580 --> 30:37.220
and I could probably

30:37.220 --> 30:38.160
make several episodes

30:38.160 --> 30:40.180
so I guess

30:40.180 --> 30:41.000
pretty much

30:41.000 --> 30:41.600
just going to lay

30:41.600 --> 30:42.340
the foundations

30:42.340 --> 30:44.560
and a lot of

30:44.560 --> 30:45.340
basic information

30:45.340 --> 30:46.340
to get people started

30:46.340 --> 30:48.440
and if they're interested

30:48.440 --> 30:49.280
we can probably go

30:49.280 --> 30:49.640
from there

30:49.640 --> 30:50.600
in future episodes.

30:50.980 --> 30:51.180
All right.

30:51.180 --> 30:52.340
But I guess

30:52.340 --> 30:53.980
I'd like to talk about,

30:54.020 --> 30:54.260
you know,

30:54.300 --> 30:55.100
the history of,

30:55.320 --> 30:55.540
say,

30:55.640 --> 30:57.400
like XML HGP request

30:57.400 --> 30:58.660
and essentially

30:58.660 --> 30:59.960
what Ajax is nowadays

30:59.960 --> 31:01.020
and how it got there.

31:02.020 --> 31:02.540
Originally,

31:03.140 --> 31:05.540
people got the type

31:05.540 --> 31:06.640
of Ajax response

31:06.640 --> 31:07.220
by using

31:07.220 --> 31:08.740
iframes and layers

31:08.740 --> 31:09.600
and that was

31:09.600 --> 31:11.100
in Internet Explorer 3

31:11.100 --> 31:12.620
which was released

31:12.620 --> 31:13.500
in 1996

31:13.500 --> 31:15.160
and Mozilla 4

31:15.160 --> 31:15.960
in 1997.

31:16.320 --> 31:17.000
Mozilla ended up

31:17.000 --> 31:17.720
copying it

31:17.720 --> 31:18.740
to get that functionality

31:18.740 --> 31:19.900
and that's because

31:19.900 --> 31:21.000
people got tired

31:21.000 --> 31:22.980
of the general,

31:23.100 --> 31:23.420
you know,

31:23.640 --> 31:25.120
HTTP model

31:25.120 --> 31:25.700
which is

31:25.700 --> 31:26.280
go through,

31:26.420 --> 31:27.060
click on a link,

31:27.180 --> 31:28.440
entire page refreshes,

31:28.520 --> 31:28.820
et cetera,

31:28.920 --> 31:29.220
et cetera.

31:29.640 --> 31:30.540
So they said,

31:30.600 --> 31:30.780
you know,

31:30.840 --> 31:31.080
hey,

31:31.160 --> 31:31.720
let's stick,

31:31.800 --> 31:32.120
you know,

31:32.540 --> 31:33.600
layer in here

31:33.600 --> 31:34.620
and iframe in there

31:34.620 --> 31:35.340
and when somebody

31:35.340 --> 31:36.240
does anything

31:36.240 --> 31:37.300
on a web application

31:37.300 --> 31:38.740
we'll just upload

31:38.740 --> 31:39.400
that portion

31:39.400 --> 31:40.100
of the page.

31:41.140 --> 31:41.860
Now frames

31:41.860 --> 31:42.620
and that evolved,

31:42.940 --> 31:43.280
what's that?

31:43.440 --> 31:43.820
I was going to say,

31:43.900 --> 31:44.840
frames is generally

31:44.840 --> 31:46.220
an IE term

31:46.220 --> 31:47.380
and layers

31:47.380 --> 31:48.160
is generally

31:48.160 --> 31:48.860
the Mozilla term.

31:48.940 --> 31:49.220
They're like

31:49.220 --> 31:50.220
interchangeable

31:50.220 --> 31:50.700
with each other,

31:50.820 --> 31:51.020
different,

31:51.180 --> 31:51.700
that's back when

31:51.700 --> 31:52.380
the browser wars

31:52.380 --> 31:53.140
were still going on,

31:53.180 --> 31:53.360
right?

31:54.160 --> 31:54.640
Exactly.

31:54.800 --> 31:55.600
Now there's frames

31:55.600 --> 31:56.500
which work across

31:56.500 --> 31:57.140
both of them

31:57.140 --> 31:57.820
but iframes

31:57.820 --> 31:58.520
are specific

31:58.520 --> 31:59.580
to Internet Explorer

31:59.580 --> 32:00.600
and layers

32:00.600 --> 32:01.200
are specific

32:01.200 --> 32:02.640
to Mozilla

32:02.640 --> 32:03.700
originally.

32:04.740 --> 32:05.480
I guess it was

32:05.480 --> 32:06.960
spelt Mozilla

32:06.960 --> 32:07.600
but pronounced

32:07.600 --> 32:08.160
Netscape

32:08.160 --> 32:08.640
if you want

32:08.640 --> 32:09.560
to get particular.

32:10.080 --> 32:10.340
Well,

32:10.340 --> 32:10.660
yeah.

32:10.660 --> 32:11.240
People may get

32:11.240 --> 32:12.220
pedantic with that

32:12.220 --> 32:12.960
so you don't have

32:12.960 --> 32:14.200
to go ahead

32:14.200 --> 32:15.280
and cover my bases.

32:15.600 --> 32:15.700
No,

32:15.780 --> 32:15.980
you don't.

32:15.980 --> 32:16.500
Yeah,

32:16.640 --> 32:17.820
so those evolved

32:17.820 --> 32:18.400
into,

32:18.720 --> 32:19.860
on Microsoft's side,

32:19.960 --> 32:21.100
Microsoft's remote

32:21.100 --> 32:21.740
scripting,

32:22.160 --> 32:23.000
MSRS

32:23.000 --> 32:24.860
and basically

32:24.860 --> 32:25.500
what it did

32:25.500 --> 32:26.160
is it involved

32:26.160 --> 32:27.460
JavaScript on the client

32:27.460 --> 32:28.540
and a Java applet

32:28.540 --> 32:29.420
to achieve

32:29.420 --> 32:29.840
some of those

32:29.840 --> 32:30.680
same effects

32:30.680 --> 32:33.220
and that still

32:33.220 --> 32:33.960
was lacking

32:33.960 --> 32:34.800
in some ways

32:34.800 --> 32:35.440
and Microsoft

32:35.440 --> 32:36.140
pushed

32:36.140 --> 32:36.980
and put

32:36.980 --> 32:37.560
an XML

32:37.560 --> 32:38.860
HTTP request

32:38.860 --> 32:40.360
in their browser

32:40.360 --> 32:41.920
with Internet Explorer 5.

32:42.440 --> 32:42.680
Now,

32:42.780 --> 32:43.660
what that was

32:43.660 --> 32:44.260
is that

32:44.260 --> 32:46.140
through JavaScript

32:46.140 --> 32:47.740
you could actually

32:47.740 --> 32:49.080
pull back

32:49.080 --> 32:49.840
an XML

32:49.840 --> 32:51.400
response

32:51.400 --> 32:52.180
from another

32:52.180 --> 32:53.160
website

32:53.160 --> 32:54.840
and I mean

32:54.840 --> 32:55.360
it got used

32:55.360 --> 32:56.280
all sorts of ways

32:56.280 --> 32:56.840
you know

32:56.840 --> 32:57.400
whether it was

32:57.400 --> 32:58.400
just straight HTML

32:58.400 --> 32:59.300
or XML

32:59.300 --> 32:59.820
you know

32:59.820 --> 33:00.560
and parsed

33:00.560 --> 33:01.220
on the JavaScript

33:01.220 --> 33:01.700
side

33:01.700 --> 33:02.100
et cetera

33:02.100 --> 33:02.520
et cetera

33:02.520 --> 33:04.340
but it was

33:04.340 --> 33:04.980
very useful

33:04.980 --> 33:05.420
and it got

33:05.420 --> 33:06.180
implemented later

33:06.180 --> 33:08.200
on in Mozilla

33:08.200 --> 33:08.800
Firefox

33:08.800 --> 33:09.540
you know

33:09.540 --> 33:10.260
Opera

33:10.260 --> 33:10.720
et cetera

33:10.720 --> 33:11.080
et cetera

33:11.080 --> 33:12.140
a little bit later.

33:13.920 --> 33:14.440
Ajax

33:14.440 --> 33:15.520
was coined

33:15.520 --> 33:16.780
by Jesse James

33:16.780 --> 33:17.120
Garrett

33:17.120 --> 33:18.340
in February

33:18.340 --> 33:19.100
2005

33:19.100 --> 33:19.700
but the reason

33:19.700 --> 33:20.600
why I'm talking

33:20.600 --> 33:21.420
about it earlier

33:21.420 --> 33:22.480
like all those

33:22.480 --> 33:23.120
earlier things

33:23.120 --> 33:23.860
led up to it

33:23.860 --> 33:24.280
so a lot

33:24.280 --> 33:24.580
of people

33:24.580 --> 33:24.920
you know

33:24.920 --> 33:26.020
think Ajax

33:26.020 --> 33:27.060
which is

33:27.060 --> 33:27.860
asynchronous

33:27.860 --> 33:28.660
JavaScript

33:28.660 --> 33:29.340
and XML

33:29.340 --> 33:30.560
was a new

33:30.560 --> 33:30.920
thing

33:30.920 --> 33:31.180
you know

33:31.180 --> 33:31.460
as soon

33:31.460 --> 33:31.900
as it hit

33:31.900 --> 33:32.220
in like

33:32.220 --> 33:33.240
February 2005

33:33.240 --> 33:33.920
there were loads

33:33.920 --> 33:34.240
of people

33:34.240 --> 33:34.720
going like

33:34.720 --> 33:35.700
oh my god

33:35.700 --> 33:36.280
I didn't know

33:36.280 --> 33:37.140
you could do that

33:37.140 --> 33:37.620
OMG

33:37.620 --> 33:38.580
Web 2.0

33:38.580 --> 33:39.600
these two people

33:39.600 --> 33:40.300
have pretty much

33:40.300 --> 33:40.880
been doing it

33:40.880 --> 33:41.340
since like

33:41.340 --> 33:41.900
96

33:41.900 --> 33:43.300
so it was

33:43.300 --> 33:44.120
almost 10 years

33:44.120 --> 33:44.760
later that

33:44.760 --> 33:45.460
the technology

33:45.460 --> 33:46.680
sort of

33:46.680 --> 33:47.360
came to

33:47.360 --> 33:48.040
fruition

33:48.040 --> 33:49.020
and popularity

33:49.020 --> 33:49.680
would probably

33:49.680 --> 33:50.400
be the better

33:50.400 --> 33:50.720
word

33:50.720 --> 33:51.500
on that one

33:51.500 --> 33:52.680
so Web 2.0

33:52.680 --> 33:53.340
started back

33:53.340 --> 33:54.180
in 1996

33:54.180 --> 33:54.940
is that what

33:54.940 --> 33:55.300
you're saying

33:55.300 --> 33:56.700
yeah

33:56.700 --> 33:57.260
essentially

33:57.260 --> 33:58.040
for these two

33:58.040 --> 33:58.360
people

33:58.360 --> 33:59.720
the problem

33:59.720 --> 34:00.240
was that

34:00.240 --> 34:00.860
a lot of

34:00.860 --> 34:01.180
you know

34:01.180 --> 34:01.780
developers

34:01.780 --> 34:02.240
a lot of

34:02.240 --> 34:02.840
web developers

34:02.840 --> 34:03.420
didn't know

34:03.420 --> 34:03.900
about it

34:03.900 --> 34:05.080
and a lot

34:05.080 --> 34:05.680
of clients

34:05.680 --> 34:06.380
weren't

34:06.380 --> 34:06.680
you know

34:06.680 --> 34:07.580
screaming for it

34:07.580 --> 34:08.100
nowadays

34:08.100 --> 34:09.240
it's pretty hard

34:09.240 --> 34:09.780
not to find

34:09.780 --> 34:10.180
a company

34:10.180 --> 34:10.720
that wants

34:10.720 --> 34:11.040
to make

34:11.040 --> 34:11.400
everything

34:11.400 --> 34:12.260
as fast

34:12.260 --> 34:12.600
as that

34:12.600 --> 34:13.300
Google thing

34:13.300 --> 34:13.740
you know

34:13.740 --> 34:14.800
people look

34:14.800 --> 34:15.040
at their

34:15.040 --> 34:15.520
web mail

34:15.520 --> 34:16.020
or they look

34:16.020 --> 34:16.440
at something

34:16.440 --> 34:16.780
else

34:16.780 --> 34:17.120
or any

34:17.120 --> 34:17.620
basically

34:17.620 --> 34:18.360
you know

34:18.360 --> 34:19.340
web based

34:19.340 --> 34:19.920
application

34:19.920 --> 34:20.440
and they go

34:20.440 --> 34:21.340
oh hey

34:21.340 --> 34:21.640
you know

34:21.640 --> 34:22.100
I remember

34:22.100 --> 34:22.620
looking at

34:22.620 --> 34:22.920
Dell

34:24.180 --> 34:24.640
for the

34:24.640 --> 34:24.800
whole

34:24.800 --> 34:25.560
Ajax hype

34:25.560 --> 34:26.300
and they

34:26.300 --> 34:26.600
used to

34:26.600 --> 34:26.780
have

34:26.780 --> 34:28.360
on their

34:28.360 --> 34:29.100
driver search

34:29.100 --> 34:29.420
they would

34:29.420 --> 34:29.700
have a

34:29.700 --> 34:30.220
drop down

34:30.220 --> 34:30.560
you could

34:30.560 --> 34:30.920
select

34:30.920 --> 34:31.280
you know

34:31.280 --> 34:33.020
the baseline

34:33.020 --> 34:33.700
model

34:33.700 --> 34:34.240
and then

34:34.240 --> 34:34.680
it would

34:34.680 --> 34:35.340
have specific

34:35.340 --> 34:35.760
models

34:35.760 --> 34:36.040
that would

34:36.040 --> 34:36.420
pop up

34:36.420 --> 34:36.900
right after

34:36.900 --> 34:37.060
that

34:37.060 --> 34:37.220
and I

34:37.220 --> 34:37.420
remember

34:37.420 --> 34:37.880
seeing that

34:37.880 --> 34:38.240
initially

34:38.240 --> 34:38.580
and thinking

34:38.580 --> 34:38.960
that was

34:38.960 --> 34:39.540
really cool

34:39.540 --> 34:40.440
you know

34:40.440 --> 34:41.380
but

34:41.380 --> 34:42.960
it was

34:42.960 --> 34:43.640
unusual

34:43.640 --> 34:44.160
nowadays

34:44.160 --> 34:45.120
everybody

34:45.120 --> 34:45.920
has an

34:45.920 --> 34:46.320
Ajax

34:46.320 --> 34:47.020
application

34:47.020 --> 34:48.520
it's

34:48.520 --> 34:48.980
practically

34:48.980 --> 34:51.120
the

34:51.120 --> 34:51.920
website

34:51.920 --> 34:52.300
of

34:52.300 --> 34:53.280
1993

34:53.280 --> 34:54.040
or 4

34:54.040 --> 34:54.960
every company

34:54.960 --> 34:55.300
was like

34:55.300 --> 34:55.580
we gotta

34:55.580 --> 34:55.880
have a

34:55.880 --> 34:56.300
website

34:56.300 --> 34:57.160
right

34:57.160 --> 34:59.260
and the

34:59.260 --> 34:59.660
thing is

34:59.660 --> 34:59.840
though

34:59.840 --> 35:00.680
they're

35:00.680 --> 35:00.940
really

35:00.940 --> 35:01.300
really

35:01.300 --> 35:01.820
they can

35:01.820 --> 35:02.480
it's

35:02.480 --> 35:02.700
really

35:02.700 --> 35:03.120
useful

35:03.120 --> 35:03.760
I mean

35:03.760 --> 35:04.520
they really

35:04.520 --> 35:06.960
they can

35:06.960 --> 35:07.160
be

35:07.160 --> 35:07.520
what's

35:07.520 --> 35:07.940
frustrating

35:07.940 --> 35:08.640
nowadays

35:08.640 --> 35:09.100
is that

35:09.100 --> 35:09.300
yes

35:09.300 --> 35:09.620
like you're

35:09.620 --> 35:09.780
saying

35:09.780 --> 35:10.020
everybody

35:10.020 --> 35:10.400
wanted a

35:10.400 --> 35:10.680
website

35:10.680 --> 35:11.180
back then

35:11.180 --> 35:11.720
now everybody

35:11.720 --> 35:12.100
wants a

35:12.100 --> 35:12.780
web 2.0

35:12.780 --> 35:12.980
site

35:12.980 --> 35:13.240
they want

35:13.240 --> 35:13.660
an Ajax

35:13.660 --> 35:13.960
site

35:13.960 --> 35:14.840
and

35:14.840 --> 35:15.720
unfortunately

35:15.720 --> 35:15.960
they're

35:15.960 --> 35:16.380
pushing out

35:16.380 --> 35:16.580
a lot

35:16.580 --> 35:17.200
of Ajax

35:17.200 --> 35:18.720
just for

35:18.720 --> 35:19.080
the sake

35:19.080 --> 35:19.340
of it

35:19.340 --> 35:19.640
it's not

35:19.640 --> 35:20.040
even really

35:20.040 --> 35:20.700
doing anything

35:20.700 --> 35:21.280
that useful

35:21.280 --> 35:21.740
that's worth

35:21.740 --> 35:22.100
putting it

35:22.100 --> 35:22.620
out for

35:22.620 --> 35:23.100
and

35:23.100 --> 35:24.460
I know

35:24.460 --> 35:24.700
we're going

35:24.700 --> 35:24.960
to say

35:24.960 --> 35:25.340
this later

35:25.340 --> 35:25.600
I guess

35:25.600 --> 35:26.040
I'm setting

35:26.040 --> 35:26.460
this up

35:26.460 --> 35:26.760
for later

35:26.760 --> 35:27.040
on

35:27.040 --> 35:27.260
is

35:27.260 --> 35:27.860
when you

35:27.860 --> 35:28.340
throw stuff

35:28.340 --> 35:28.560
up

35:28.560 --> 35:28.920
quickly

35:28.920 --> 35:29.460
and sloppily

35:29.460 --> 35:29.880
like that

35:29.880 --> 35:30.360
without doing

35:30.360 --> 35:30.840
it properly

35:30.840 --> 35:32.220
you're bound

35:32.220 --> 35:33.400
to leave

35:33.400 --> 35:33.760
a lot of

35:33.760 --> 35:34.140
holes in

35:34.140 --> 35:34.280
there

35:34.280 --> 35:34.560
and that

35:34.560 --> 35:35.180
is exactly

35:35.180 --> 35:35.520
what's

35:35.520 --> 35:35.800
happening

35:35.800 --> 35:36.020
and where

35:36.020 --> 35:36.200
a lot

35:36.200 --> 35:36.380
of this

35:36.380 --> 35:36.620
stuff

35:36.620 --> 35:37.240
is coming

35:37.240 --> 35:37.500
from

35:37.500 --> 35:38.020
but we're

35:38.020 --> 35:38.540
definitely

35:38.540 --> 35:38.740
going to

35:38.740 --> 35:38.940
come to

35:38.940 --> 35:39.280
that later

35:39.280 --> 35:39.600
right

35:39.600 --> 35:41.080
exactly

35:41.080 --> 35:41.500
exactly

35:41.500 --> 35:41.980
and I mean

35:41.980 --> 35:42.340
that's the

35:42.340 --> 35:42.520
thing

35:42.520 --> 35:42.780
like

35:42.780 --> 35:43.540
I've been

35:43.540 --> 35:44.280
developing

35:44.280 --> 35:44.940
Ajax

35:44.940 --> 35:45.500
applications

35:45.500 --> 35:46.380
for over

35:46.380 --> 35:46.700
a year

35:46.700 --> 35:47.000
now

35:47.000 --> 35:48.280
and I

35:48.280 --> 35:48.680
used some

35:48.680 --> 35:48.900
of these

35:48.900 --> 35:49.160
tricks

35:49.160 --> 35:49.500
earlier

35:49.500 --> 35:49.800
on

35:49.800 --> 35:50.180
actually

35:50.180 --> 35:50.560
to tell

35:50.560 --> 35:50.780
you the

35:50.780 --> 35:50.980
truth

35:50.980 --> 35:51.460
except for

35:51.460 --> 35:51.760
it wasn't

35:51.760 --> 35:52.140
really called

35:52.140 --> 35:52.660
Ajax

35:52.660 --> 35:52.920
then

35:52.920 --> 35:53.900
but my

35:53.900 --> 35:54.220
nickname

35:54.220 --> 35:54.600
in the

35:54.600 --> 35:54.900
office

35:54.900 --> 35:55.720
is actually

35:55.720 --> 35:56.640
Ajax

35:56.640 --> 35:57.580
they call

35:57.580 --> 35:58.300
me Ajax

35:58.300 --> 35:59.260
so

36:00.360 --> 36:00.720
you any

36:00.720 --> 36:01.200
indicator

36:01.200 --> 36:03.240
what do

36:03.240 --> 36:03.580
they call

36:03.580 --> 36:03.940
you behind

36:03.940 --> 36:04.380
your back

36:04.380 --> 36:04.720
that's what

36:04.720 --> 36:04.960
I want

36:04.960 --> 36:06.080
to know

36:06.080 --> 36:06.660
I don't

36:06.660 --> 36:06.840
know

36:06.840 --> 36:07.740
xmlhcp

36:07.740 --> 36:08.140
request

36:08.140 --> 36:08.620
object

36:08.620 --> 36:09.980
you know

36:09.980 --> 36:11.540
microsoft

36:11.540 --> 36:12.540
whatever

36:12.540 --> 36:13.480
well

36:13.480 --> 36:13.880
yeah

36:13.880 --> 36:14.320
we won't

36:14.320 --> 36:15.280
even go

36:15.280 --> 36:15.720
into that

36:15.720 --> 36:16.020
I had

36:16.020 --> 36:16.300
some

36:16.300 --> 36:17.540
fun

36:17.540 --> 36:17.980
problems

36:17.980 --> 36:18.260
before

36:18.260 --> 36:18.540
we got

36:18.540 --> 36:18.940
recording

36:18.940 --> 36:19.240
today

36:19.240 --> 36:19.500
didn't

36:19.500 --> 36:19.680
I

36:19.680 --> 36:19.940
but

36:19.940 --> 36:20.380
anyway

36:20.380 --> 36:20.700
let's

36:20.700 --> 36:20.900
stick

36:20.900 --> 36:21.580
to the

36:21.580 --> 36:21.880
topic

36:21.880 --> 36:22.160
here

36:22.160 --> 36:22.420
so

36:22.420 --> 36:23.440
I mean

36:23.440 --> 36:23.660
like

36:23.660 --> 36:24.000
back

36:24.000 --> 36:24.440
in those

36:24.440 --> 36:24.720
days

36:24.720 --> 36:25.180
before

36:25.180 --> 36:25.680
Ajax

36:25.680 --> 36:25.920
really

36:25.920 --> 36:26.160
even

36:26.160 --> 36:26.400
came

36:26.400 --> 36:26.680
around

36:26.680 --> 36:27.280
there's

36:27.280 --> 36:27.520
something

36:27.520 --> 36:27.840
that

36:27.840 --> 36:28.240
ties

36:28.240 --> 36:28.560
into

36:28.560 --> 36:28.760
it

36:28.760 --> 36:28.960
and it

36:28.960 --> 36:29.080
was

36:29.080 --> 36:29.400
actually

36:29.400 --> 36:29.860
on a

36:29.860 --> 36:30.500
webmonkey

36:30.500 --> 36:30.800
article

36:30.800 --> 36:31.600
on cross

36:31.600 --> 36:31.760
side

36:31.760 --> 36:32.220
scripting

36:32.220 --> 36:32.540
a while

36:32.540 --> 36:32.760
ago

36:32.760 --> 36:33.320
he's

36:33.320 --> 36:33.660
actually

36:33.660 --> 36:34.900
I can't

36:34.900 --> 36:35.100
remember

36:35.100 --> 36:35.460
the guy's

36:35.460 --> 36:35.640
name

36:35.640 --> 36:36.560
on webmonkey

36:36.560 --> 36:36.880
that wrote

36:36.880 --> 36:37.380
the article

36:37.380 --> 36:38.100
but he

36:38.100 --> 36:38.680
specifically

36:38.680 --> 36:39.980
started using

36:39.980 --> 36:40.860
xss

36:40.860 --> 36:41.800
instead of

36:41.800 --> 36:42.240
css

36:42.240 --> 36:42.860
because of

36:42.860 --> 36:43.160
course

36:43.160 --> 36:43.940
css

36:43.940 --> 36:44.640
was around

36:44.640 --> 36:45.220
before then

36:45.220 --> 36:45.920
for cascading

36:45.920 --> 36:46.580
style sheets

36:46.580 --> 36:47.160
and something

36:47.160 --> 36:47.400
else

36:47.400 --> 36:47.680
I can't

36:47.680 --> 36:48.140
recall at the

36:48.140 --> 36:48.340
moment

36:48.340 --> 36:49.020
but

36:49.020 --> 36:49.460
so he

36:49.460 --> 36:49.800
basically

36:49.800 --> 36:50.100
said

36:50.100 --> 36:50.340
that's

36:50.340 --> 36:50.540
really

36:50.540 --> 36:50.920
stupid

36:50.920 --> 36:51.140
we

36:51.140 --> 36:51.320
should

36:51.320 --> 36:51.660
actually

36:51.660 --> 36:51.880
be

36:51.880 --> 36:52.160
using

36:52.160 --> 36:52.760
xss

36:52.760 --> 36:53.580
instead

36:53.580 --> 36:53.720
of

36:53.720 --> 36:54.160
css

36:54.160 --> 36:55.160
so

36:55.160 --> 36:56.240
in that

36:56.240 --> 36:56.440
one

36:56.440 --> 36:56.800
he had

36:56.800 --> 36:57.360
a really

36:57.360 --> 36:57.800
interesting

36:57.800 --> 36:58.040
thing

36:58.040 --> 36:58.280
about

36:58.280 --> 36:58.860
a guy

36:58.860 --> 36:59.240
who used

36:59.240 --> 36:59.500
to go

36:59.500 --> 36:59.700
through

36:59.700 --> 37:00.220
and check

37:00.220 --> 37:00.800
guestbooks

37:00.800 --> 37:01.680
and the

37:01.680 --> 37:01.840
thing

37:01.840 --> 37:02.380
was that

37:02.380 --> 37:02.900
a lot

37:02.900 --> 37:03.100
of the

37:03.100 --> 37:03.520
guestbooks

37:03.520 --> 37:03.900
would just

37:03.900 --> 37:04.320
take the

37:04.320 --> 37:04.720
text

37:04.720 --> 37:05.540
and put

37:05.540 --> 37:06.140
it into

37:06.140 --> 37:07.560
the page

37:07.560 --> 37:08.480
and display

37:08.480 --> 37:08.860
it as

37:08.860 --> 37:09.160
you know

37:09.160 --> 37:09.620
just standard

37:09.620 --> 37:09.980
text

37:09.980 --> 37:10.340
in the

37:10.340 --> 37:12.040
HTML page

37:12.040 --> 37:12.700
now what

37:12.700 --> 37:13.120
this guy

37:13.120 --> 37:13.480
would do

37:13.480 --> 37:13.840
is he

37:13.840 --> 37:14.360
would actually

37:14.360 --> 37:15.020
go through

37:15.020 --> 37:15.600
and post

37:15.600 --> 37:16.480
an image

37:16.480 --> 37:16.880
tag

37:16.880 --> 37:17.220
in the

37:17.220 --> 37:17.360
middle

37:17.360 --> 37:17.660
of his

37:17.660 --> 37:18.060
text

37:18.060 --> 37:19.080
for a

37:19.080 --> 37:19.380
picture

37:19.380 --> 37:19.560
of

37:19.560 --> 37:19.800
Barney

37:19.800 --> 37:19.960
the

37:19.960 --> 37:20.340
dinosaur

37:20.340 --> 37:21.600
and he

37:21.600 --> 37:22.060
went around

37:22.060 --> 37:22.580
for a while

37:22.580 --> 37:23.020
and I guess

37:23.020 --> 37:23.480
it was pretty

37:23.480 --> 37:23.980
popular

37:23.980 --> 37:24.760
and they

37:24.760 --> 37:25.040
would go

37:25.040 --> 37:25.300
around

37:25.300 --> 37:25.540
to all

37:25.540 --> 37:25.760
these

37:25.760 --> 37:26.340
guestbooks

37:26.340 --> 37:26.900
online

37:26.900 --> 37:27.820
and just

37:27.820 --> 37:28.520
post this

37:28.520 --> 37:29.140
image tag

37:29.140 --> 37:29.360
in the

37:29.360 --> 37:29.480
middle

37:29.480 --> 37:29.700
of the

37:29.700 --> 37:30.040
text

37:30.040 --> 37:30.620
and all

37:30.620 --> 37:31.000
the pages

37:31.000 --> 37:31.520
would render

37:31.520 --> 37:32.180
it and show

37:32.180 --> 37:32.520
you know

37:32.520 --> 37:32.920
because they

37:32.920 --> 37:33.460
weren't stripping

37:33.460 --> 37:33.920
any of the

37:33.920 --> 37:36.060
HTML tags

37:36.060 --> 37:37.000
they were showing

37:37.000 --> 37:37.260
you know

37:37.260 --> 37:37.680
Barney the

37:37.680 --> 37:38.020
dinosaur

37:38.020 --> 37:38.420
in the middle

37:38.420 --> 37:38.640
of their

37:38.640 --> 37:39.220
guest page

37:39.220 --> 37:40.420
well it's

37:40.420 --> 37:40.860
better than

37:40.860 --> 37:41.420
goat see

37:41.420 --> 37:41.720
or the

37:41.720 --> 37:42.220
weightlifter

37:42.220 --> 37:42.760
or something

37:42.760 --> 37:44.120
yeah I'm sure

37:44.120 --> 37:44.380
there was

37:44.380 --> 37:44.680
probably

37:44.680 --> 37:44.980
a couple

37:44.980 --> 37:45.260
of people

37:45.260 --> 37:45.680
who stuck

37:45.680 --> 37:46.120
like tub

37:46.120 --> 37:46.500
girl in

37:46.500 --> 37:46.660
there

37:46.660 --> 37:47.480
I'm sure

37:47.480 --> 37:47.900
yeah

37:47.900 --> 37:48.960
I'm trying

37:48.960 --> 37:49.420
to be less

37:49.420 --> 37:50.080
malicious on

37:50.080 --> 37:50.380
this and

37:50.380 --> 37:51.040
actually talk

37:51.040 --> 37:51.540
about somebody

37:51.540 --> 37:52.060
who you know

37:52.060 --> 37:52.920
just put a big

37:52.920 --> 37:53.620
purple dinosaur

37:53.620 --> 37:53.940
on your

37:53.940 --> 37:54.400
guestbook

37:54.400 --> 37:55.140
I don't know

37:55.140 --> 37:55.540
that's pretty

37:55.540 --> 37:56.240
offensive too

37:56.240 --> 37:56.700
actually

37:56.700 --> 37:57.740
if you think

37:57.740 --> 37:58.180
about it

37:58.180 --> 38:00.080
especially if

38:00.080 --> 38:00.420
you're like

38:00.420 --> 38:00.700
one of the

38:00.700 --> 38:01.080
old school

38:01.080 --> 38:01.500
like lead

38:01.500 --> 38:01.780
people

38:01.780 --> 38:02.260
it's like

38:02.260 --> 38:03.320
yeah I've

38:03.320 --> 38:03.920
been programming

38:03.920 --> 38:04.620
on a back

38:04.620 --> 38:05.180
since like

38:05.180 --> 38:06.140
1977

38:06.140 --> 38:07.580
somebody's

38:07.580 --> 38:07.840
going to

38:07.840 --> 38:09.140
take a

38:09.140 --> 38:09.480
picture

38:09.480 --> 38:11.340
somebody's

38:11.340 --> 38:11.540
going to

38:11.540 --> 38:11.800
take a

38:11.800 --> 38:12.180
picture of

38:12.180 --> 38:12.540
Barney

38:12.540 --> 38:12.800
and

38:12.800 --> 38:14.500
photoshop

38:14.500 --> 38:14.760
it with

38:14.760 --> 38:15.220
tub girl

38:15.220 --> 38:15.540
and want

38:15.540 --> 38:16.200
a picture

38:16.200 --> 38:16.840
of Barney

38:16.840 --> 38:18.560
shooting a

38:18.560 --> 38:18.880
thousand

38:18.880 --> 38:19.520
I guess

38:19.520 --> 38:20.040
after this

38:20.040 --> 38:20.380
article

38:20.380 --> 38:20.980
people can

38:20.980 --> 38:21.400
probably

38:21.400 --> 38:22.260
maybe there'll

38:22.260 --> 38:22.540
be a

38:22.540 --> 38:23.000
resurgence

38:23.000 --> 38:23.740
in Barney's

38:23.740 --> 38:24.080
you know

38:24.080 --> 38:25.260
that's why

38:25.260 --> 38:25.760
I wanted to

38:25.760 --> 38:26.200
sort of go

38:26.200 --> 38:26.580
there a little

38:26.580 --> 38:26.820
bit

38:26.820 --> 38:27.520
I don't want

38:27.520 --> 38:28.240
to be

38:28.240 --> 38:28.720
responsible

38:28.720 --> 38:29.260
for that

38:29.260 --> 38:29.820
anyway

38:29.820 --> 38:30.120
alright

38:30.120 --> 38:30.500
yeah you're

38:30.500 --> 38:30.640
right

38:30.640 --> 38:30.960
let's go

38:30.960 --> 38:31.300
back on

38:31.300 --> 38:31.660
topic

38:31.660 --> 38:33.400
yeah so

38:33.400 --> 38:33.860
basically

38:33.860 --> 38:34.340
when I was

38:34.340 --> 38:34.980
talking earlier

38:34.980 --> 38:35.680
about refreshing

38:35.680 --> 38:36.600
certain portions

38:36.600 --> 38:37.240
of the page

38:37.240 --> 38:38.420
there's something

38:38.420 --> 38:39.000
along that

38:39.000 --> 38:39.800
came along

38:39.800 --> 38:40.260
that really

38:40.260 --> 38:40.660
helped

38:40.660 --> 38:41.420
Ajax

38:41.420 --> 38:41.840
and that's

38:41.840 --> 38:42.180
DOM

38:42.180 --> 38:42.740
or the

38:42.740 --> 38:43.100
document

38:43.100 --> 38:43.520
object

38:43.520 --> 38:43.940
model

38:43.940 --> 38:44.620
and

38:44.620 --> 38:45.500
essentially

38:45.500 --> 38:45.940
what that

38:45.940 --> 38:46.160
is

38:46.160 --> 38:46.820
you can

38:46.820 --> 38:47.320
go through

38:47.320 --> 38:47.880
and add

38:47.880 --> 38:48.320
portions

38:48.320 --> 38:48.720
to a

38:48.720 --> 38:49.080
page

38:49.080 --> 38:50.660
remove

38:50.660 --> 38:51.260
portions

38:51.260 --> 38:51.680
from a

38:51.680 --> 38:52.100
page

38:52.100 --> 38:53.180
and update

38:53.180 --> 38:53.660
portions

38:53.660 --> 38:53.960
of a

38:53.960 --> 38:54.280
page

38:54.280 --> 38:54.840
from

38:54.840 --> 38:56.220
JavaScript

38:56.220 --> 38:56.840
code

38:56.840 --> 38:57.640
so you can

38:57.640 --> 38:58.040
go through

38:58.040 --> 38:58.560
and essentially

38:58.560 --> 38:59.160
just have

38:59.160 --> 39:00.020
like an

39:00.020 --> 39:00.920
HTML page

39:00.920 --> 39:01.380
which is

39:01.380 --> 39:02.060
just

39:02.060 --> 39:02.680
JavaScript

39:02.680 --> 39:03.780
and generate

39:03.780 --> 39:04.160
all the

39:04.160 --> 39:04.840
HTML for

39:04.840 --> 39:05.440
that page

39:05.440 --> 39:06.700
and make it

39:06.700 --> 39:07.040
dynamic

39:07.040 --> 39:07.580
straight from

39:07.580 --> 39:08.000
JavaScript

39:08.000 --> 39:08.580
in fact

39:08.580 --> 39:09.320
a lot

39:09.320 --> 39:10.280
of Ajax

39:10.280 --> 39:11.260
development

39:11.260 --> 39:11.980
is pretty

39:11.980 --> 39:12.480
JavaScript

39:12.480 --> 39:12.980
heavy

39:12.980 --> 39:13.680
you know

39:13.680 --> 39:13.940
there's

39:13.940 --> 39:14.660
primarily

39:14.660 --> 39:15.200
the backend

39:15.200 --> 39:16.000
is for

39:16.000 --> 39:16.460
supplying

39:16.460 --> 39:16.900
the data

39:16.900 --> 39:17.600
and a lot

39:17.600 --> 39:17.800
of the

39:17.800 --> 39:18.300
behavior

39:18.300 --> 39:20.320
and logic

39:20.320 --> 39:21.080
is on

39:21.080 --> 39:21.460
the front

39:21.460 --> 39:21.700
end

39:21.700 --> 39:23.860
so

39:23.860 --> 39:25.160
with that

39:25.160 --> 39:25.580
I sort

39:25.580 --> 39:26.040
of wanted

39:26.040 --> 39:26.500
to segue

39:26.500 --> 39:27.180
into different

39:27.180 --> 39:27.640
types of

39:27.640 --> 39:28.080
cross-site

39:28.080 --> 39:28.540
scripting

39:28.540 --> 39:29.000
attacks

39:29.000 --> 39:30.420
and the

39:30.420 --> 39:30.940
first type

39:30.940 --> 39:31.320
of attack

39:31.320 --> 39:31.620
that I

39:31.620 --> 39:31.940
wanted to

39:31.940 --> 39:32.380
talk about

39:32.380 --> 39:33.080
is actually

39:33.080 --> 39:33.460
DOM

39:33.460 --> 39:33.820
based

39:33.820 --> 39:34.940
now

39:34.940 --> 39:35.840
basically

39:35.840 --> 39:36.220
what it

39:36.220 --> 39:36.400
is

39:36.400 --> 39:37.120
remote

39:37.120 --> 39:37.680
execution

39:37.680 --> 39:38.280
vulnerabilities

39:38.280 --> 39:39.100
for any

39:39.100 --> 39:39.620
HTML

39:39.620 --> 39:40.360
not encoded

39:40.360 --> 39:40.840
using

39:40.840 --> 39:42.220
HTML

39:42.220 --> 39:42.840
entities

39:42.840 --> 39:44.280
can go

39:44.280 --> 39:44.540
through

39:44.540 --> 39:45.160
and bypass

39:45.160 --> 39:45.920
the

39:45.920 --> 39:46.520
client-side

39:46.520 --> 39:47.000
sandbox

39:47.000 --> 39:48.060
by running

39:48.060 --> 39:48.760
trusted

39:48.760 --> 39:49.260
within the

39:49.260 --> 39:49.900
local zone

39:49.900 --> 39:50.920
and possibly

39:50.920 --> 39:51.800
exploiting the

39:51.800 --> 39:52.540
entire system

39:52.540 --> 39:52.860
now

39:52.860 --> 39:53.700
what that

39:53.700 --> 39:54.100
means

39:54.100 --> 39:54.760
is that

39:54.760 --> 39:55.680
if any

39:55.680 --> 39:55.960
of the

39:55.960 --> 39:56.240
code

39:56.240 --> 39:56.720
is run

39:56.720 --> 39:57.100
locally

39:57.100 --> 39:57.680
like let's

39:57.680 --> 39:58.080
say you

39:58.080 --> 39:58.500
go through

39:58.500 --> 39:58.900
and open

39:58.900 --> 39:59.260
up an

39:59.260 --> 39:59.760
HTML

39:59.760 --> 40:00.360
file

40:00.360 --> 40:01.220
locally

40:01.220 --> 40:01.620
on your

40:01.620 --> 40:02.000
computer

40:02.000 --> 40:02.440
like you

40:02.440 --> 40:02.840
save a

40:02.840 --> 40:03.260
file and

40:03.260 --> 40:03.700
open it

40:03.700 --> 40:03.960
up

40:03.960 --> 40:04.960
you can

40:04.960 --> 40:05.680
go through

40:05.680 --> 40:06.340
and at

40:06.340 --> 40:06.960
that point

40:06.960 --> 40:07.880
an HTML

40:07.880 --> 40:08.900
file that

40:08.900 --> 40:09.380
you open

40:09.380 --> 40:09.740
on your

40:09.740 --> 40:10.180
system

40:10.180 --> 40:11.180
is inherently

40:11.180 --> 40:12.220
trusted by

40:12.220 --> 40:12.600
Windows

40:12.600 --> 40:14.100
so you

40:14.100 --> 40:14.500
can go

40:14.500 --> 40:15.060
through and

40:15.060 --> 40:15.440
have a

40:15.440 --> 40:15.840
JavaScript

40:15.840 --> 40:16.500
snippet

40:16.500 --> 40:16.940
in that

40:16.940 --> 40:17.420
page

40:17.420 --> 40:18.080
that will

40:18.080 --> 40:18.440
remotely

40:18.440 --> 40:19.560
go back

40:19.560 --> 40:20.480
grab code

40:20.480 --> 40:21.100
and execute

40:21.100 --> 40:21.640
it locally

40:21.640 --> 40:22.360
that would

40:22.360 --> 40:22.780
allow it

40:22.780 --> 40:23.140
to say

40:23.140 --> 40:24.140
have access

40:24.140 --> 40:24.700
to files

40:24.700 --> 40:25.000
on your

40:25.000 --> 40:25.600
hard drive

40:25.600 --> 40:27.160
and go

40:27.160 --> 40:27.520
through

40:27.520 --> 40:28.200
grab the

40:28.200 --> 40:28.640
contents

40:28.640 --> 40:29.100
of those

40:29.100 --> 40:29.740
and put

40:29.740 --> 40:30.000
it on

40:30.000 --> 40:30.280
another

40:30.280 --> 40:30.680
site

40:30.680 --> 40:31.960
now

40:31.960 --> 40:32.500
that's

40:32.500 --> 40:32.980
fairly

40:32.980 --> 40:33.340
rare

40:33.340 --> 40:33.680
in that

40:33.680 --> 40:33.920
you'd

40:33.920 --> 40:34.220
actually

40:34.220 --> 40:34.620
have to

40:34.620 --> 40:34.860
have

40:34.860 --> 40:35.020
an

40:35.020 --> 40:35.480
HTML

40:35.480 --> 40:35.980
page

40:35.980 --> 40:36.400
locally

40:36.400 --> 40:36.700
on

40:36.700 --> 40:36.880
the

40:36.880 --> 40:37.140
user

40:37.140 --> 40:37.680
system

40:37.680 --> 40:38.440
that

40:38.440 --> 40:38.640
they

40:38.640 --> 40:38.800
would

40:38.800 --> 40:39.100
open

40:39.100 --> 40:39.420
up

40:39.420 --> 40:40.160
but you

40:40.160 --> 40:40.300
could

40:40.300 --> 40:40.500
do

40:40.500 --> 40:40.800
something

40:40.800 --> 40:41.140
like

40:41.140 --> 40:41.540
have

40:41.540 --> 40:41.800
say

40:41.800 --> 40:41.940
an

40:41.940 --> 40:42.420
HTML

40:42.420 --> 40:42.960
or

40:42.960 --> 40:43.580
HTML

40:43.580 --> 40:44.120
file

40:44.120 --> 40:44.820
or

40:44.820 --> 40:45.080
something

40:45.080 --> 40:45.360
like

40:45.360 --> 40:45.660
that

40:45.660 --> 40:45.880
that

40:45.880 --> 40:46.120
wouldn't

40:46.120 --> 40:46.400
open

40:46.400 --> 40:46.620
by

40:46.620 --> 40:47.140
default

40:47.140 --> 40:48.520
or have

40:48.520 --> 40:48.840
a link

40:48.840 --> 40:49.020
where

40:49.020 --> 40:49.360
somebody

40:49.360 --> 40:49.740
saves

40:49.740 --> 40:49.900
a

40:49.900 --> 40:50.200
file

40:50.200 --> 40:50.740
and

40:50.740 --> 40:50.900
just

40:50.900 --> 40:51.120
save

40:51.120 --> 40:51.240
the

40:51.240 --> 40:51.680
HTML

40:51.680 --> 40:52.040
file

40:52.040 --> 40:52.180
and

40:52.180 --> 40:52.440
open

40:52.440 --> 40:52.580
it

40:52.580 --> 40:52.680
in

40:52.680 --> 40:52.780
the

40:52.780 --> 40:53.120
browser

40:53.120 --> 40:53.720
and

40:53.720 --> 40:53.840
at

40:53.840 --> 40:54.080
that

40:54.080 --> 40:54.420
point

40:54.420 --> 40:55.120
you

40:55.120 --> 40:55.280
can

40:55.280 --> 40:55.800
essentially

40:55.800 --> 40:56.720
root

40:56.720 --> 40:56.920
their

40:56.920 --> 40:57.460
box

40:57.460 --> 40:58.840
from

40:58.840 --> 40:59.060
your

40:59.060 --> 40:59.340
script

40:59.340 --> 40:59.680
alone

40:59.680 --> 40:59.900
so

40:59.900 --> 41:00.080
this

41:00.080 --> 41:00.340
isn't

41:00.340 --> 41:00.540
like

41:00.540 --> 41:01.280
drive-by

41:01.280 --> 41:02.400
downloads

41:02.400 --> 41:02.880
and stuff

41:02.880 --> 41:03.340
like that

41:03.340 --> 41:04.080
it's a little

41:04.080 --> 41:04.460
bit more

41:04.460 --> 41:04.920
complex

41:04.920 --> 41:05.580
and one

41:05.580 --> 41:05.800
of the

41:05.800 --> 41:06.100
lesser

41:06.100 --> 41:07.320
seen

41:07.320 --> 41:09.700
cross-site

41:09.700 --> 41:10.200
scripting

41:10.200 --> 41:10.840
exploits

41:10.840 --> 41:11.500
but it's

41:11.500 --> 41:11.660
still

41:11.660 --> 41:12.240
possible

41:12.240 --> 41:13.060
and

41:13.060 --> 41:14.560
basically

41:14.560 --> 41:15.340
a famous

41:15.340 --> 41:15.720
example

41:15.720 --> 41:16.160
for that

41:16.160 --> 41:16.380
one

41:16.380 --> 41:16.680
was

41:16.680 --> 41:19.440
Google

41:19.440 --> 41:20.000
had a

41:20.000 --> 41:20.360
website

41:20.360 --> 41:20.800
that was

41:20.800 --> 41:21.400
identified

41:21.400 --> 41:22.040
and published

41:22.040 --> 41:22.620
by

41:22.620 --> 41:23.060
Yer

41:23.060 --> 41:23.560
Amit

41:23.560 --> 41:23.800
in

41:23.800 --> 41:24.400
December

41:24.400 --> 41:25.160
2005

41:25.160 --> 41:25.940
and

41:25.940 --> 41:26.080
the

41:26.080 --> 41:26.780
vulnerabilities

41:26.780 --> 41:27.200
allowed

41:27.200 --> 41:27.340
an

41:27.340 --> 41:27.680
attacker

41:27.680 --> 41:27.980
to

41:27.980 --> 41:28.500
impersonate

41:28.500 --> 41:28.920
legitimate

41:28.920 --> 41:29.340
members

41:29.340 --> 41:29.520
of

41:29.520 --> 41:29.760
Google

41:29.760 --> 41:30.440
services

41:30.440 --> 41:31.040
or

41:31.040 --> 41:31.240
mount

41:31.240 --> 41:31.480
like

41:31.480 --> 41:32.000
phishing

41:32.000 --> 41:32.380
attacks

41:32.380 --> 41:32.520
and

41:32.520 --> 41:32.780
whatnot

41:32.780 --> 41:34.100
and

41:34.100 --> 41:34.820
basically

41:34.820 --> 41:35.200
the way

41:35.200 --> 41:35.340
they

41:35.340 --> 41:35.520
did

41:35.520 --> 41:35.780
that

41:35.780 --> 41:35.980
is

41:35.980 --> 41:36.160
they

41:36.160 --> 41:36.880
bypassed

41:36.880 --> 41:37.260
common

41:37.260 --> 41:37.760
cross-site

41:37.760 --> 41:38.180
scripting

41:38.180 --> 41:38.800
countermeasures

41:38.800 --> 41:39.440
by using

41:39.440 --> 41:40.000
UTF

41:40.000 --> 41:40.400
encoded

41:40.400 --> 41:41.020
payloads

41:41.020 --> 41:41.440
and

41:41.440 --> 41:41.560
I'll

41:41.560 --> 41:41.720
get

41:41.720 --> 41:41.900
into

41:41.900 --> 41:42.100
that

41:42.100 --> 41:42.240
a

41:42.240 --> 41:42.340
little

41:42.340 --> 41:42.560
bit

41:42.560 --> 41:42.880
later

41:42.880 --> 41:43.200
on

41:43.200 --> 41:43.460
but

41:43.460 --> 41:43.980
it's

41:43.980 --> 41:44.140
how

41:44.140 --> 41:44.500
browsers

41:44.500 --> 41:44.960
actually

41:44.960 --> 41:45.540
interpret

41:45.540 --> 41:46.140
Unicode

41:46.140 --> 41:46.460
if they

41:46.460 --> 41:46.840
properly

41:46.840 --> 41:47.280
interpret

41:47.280 --> 41:47.820
Unicode

41:47.820 --> 41:49.240
you can

41:49.240 --> 41:49.460
go

41:49.460 --> 41:49.720
through

41:49.720 --> 41:49.960
and

41:49.960 --> 41:50.900
alternately

41:50.900 --> 41:51.940
encode

41:51.940 --> 41:52.580
information

41:52.580 --> 41:52.980
so

41:52.980 --> 41:53.120
that

41:53.120 --> 41:53.360
it's

41:53.360 --> 41:53.940
launched

41:53.940 --> 41:57.360
I'm

41:57.360 --> 41:57.480
sorry

41:57.480 --> 41:57.640
I was

41:57.640 --> 41:57.740
going to

41:57.740 --> 41:57.840
say

41:57.840 --> 41:58.280
since

41:58.280 --> 41:58.440
you

41:58.440 --> 41:59.280
mentioned

41:59.280 --> 41:59.520
that

41:59.520 --> 42:00.020
that's

42:00.020 --> 42:00.260
actually

42:00.260 --> 42:00.520
something

42:00.520 --> 42:00.740
we

42:00.740 --> 42:01.000
probably

42:01.000 --> 42:01.240
should

42:01.240 --> 42:01.380
do

42:01.380 --> 42:01.500
an

42:01.500 --> 42:01.780
episode

42:01.780 --> 42:02.100
on

42:02.100 --> 42:02.280
just

42:02.280 --> 42:02.620
talking

42:02.620 --> 42:02.960
about

42:02.960 --> 42:03.640
different

42:03.640 --> 42:04.120
encoding

42:04.120 --> 42:04.360
and

42:04.360 --> 42:04.580
how

42:04.580 --> 42:04.740
it

42:04.740 --> 42:05.120
relates

42:05.120 --> 42:05.460
to

42:05.460 --> 42:06.460
navigation

42:06.460 --> 42:06.860
on

42:06.860 --> 42:06.960
the

42:06.960 --> 42:07.200
global

42:07.200 --> 42:07.660
interweb

42:07.660 --> 42:07.760
and

42:07.760 --> 42:07.940
stuff

42:07.940 --> 42:08.120
because

42:08.120 --> 42:08.240
there

42:08.240 --> 42:08.380
are

42:08.380 --> 42:08.600
a lot

42:08.600 --> 42:08.700
of

42:08.700 --> 42:09.040
nuances

42:09.040 --> 42:09.260
and

42:09.260 --> 42:09.600
interesting

42:09.600 --> 42:09.960
things

42:09.960 --> 42:10.280
there

42:10.280 --> 42:11.620
yeah

42:11.620 --> 42:11.840
I'd

42:11.840 --> 42:11.960
be

42:11.960 --> 42:12.800
happy

42:12.800 --> 42:12.960
to

42:12.960 --> 42:13.100
go

42:13.100 --> 42:13.260
into

42:13.260 --> 42:13.580
something

42:13.580 --> 42:14.300
like

42:14.300 --> 42:14.540
that

42:14.540 --> 42:14.680
at

42:14.680 --> 42:14.800
a

42:14.800 --> 42:14.960
later

42:14.960 --> 42:15.280
date

42:15.280 --> 42:15.580
because

42:15.580 --> 42:16.440
I've

42:16.440 --> 42:16.580
dealt

42:16.580 --> 42:16.720
with

42:16.720 --> 42:16.880
that

42:16.880 --> 42:17.180
a

42:17.180 --> 42:17.380
few

42:17.380 --> 42:17.720
different

42:17.720 --> 42:18.060
times

42:18.060 --> 42:18.280
like

42:18.280 --> 42:18.440
when

42:18.440 --> 42:18.580
I

42:18.580 --> 42:18.760
went

42:18.760 --> 42:19.100
to

42:19.100 --> 42:20.160
my

42:20.160 --> 42:21.480
SQL

42:21.480 --> 42:21.960
injection

42:21.960 --> 42:22.680
presentation

42:22.680 --> 42:23.080
a while

42:23.080 --> 42:23.380
ago

42:23.380 --> 42:23.720
we

42:23.720 --> 42:24.600
got

42:24.600 --> 42:25.040
into

42:25.040 --> 42:26.060
canonical

42:26.060 --> 42:26.500
names

42:26.500 --> 42:26.800
and what

42:26.800 --> 42:26.980
not

42:26.980 --> 42:27.220
a little

42:27.220 --> 42:27.500
bit

42:27.500 --> 42:28.820
but

42:28.820 --> 42:29.700
like I

42:29.700 --> 42:29.860
said

42:29.860 --> 42:30.400
I just

42:30.400 --> 42:30.780
wanted to

42:30.780 --> 42:31.260
go over

42:31.260 --> 42:31.800
essentially

42:31.800 --> 42:32.320
what

42:32.320 --> 42:33.520
the first

42:33.520 --> 42:33.760
type

42:33.760 --> 42:34.400
would be

42:34.400 --> 42:35.380
it's not

42:35.380 --> 42:35.820
seen that

42:35.820 --> 42:36.060
much

42:36.060 --> 42:36.480
I haven't

42:36.480 --> 42:37.000
really found

42:37.000 --> 42:37.300
a use

42:37.300 --> 42:37.700
for doing

42:37.700 --> 42:38.000
something

42:38.000 --> 42:38.640
like that

42:38.640 --> 42:40.000
but

42:40.000 --> 42:42.040
it exists

42:42.040 --> 42:42.600
so I

42:42.600 --> 42:43.080
just felt

42:43.080 --> 42:43.420
I had

42:43.420 --> 42:43.680
to go

42:43.680 --> 42:43.860
over

42:43.860 --> 42:44.140
that

42:44.140 --> 42:44.900
the second

42:44.900 --> 42:45.260
type

42:45.260 --> 42:45.680
which is

42:45.680 --> 42:46.280
pretty much

42:46.280 --> 42:46.680
the most

42:46.680 --> 42:47.040
common

42:47.040 --> 42:47.280
one

42:47.280 --> 42:47.500
is

42:47.500 --> 42:48.820
non-persistent

42:48.820 --> 42:49.480
or reflected

42:49.480 --> 42:50.060
vulnerability

42:50.060 --> 42:51.180
and

42:51.180 --> 42:51.860
that

42:51.860 --> 42:52.300
basically

42:52.300 --> 42:52.920
injects

42:52.920 --> 42:53.300
code

42:53.300 --> 42:54.100
on a

42:54.100 --> 42:54.400
URL

42:54.400 --> 42:54.980
to a

42:54.980 --> 42:55.180
third

42:55.180 --> 42:55.600
party

42:55.600 --> 42:56.300
site

42:56.300 --> 42:57.380
and

42:57.380 --> 42:57.700
you

42:57.700 --> 42:58.020
embed

42:58.020 --> 42:58.280
it

42:58.280 --> 42:59.460
for instance

42:59.460 --> 42:59.820
you could

42:59.820 --> 43:00.300
go through

43:00.300 --> 43:01.120
and send

43:01.120 --> 43:01.540
somebody

43:01.540 --> 43:03.360
a URL

43:03.360 --> 43:03.920
encoded

43:03.920 --> 43:04.980
or standard

43:04.980 --> 43:05.600
script

43:05.600 --> 43:06.100
tag

43:06.100 --> 43:08.160
embedded

43:08.160 --> 43:08.680
in

43:08.680 --> 43:09.520
I mean

43:09.520 --> 43:09.760
like

43:09.760 --> 43:10.200
it doesn't

43:10.200 --> 43:10.460
have to

43:10.460 --> 43:10.620
be

43:10.620 --> 43:10.960
URL

43:10.960 --> 43:11.340
encoded

43:11.340 --> 43:11.740
you could

43:11.740 --> 43:12.220
encode

43:12.220 --> 43:12.440
it

43:12.440 --> 43:13.200
through

43:13.200 --> 43:13.520
a couple

43:13.520 --> 43:13.860
different

43:13.860 --> 43:14.480
mechanisms

43:14.480 --> 43:15.160
but

43:15.160 --> 43:16.060
essentially

43:16.060 --> 43:16.580
you just

43:16.580 --> 43:16.960
send the

43:16.960 --> 43:17.120
link

43:17.120 --> 43:17.640
to somebody

43:17.640 --> 43:18.060
say

43:18.060 --> 43:18.800
you know

43:18.800 --> 43:19.840
Citibank

43:19.840 --> 43:20.400
password

43:20.400 --> 43:21.060
change

43:21.060 --> 43:21.460
or whatever

43:21.460 --> 43:21.980
like that

43:21.980 --> 43:22.540
and they

43:22.540 --> 43:22.920
show you

43:22.920 --> 43:23.340
the link

43:23.340 --> 43:23.840
and even

43:23.840 --> 43:24.160
if you

43:24.160 --> 43:24.480
look at

43:24.480 --> 43:25.040
the location

43:25.040 --> 43:25.400
of the

43:25.400 --> 43:25.600
link

43:25.600 --> 43:26.360
it shows

43:26.360 --> 43:26.780
that it's

43:26.780 --> 43:27.300
Citibank

43:27.300 --> 43:28.120
so it

43:28.120 --> 43:28.600
really looks

43:28.600 --> 43:29.120
legit

43:29.120 --> 43:29.680
and along

43:29.680 --> 43:29.960
with

43:29.960 --> 43:30.800
you know

43:30.800 --> 43:31.640
forging

43:31.640 --> 43:32.460
mail headers

43:32.460 --> 43:32.760
and what

43:32.760 --> 43:33.080
not like

43:33.080 --> 43:33.320
that

43:33.320 --> 43:33.880
I remember

43:33.880 --> 43:34.340
back in

43:34.340 --> 43:34.580
the day

43:34.580 --> 43:34.820
when I

43:34.820 --> 43:35.180
used to

43:35.180 --> 43:36.240
send

43:36.240 --> 43:37.120
emails

43:37.120 --> 43:37.560
from

43:37.560 --> 43:39.180
Christina

43:39.180 --> 43:39.840
Christina

43:39.840 --> 43:40.260
Aguilera

43:40.260 --> 43:40.820
dot com

43:40.820 --> 43:41.280
or Brittany

43:41.280 --> 43:41.660
at Brittany

43:41.660 --> 43:42.100
Spears

43:42.100 --> 43:42.540
dot com

43:42.540 --> 43:42.800
to some

43:42.800 --> 43:42.980
of my

43:42.980 --> 43:43.320
friends

43:43.320 --> 43:44.080
so it's

43:44.080 --> 43:44.660
fairly easy

43:44.660 --> 43:45.220
to actually

43:45.220 --> 43:46.420
forge emails

43:46.420 --> 43:48.500
and you go

43:48.500 --> 43:48.920
through and

43:48.920 --> 43:50.220
say here's a

43:50.220 --> 43:51.060
link from Citibank

43:51.060 --> 43:51.600
to change your

43:51.600 --> 43:51.960
password

43:51.960 --> 43:52.920
it's actually

43:52.920 --> 43:53.540
really the

43:53.540 --> 43:54.080
Citibank

43:54.080 --> 43:55.160
change password

43:55.160 --> 43:55.740
page

43:55.740 --> 43:56.620
but it's

43:56.620 --> 43:57.120
loading your

43:57.120 --> 43:57.540
script at

43:57.540 --> 43:57.980
the end

43:57.980 --> 43:58.880
grabbing the

43:58.880 --> 43:59.180
cookie

43:59.180 --> 44:00.080
and doing

44:00.080 --> 44:00.600
other malicious

44:00.600 --> 44:01.140
things

44:01.140 --> 44:01.720
right

44:01.720 --> 44:02.240
and you

44:02.240 --> 44:02.980
actually gave

44:02.980 --> 44:04.420
an example

44:04.420 --> 44:04.820
here that

44:04.820 --> 44:05.060
I'm going

44:05.060 --> 44:05.480
to read

44:05.480 --> 44:05.820
for the

44:05.820 --> 44:06.060
audience

44:06.060 --> 44:06.360
to look

44:06.360 --> 44:06.620
at

44:06.620 --> 44:07.780
and we

44:07.780 --> 44:08.140
put it

44:08.140 --> 44:08.560
I actually

44:08.560 --> 44:09.600
tinyurled it

44:09.600 --> 44:10.820
tinyurled.com

44:10.820 --> 44:11.800
Y

44:11.800 --> 44:12.760
U

44:12.760 --> 44:13.640
G

44:13.640 --> 44:14.600
M

44:14.600 --> 44:15.500
3

44:15.500 --> 44:16.440
G

44:16.440 --> 44:17.480
so if you

44:17.480 --> 44:17.760
want to do

44:17.760 --> 44:17.900
that

44:17.900 --> 44:18.200
that's a

44:18.200 --> 44:19.180
simple

44:19.180 --> 44:20.160
example

44:20.160 --> 44:21.060
but it

44:21.060 --> 44:21.560
shows you

44:21.560 --> 44:22.220
that basically

44:22.220 --> 44:22.660
you are

44:22.660 --> 44:23.080
simply

44:23.080 --> 44:23.780
going up

44:23.780 --> 44:24.620
to the

44:24.620 --> 44:25.740
URL box

44:25.740 --> 44:26.060
up there

44:26.060 --> 44:26.820
your navigation

44:26.820 --> 44:27.240
bar

44:27.240 --> 44:27.920
and you

44:27.920 --> 44:28.320
are putting

44:28.320 --> 44:28.820
in

44:28.820 --> 44:30.380
an HTTP

44:30.380 --> 44:30.820
request

44:30.820 --> 44:31.220
to the

44:31.220 --> 44:31.540
site

44:31.540 --> 44:31.980
but you

44:31.980 --> 44:32.700
are slipping

44:32.700 --> 44:33.440
in some

44:33.440 --> 44:33.860
code

44:33.860 --> 44:34.780
injecting

44:34.780 --> 44:35.280
some code

44:35.280 --> 44:35.660
in there

44:35.660 --> 44:36.380
that's going

44:36.380 --> 44:37.680
to in

44:37.680 --> 44:38.180
this case

44:38.180 --> 44:38.700
just pop

44:38.700 --> 44:39.120
up a little

44:39.120 --> 44:39.620
message

44:39.620 --> 44:40.980
but it's

44:40.980 --> 44:41.380
using the

44:41.380 --> 44:41.600
same

44:41.600 --> 44:42.320
formatting

44:42.320 --> 44:43.300
well using

44:43.300 --> 44:43.720
the proper

44:43.720 --> 44:44.220
formatting

44:44.220 --> 44:44.560
I should

44:44.560 --> 44:44.780
say

44:44.780 --> 44:45.000
it could

44:45.000 --> 44:45.400
be a lot

44:45.400 --> 44:45.840
more

44:45.840 --> 44:47.600
damaging

44:47.600 --> 44:48.260
I guess

44:48.260 --> 44:48.580
for lack

44:48.580 --> 44:48.840
of a better

44:48.840 --> 44:49.140
word

44:49.140 --> 44:50.080
yeah

44:50.080 --> 44:50.440
that's

44:50.440 --> 44:51.080
one thing

44:51.080 --> 44:51.320
that I

44:51.320 --> 44:51.600
did want

44:51.600 --> 44:52.020
to stress

44:52.020 --> 44:52.960
this tiny

44:52.960 --> 44:53.740
URL link

44:53.740 --> 44:54.440
is just

44:54.440 --> 44:54.780
going to

44:54.780 --> 44:55.460
exploit one

44:55.460 --> 44:55.760
I mean

44:55.760 --> 44:57.060
one of the

44:57.060 --> 44:58.060
most common

44:58.060 --> 44:58.540
examples

44:58.540 --> 44:59.320
is using

44:59.320 --> 44:59.760
a search

44:59.760 --> 45:00.120
engine

45:00.120 --> 45:00.740
you know

45:00.740 --> 45:01.360
like hey

45:01.360 --> 45:01.940
I searched

45:01.940 --> 45:02.360
for this

45:02.360 --> 45:02.680
and most

45:02.680 --> 45:03.100
of the time

45:03.100 --> 45:03.460
most of

45:03.460 --> 45:03.800
the search

45:03.800 --> 45:04.280
data is

45:04.280 --> 45:04.960
URL encoded

45:04.960 --> 45:05.420
anyways

45:05.420 --> 45:06.420
people use

45:06.420 --> 45:07.180
spaces and

45:07.180 --> 45:07.920
special characters

45:07.920 --> 45:08.460
and everything

45:08.460 --> 45:09.720
so it doesn't

45:09.720 --> 45:10.280
really look out

45:10.280 --> 45:10.760
of place

45:10.760 --> 45:11.540
it's especially

45:11.540 --> 45:12.580
prevalent in that

45:12.580 --> 45:14.340
so in this

45:14.340 --> 45:14.880
case I went

45:14.880 --> 45:15.200
through and

45:15.200 --> 45:16.000
actually Google

45:16.000 --> 45:16.500
and Yahoo

45:16.500 --> 45:17.220
strip it out

45:17.220 --> 45:18.060
now and I

45:18.060 --> 45:18.520
tried a couple

45:18.520 --> 45:19.400
different attacks

45:19.400 --> 45:21.540
and I mean

45:21.540 --> 45:22.100
not attacks

45:22.100 --> 45:22.660
I was playing

45:22.660 --> 45:23.240
I was playing

45:23.240 --> 45:23.980
don't sue me

45:23.980 --> 45:26.040
but

45:26.040 --> 45:27.840
or put me

45:27.840 --> 45:28.240
in prison

45:28.240 --> 45:28.880
I want to

45:28.880 --> 45:29.160
go to

45:29.160 --> 45:30.240
federal prison

45:30.240 --> 45:32.760
but basically

45:32.760 --> 45:33.540
I went through

45:33.540 --> 45:34.180
and somebody

45:34.180 --> 45:35.000
recently turned

45:35.000 --> 45:35.480
me on to

45:35.480 --> 45:36.060
that particular

45:36.060 --> 45:36.800
search engine

45:36.800 --> 45:37.680
and the

45:37.680 --> 45:38.320
search assistants

45:38.320 --> 45:39.080
are less

45:39.080 --> 45:39.720
than helpful

45:39.720 --> 45:41.040
so I

45:41.040 --> 45:41.680
on a whim

45:41.680 --> 45:42.280
decided to

45:42.280 --> 45:42.740
check out

45:42.740 --> 45:43.200
that one

45:43.200 --> 45:44.720
and wonder

45:44.720 --> 45:45.300
of wonders

45:45.300 --> 45:46.040
the poorly

45:46.040 --> 45:46.580
formatted

45:46.580 --> 45:47.240
search engine

45:47.240 --> 45:48.680
actually ended

45:48.680 --> 45:49.420
up exploiting

45:49.420 --> 45:49.920
my code

45:49.920 --> 45:52.420
or my code

45:52.420 --> 45:53.200
exploited it

45:53.200 --> 45:54.720
so that

45:54.720 --> 45:55.320
was just

45:55.320 --> 45:55.940
one example

45:55.940 --> 45:56.800
it's all

45:56.800 --> 45:57.340
over the place

45:57.340 --> 45:57.800
if you

45:57.800 --> 45:58.680
play around

45:58.680 --> 45:59.140
with different

45:59.140 --> 45:59.720
search engines

45:59.720 --> 46:00.340
you can probably

46:00.340 --> 46:01.000
find a lot

46:01.000 --> 46:01.780
and use some

46:01.780 --> 46:02.400
of the examples

46:02.400 --> 46:02.880
that we go

46:02.880 --> 46:03.800
into later on

46:03.800 --> 46:05.640
but yeah

46:05.640 --> 46:06.700
this is probably

46:06.700 --> 46:07.360
the most common

46:07.360 --> 46:07.900
like phishing

46:07.900 --> 46:08.380
attack

46:08.380 --> 46:09.360
in that you

46:09.360 --> 46:09.900
know they can

46:09.900 --> 46:10.280
go through

46:10.280 --> 46:10.920
and spam this

46:10.920 --> 46:11.360
to like a

46:11.360 --> 46:12.160
gazillion people

46:12.160 --> 46:13.020
and the five

46:13.020 --> 46:13.460
that click

46:13.460 --> 46:13.840
on it

46:13.840 --> 46:14.700
it's not even

46:14.700 --> 46:15.240
and this is

46:15.240 --> 46:15.760
like the next

46:15.760 --> 46:16.020
step

46:16.020 --> 46:16.940
one of the

46:16.940 --> 46:17.320
you know

46:17.320 --> 46:17.980
more popular

46:17.980 --> 46:18.560
ones that's

46:18.560 --> 46:19.280
already out there

46:19.280 --> 46:19.680
that a lot

46:19.680 --> 46:19.980
of people

46:19.980 --> 46:20.420
know of

46:20.420 --> 46:21.320
is they'll

46:21.320 --> 46:21.740
send you

46:21.740 --> 46:22.060
you know

46:22.060 --> 46:22.540
you need

46:22.540 --> 46:22.900
to change

46:22.900 --> 46:23.480
your paypal

46:23.480 --> 46:23.780
account

46:23.780 --> 46:24.240
or something

46:24.240 --> 46:24.560
else

46:24.560 --> 46:24.840
and it'll

46:24.840 --> 46:25.260
be like

46:25.260 --> 46:27.020
xyz.biz

46:27.020 --> 46:27.380
you know

46:27.380 --> 46:27.860
like Sank

46:27.860 --> 46:28.220
was saying

46:28.220 --> 46:28.580
earlier

46:28.580 --> 46:28.980
you know

46:28.980 --> 46:29.580
you're going

46:29.580 --> 46:29.940
to think

46:29.940 --> 46:31.120
oh of course

46:31.120 --> 46:31.620
this is a

46:31.620 --> 46:32.380
phishing attack

46:32.380 --> 46:34.260
well and there's

46:34.260 --> 46:35.180
other indicators

46:35.180 --> 46:35.740
I mean first

46:35.740 --> 46:36.160
of all any

46:36.160 --> 46:37.320
long url

46:37.320 --> 46:37.760
you should be

46:37.760 --> 46:38.260
phishing about

46:38.260 --> 46:38.520
anyway

46:38.520 --> 46:38.940
if it's got

46:38.940 --> 46:39.300
a bunch

46:39.300 --> 46:40.420
of what

46:40.420 --> 46:40.940
appears to

46:40.940 --> 46:41.540
be gibberish

46:41.540 --> 46:42.180
you know

46:42.180 --> 46:42.700
different hex

46:42.700 --> 46:43.040
codes

46:43.040 --> 46:43.620
or different

46:43.620 --> 46:45.300
offsets

46:45.300 --> 46:45.660
for different

46:45.660 --> 46:46.060
characters

46:46.060 --> 46:46.520
that you

46:46.520 --> 46:46.980
can't really

46:46.980 --> 46:47.560
put into

46:47.560 --> 46:49.340
well anyway

46:49.340 --> 46:49.740
it goes back

46:49.740 --> 46:50.200
to encoding

46:50.200 --> 46:50.560
which we're

46:50.560 --> 46:50.800
not going

46:50.800 --> 46:51.040
to go to

46:51.040 --> 46:51.340
that again

46:51.340 --> 46:51.660
but if you

46:51.660 --> 46:52.160
see a long

46:52.160 --> 46:52.860
url is what

46:52.860 --> 46:53.140
I'm getting

46:53.140 --> 46:53.680
at you

46:53.680 --> 46:54.020
should be

46:54.020 --> 46:54.440
suspicious

46:54.440 --> 46:54.820
because you

46:54.820 --> 46:55.080
don't know

46:55.080 --> 46:55.400
what all

46:55.400 --> 46:55.740
it's going

46:55.740 --> 46:56.360
to be doing

46:56.360 --> 46:57.780
so anytime

46:57.780 --> 46:58.220
you see a

46:58.220 --> 46:59.280
long url

46:59.280 --> 47:00.000
from anywhere

47:00.000 --> 47:00.700
whether it's

47:00.700 --> 47:01.220
Citibank

47:01.220 --> 47:01.580
PayPal

47:01.580 --> 47:02.160
or whatever

47:02.160 --> 47:03.080
you should all

47:03.080 --> 47:03.280
be

47:03.280 --> 47:04.280
it doesn't

47:04.280 --> 47:05.320
matter where

47:05.320 --> 47:05.660
it's from

47:05.660 --> 47:06.180
like if you

47:06.180 --> 47:06.720
see a long

47:06.720 --> 47:07.240
url

47:07.240 --> 47:08.600
go to the

47:08.600 --> 47:09.240
actual you

47:09.240 --> 47:10.280
know specific

47:10.280 --> 47:11.480
url yourself

47:11.480 --> 47:12.440
and check it

47:12.440 --> 47:13.020
out if it's a

47:13.020 --> 47:13.660
url that you

47:13.660 --> 47:15.060
trust but don't

47:15.060 --> 47:16.380
trust any link

47:16.380 --> 47:17.020
even if the

47:17.020 --> 47:17.640
email looks

47:17.640 --> 47:18.840
legit even if

47:18.840 --> 47:19.720
the root domain

47:19.720 --> 47:20.860
is your actual

47:20.860 --> 47:21.660
you know bank

47:21.660 --> 47:22.780
PayPal or

47:22.780 --> 47:23.440
whatever else

47:23.440 --> 47:24.380
because the

47:24.380 --> 47:24.780
thing that I

47:24.780 --> 47:25.260
wanted to drive

47:25.260 --> 47:25.920
home is most

47:25.920 --> 47:26.800
people will still

47:26.800 --> 47:27.940
see this and

47:27.940 --> 47:28.440
they'll go oh

47:28.440 --> 47:29.380
well it must not

47:29.380 --> 47:29.860
be a phishing

47:29.860 --> 47:30.460
attack because

47:30.460 --> 47:31.100
it's actually

47:31.100 --> 47:31.940
from Citibank

47:31.940 --> 47:32.340
right

47:32.340 --> 47:32.640
you know

47:32.640 --> 47:33.220
right

47:33.220 --> 47:34.720
and the

47:34.720 --> 47:35.700
there is a

47:35.700 --> 47:36.140
limit of how

47:36.140 --> 47:36.480
much you can

47:36.480 --> 47:37.440
put in a

47:37.440 --> 47:38.160
domain in a

47:38.160 --> 47:38.640
string like

47:38.640 --> 47:39.200
that it's

47:39.200 --> 47:39.640
there's going

47:39.640 --> 47:39.840
to be a

47:39.840 --> 47:40.840
limit but the

47:40.840 --> 47:41.380
example that

47:41.380 --> 47:41.880
we're using

47:41.880 --> 47:42.940
here is is

47:42.940 --> 47:43.340
again very

47:43.340 --> 47:44.280
simple just a

47:44.280 --> 47:45.560
confirmation box

47:45.560 --> 47:46.220
that pops up

47:46.220 --> 47:47.860
but the point

47:47.860 --> 47:48.600
being that's just

47:48.600 --> 47:49.080
a simple

47:49.080 --> 47:49.840
illustration that

47:49.840 --> 47:50.580
could easily be

47:50.580 --> 47:51.300
grabbing that

47:51.300 --> 47:52.160
and doing a

47:52.160 --> 47:53.200
remote insert into

47:53.200 --> 47:54.440
meaflux's box or

47:54.440 --> 47:55.360
someone else's box

47:55.360 --> 47:57.060
somewhere else so

47:57.060 --> 47:58.120
it could be doing a

47:58.120 --> 47:59.460
whole lot more so

47:59.460 --> 48:00.280
that's why you want

48:00.280 --> 48:00.940
to worry the longer

48:00.940 --> 48:01.860
it is the more it's

48:01.860 --> 48:03.080
probably trying to do

48:03.080 --> 48:04.800
now actually I have

48:04.800 --> 48:05.600
a question for you

48:05.600 --> 48:06.040
on this

48:06.040 --> 48:07.480
I mean this is a

48:07.480 --> 48:08.200
form of URL

48:08.200 --> 48:09.060
manipulation which

48:09.060 --> 48:09.760
I've written articles

48:09.760 --> 48:10.460
about in the past

48:10.460 --> 48:11.480
and I always love

48:11.480 --> 48:12.880
just I love messing

48:12.880 --> 48:13.840
with URLs when I go

48:13.840 --> 48:14.560
to different sites to

48:14.560 --> 48:15.240
see what I can get

48:15.240 --> 48:18.620
into so my question

48:18.620 --> 48:19.340
to this is okay

48:19.340 --> 48:21.480
that's one form is a

48:21.480 --> 48:22.320
get request well what

48:22.320 --> 48:23.460
can I actually use

48:23.460 --> 48:25.160
post parameters to do

48:25.160 --> 48:25.980
the same thing can I

48:25.980 --> 48:27.200
actually inject script

48:27.200 --> 48:28.460
this same type of

48:28.460 --> 48:31.060
script using a post to

48:31.060 --> 48:33.400
a website yeah and I'm

48:33.400 --> 48:34.160
going to get into that

48:34.160 --> 48:35.180
a little bit later on

48:35.180 --> 48:36.140
when I actually start

48:36.140 --> 48:37.220
getting more into like

48:37.220 --> 48:39.100
a cross-site request

48:39.100 --> 48:40.140
forgery and stuff like

48:40.140 --> 48:41.760
that some people will

48:41.760 --> 48:42.960
try and avoid that by

48:42.960 --> 48:44.140
actually doing you know

48:44.140 --> 48:45.480
like moving away from a

48:45.480 --> 48:46.540
get page and moving it

48:46.540 --> 48:48.220
to post but what a lot

48:48.220 --> 48:48.700
of people don't

48:48.700 --> 48:49.640
understand is you can

48:49.640 --> 48:52.020
actually change a form

48:52.020 --> 48:53.860
from post to get to a

48:53.860 --> 48:55.580
page so depending on

48:55.580 --> 48:56.840
how the receiving page

48:56.840 --> 48:58.500
handles it you can still

48:58.500 --> 48:59.300
post all of those

48:59.300 --> 49:00.440
variables you can scan

49:00.440 --> 49:01.160
through you know like

49:01.160 --> 49:04.060
the document document

49:04.060 --> 49:05.900
element by ID and grab

49:05.900 --> 49:07.060
through you know or like

49:07.060 --> 49:09.380
just go through the

49:09.380 --> 49:11.100
entire document grab all

49:11.100 --> 49:12.960
the IDs and then post it

49:12.960 --> 49:15.080
with that same data but

49:15.080 --> 49:16.200
that's that's not going to

49:16.200 --> 49:17.500
be the the type to attack

49:17.500 --> 49:18.260
generally you're not going

49:18.260 --> 49:20.000
to be doing that that's a

49:20.000 --> 49:21.000
different type generally

49:21.000 --> 49:22.340
through the URL exactly

49:22.340 --> 49:23.720
exactly and that that

49:23.720 --> 49:25.580
moves us on to pretty much

49:25.580 --> 49:26.640
the third type which is

49:26.640 --> 49:28.960
stored or persistent or

49:28.960 --> 49:30.540
second order second order

49:30.540 --> 49:32.200
vulnerabilities and that's

49:32.200 --> 49:33.100
when the script is stored

49:33.100 --> 49:34.160
permanently on the server

49:34.160 --> 49:35.520
without being encoded using

49:35.520 --> 49:37.500
HTML entities that that's

49:37.500 --> 49:38.940
generally a lot of times

49:38.940 --> 49:40.180
you'll find that on forums

49:40.180 --> 49:41.780
and whatnot people have

49:41.780 --> 49:44.960
their their footer image

49:44.960 --> 49:47.380
or you know can make their

49:47.380 --> 49:49.080
text read or make it bold

49:49.080 --> 49:50.460
etc etc and a lot of these

49:50.460 --> 49:52.000
sites allow users to go

49:52.000 --> 49:55.400
through and and use HTML in

49:55.400 --> 49:56.780
there unfortunately since

49:56.780 --> 49:58.540
they're not really going

49:58.540 --> 49:59.780
through and using HTML

49:59.780 --> 50:01.340
entities you can use the same

50:01.340 --> 50:02.560
attacks in the second one

50:02.560 --> 50:04.020
but you can embed the script

50:04.020 --> 50:05.860
directly so it'd be like if

50:05.860 --> 50:07.400
somebody said you know you

50:07.400 --> 50:09.360
know put your avatar here and

50:09.360 --> 50:12.140
you do something like you know

50:12.140 --> 50:14.040
like image source and then an

50:14.040 --> 50:16.200
image that doesn't exist and then

50:16.200 --> 50:19.980
you know what is it on air go

50:19.980 --> 50:23.200
through and load your script right

50:23.200 --> 50:25.040
something yeah something like you

50:25.040 --> 50:27.000
know doesn't exist dot jpeg you

50:27.000 --> 50:28.860
know and then a space you know

50:28.860 --> 50:33.620
uh... single quote on air equals

50:33.620 --> 50:36.200
quote you know alert document dot

50:36.200 --> 50:39.160
cookie right right yeah look at

50:39.160 --> 50:40.560
your document cookie like straight

50:40.560 --> 50:42.020
there and anyone who goes through

50:42.020 --> 50:43.580
there it wouldn't just be alert of

50:43.580 --> 50:45.240
course you'd actually go through and

50:45.240 --> 50:47.660
you'd uh... send the information you

50:47.660 --> 50:49.920
could use the XML HTTP request object

50:49.920 --> 50:52.060
uh... with that code to actually

50:52.060 --> 50:54.800
remotely send anybody's cookie who

50:54.800 --> 50:56.700
looked at your site and in cases

50:56.700 --> 50:59.360
like orkit and stuff like that um

50:59.360 --> 51:02.280
they actually went through and were

51:02.280 --> 51:04.060
able to get into users accounts

51:04.060 --> 51:06.940
um... there's a lot of different

51:06.940 --> 51:08.820
types like there was a yahoo cross

51:08.820 --> 51:10.920
site scripting worm that pretty much

51:10.920 --> 51:14.020
as soon as the page loaded um it

51:14.020 --> 51:16.140
would go through grab all of your

51:16.140 --> 51:18.480
contacts and then send them all of

51:18.480 --> 51:20.260
the mail and that was purely you know

51:20.260 --> 51:21.600
cross site scripting that was all

51:21.600 --> 51:23.980
javascript based they actually went

51:23.980 --> 51:26.200
through grabbed all of the you know

51:26.200 --> 51:28.320
uh... contacts in your account book

51:28.320 --> 51:31.160
and emailed itself so it didn't infect

51:31.160 --> 51:34.100
your computer but it certainly you know

51:34.100 --> 51:36.060
sent the email and propagated itself to

51:36.060 --> 51:37.860
all your friends and that's something

51:37.860 --> 51:41.300
that you know spam uh... spam people

51:41.300 --> 51:43.120
could actually go through and use to get

51:43.120 --> 51:45.640
massive amounts of email you know you

51:45.640 --> 51:47.960
go into your uh... you know uh hotmail

51:47.960 --> 51:50.300
or yahoo accounts and boom somebody

51:50.300 --> 51:52.980
has got all of your email and all of

51:52.980 --> 51:55.300
your contacts emails so and since

51:55.300 --> 51:56.420
you've got them saved they're more

51:56.420 --> 51:58.340
likely to be valid emails they're not

51:58.340 --> 52:00.020
just farmed emails that could be old or

52:00.020 --> 52:01.780
expired they're probably active email

52:01.780 --> 52:04.700
addresses but actually wasn't wasn't

52:04.700 --> 52:06.860
this the same technique i'm sorry

52:06.860 --> 52:08.400
wasn't this the same technique also

52:08.400 --> 52:10.500
that was used on that big myspace thing

52:10.500 --> 52:12.120
with the friends growing exponentially

52:12.120 --> 52:15.520
which is i think a great story

52:15.520 --> 52:17.480
the same type uh... that was used on the

52:17.480 --> 52:20.500
myspace worm uh... this guy added like a

52:20.500 --> 52:22.240
million friends to his friends list

52:22.240 --> 52:24.620
and uh... i think he got legal action

52:24.620 --> 52:26.100
taken against him i can't remember

52:26.100 --> 52:26.760
specifically

52:26.760 --> 52:29.140
there was uh... another company and i think

52:29.140 --> 52:30.800
they mentioned it last week actually

52:30.800 --> 52:33.420
or somebody did but there was actually a

52:33.420 --> 52:36.140
group of people that had a number of

52:36.140 --> 52:38.980
cross site scripting attacks and exploits

52:38.980 --> 52:40.560
that they did like grabbing your

52:40.560 --> 52:43.600
friends you know password etc etc and

52:43.600 --> 52:45.440
those two people they were actually i

52:45.440 --> 52:47.700
think selling them and they went

52:47.700 --> 52:49.420
through and posed enough of a threat

52:49.420 --> 52:51.740
that uh... myspace actually went to

52:51.740 --> 52:52.980
them and went like you know like i

52:52.980 --> 52:54.480
think they propositioned them and said

52:54.480 --> 52:56.140
you know well you can hire us to do

52:56.140 --> 52:57.640
your security or pay us money and my

52:57.640 --> 52:59.940
space goes okay you know we'll hire you

52:59.940 --> 53:02.080
at some exorbitant some they go into

53:02.080 --> 53:03.480
going to the interview and there's like

53:03.480 --> 53:05.180
fbi agents waiting there to take him

53:05.180 --> 53:05.680
to jail

53:05.680 --> 53:08.500
so i thought that was funny i mean you

53:08.500 --> 53:10.280
know like uh... i i've never been a

53:10.280 --> 53:11.760
malicious person so when i've played

53:11.760 --> 53:13.640
with most of this stuff i've had you

53:13.640 --> 53:16.060
know my own servers i've you know

53:16.060 --> 53:18.400
infected my own computers etc etc

53:18.400 --> 53:22.340
because i don't necessarily need the

53:22.340 --> 53:24.340
money or want to follow you know

53:24.340 --> 53:27.960
malicious uh... steps to get ahead you

53:27.960 --> 53:29.600
know right it doesn't make sense to me

53:29.600 --> 53:31.020
but i've always been interested in the

53:31.020 --> 53:32.980
security aspect so i'd say i'm probably

53:32.980 --> 53:34.980
like white or gray hat probably at

53:34.980 --> 53:38.160
worst right and uh... this this actually

53:38.160 --> 53:40.900
to me is i know the other one may be

53:40.900 --> 53:44.420
the most common i i i don't know me i

53:44.420 --> 53:46.000
whatever most common but the one i

53:46.000 --> 53:48.000
think that people are most familiar with

53:48.000 --> 53:50.100
is this style of attack this is the kind

53:50.100 --> 53:53.460
of thing that is most common and most

53:53.460 --> 53:55.760
interesting in my opinion just personal

53:55.760 --> 53:57.660
opinion and this is the kind of thing

53:57.660 --> 53:59.040
though that i mean it helps to have

53:59.040 --> 54:01.720
your own server to run this from right

54:01.720 --> 54:03.640
yeah i mean it that it's not something

54:03.640 --> 54:05.040
you're going to be running if you have

54:05.040 --> 54:06.980
cookies and other information like that

54:06.980 --> 54:09.080
of course you need to actually send the

54:09.080 --> 54:11.120
information somewhere so most of the

54:11.120 --> 54:13.260
time this third attack is is used or

54:13.260 --> 54:15.140
even the second attack second and third

54:15.140 --> 54:18.340
type of attacks are used with an

54:18.340 --> 54:19.920
external server to record the

54:19.920 --> 54:21.800
information so at that point you

54:21.800 --> 54:24.180
actually use the xml http request

54:24.180 --> 54:26.420
object to send all that data that you

54:26.420 --> 54:28.440
just grabbed from javascript and you

54:28.440 --> 54:29.840
just log it on to your server so

54:29.840 --> 54:32.080
whether it's a botnet or you know

54:32.080 --> 54:34.180
some right but ironically of a proxy

54:34.180 --> 54:36.160
server and that's that's just a thing

54:36.160 --> 54:38.140
is ironically you don't want this

54:38.140 --> 54:39.860
trace back to your server most likely

54:39.860 --> 54:41.040
what you're doing with this kind of

54:41.040 --> 54:43.140
stuff so you're doing something stupid

54:43.140 --> 54:45.140
definitely don't like send all the

54:45.140 --> 54:47.120
information to your home machine right

54:47.120 --> 54:48.520
things like that are where you know

54:48.520 --> 54:50.520
you start to end up getting uh you

54:50.520 --> 54:52.760
know technically FBI and right

54:52.760 --> 54:54.280
technically it would work i mean if

54:54.280 --> 54:56.200
you got a static ip or or you're

54:56.200 --> 54:57.520
running your own website but i mean

54:57.520 --> 54:59.080
it's so easy to find where it's going

54:59.080 --> 55:00.840
and that's where you know all these

55:00.840 --> 55:02.740
botnets or previously exploited box

55:02.740 --> 55:05.320
and come into play is you know it's

55:05.320 --> 55:06.820
someone else's box that you're

55:06.820 --> 55:08.840
launching these attacks from so you've

55:08.840 --> 55:10.760
got that extra layer of obfuscation

55:10.760 --> 55:12.500
in there that extra layer separation in

55:12.500 --> 55:15.120
between you and and the victim i guess

55:15.120 --> 55:16.720
for lack of a better word also and

55:16.720 --> 55:19.420
actually this is kind of funny i don't

55:19.420 --> 55:20.540
know if this is let me let me bounce

55:20.540 --> 55:22.380
this off you what if isn't it

55:22.380 --> 55:24.260
possible then by the nature of this

55:24.260 --> 55:26.840
type of attack to use some sort of

55:26.840 --> 55:29.420
injection vulnerability on site a on

55:29.420 --> 55:32.040
one site inject some code in there

55:32.040 --> 55:34.460
that actually launches a cross-site

55:34.460 --> 55:36.780
scripting attack to a second site site

55:36.780 --> 55:38.920
b like neither not even your site they

55:38.920 --> 55:40.180
don't even have to be your sites like

55:40.180 --> 55:42.400
site a you go and put some code in

55:42.400 --> 55:44.500
there that code goes over to site b

55:44.500 --> 55:46.260
looking for a particular string or

55:46.260 --> 55:49.140
looking for a particular script over

55:49.140 --> 55:51.480
there and you put your script on box b

55:51.480 --> 55:53.540
which in turn goes back to a so you

55:53.540 --> 55:55.460
could actually have this funny

55:55.460 --> 55:56.720
scenario where you've got an infinite

55:56.720 --> 55:58.480
loop between two different box and

55:58.480 --> 56:00.260
performing cross-site scripting

56:00.260 --> 56:02.440
attacks on each other and each one

56:02.440 --> 56:04.760
subsequently sets off a trigger

56:04.760 --> 56:06.400
causing it to attack the first one so

56:06.400 --> 56:07.380
it goes back and forth you could

56:07.380 --> 56:08.840
actually have this weird infinite loop

56:08.840 --> 56:11.220
theoretically i mean is am i on is it

56:11.220 --> 56:12.620
isn't that possible no no yeah

56:12.620 --> 56:14.800
definitely it's possible and uh i mean

56:14.800 --> 56:16.920
you know but even even more

56:16.920 --> 56:18.740
probable i would say is that we're

56:18.740 --> 56:20.400
going to start seeing a lot of worms a

56:20.400 --> 56:22.580
lot of the you know fishers and

56:22.580 --> 56:24.820
spammers moving away from directly

56:24.820 --> 56:26.300
exploiting the machines i mean that's

56:26.300 --> 56:28.060
still going to be a huge thing but i'm

56:28.060 --> 56:29.840
saying because of cross-site scripting

56:29.840 --> 56:32.180
the fact that you can go into you know

56:32.180 --> 56:34.660
a central repository of all of this

56:34.660 --> 56:36.640
information that's normally considered

56:36.640 --> 56:38.980
secure and be able to crack it so

56:38.980 --> 56:41.980
easily makes it a much better target

56:41.980 --> 56:44.080
than say one person's computer with

56:44.080 --> 56:46.460
their outlook contacts you know right

56:46.460 --> 56:49.240
well we've got i mean what i would see

56:49.240 --> 56:51.000
in the future probably more likely

56:51.000 --> 56:52.720
than just you know looping each other

56:52.720 --> 56:54.860
to death or something like that would

56:54.860 --> 56:57.180
be like uh you know one site going

56:57.180 --> 56:59.980
through and say grabbing other links

56:59.980 --> 57:02.220
you know that are that are on the page

57:02.220 --> 57:06.900
or um you know uh browser history and

57:06.900 --> 57:09.440
exploiting them and seeing if they have

57:09.440 --> 57:12.540
the vulnerabilities and then installing

57:12.540 --> 57:14.600
themselves on them what i mean is you

57:14.600 --> 57:16.360
know going through and actually exploiting

57:16.360 --> 57:18.640
multiple other websites but you could

57:18.640 --> 57:20.820
use it for obfuscation and that end of

57:20.820 --> 57:23.040
going through and you know upload this

57:23.040 --> 57:25.800
some you know minor site and have it go

57:25.800 --> 57:27.420
through and do your other attacks for

57:27.420 --> 57:29.040
you but you're still going to need a

57:29.040 --> 57:30.720
couple of hops between you and the

57:30.720 --> 57:32.460
first injection point if you actually

57:32.460 --> 57:35.180
want to do it that way right now we've

57:35.180 --> 57:37.080
got like i don't know about 20 minutes

57:37.080 --> 57:40.040
or so left in the show so i think we

57:40.040 --> 57:41.840
should probably mention also another

57:41.840 --> 57:44.400
point that you made earlier and that is

57:44.400 --> 57:46.300
the there's a relationship between

57:46.300 --> 57:48.360
cross-site scripting attack and cross-site

57:48.360 --> 57:50.620
request forgery so you want to

57:50.620 --> 57:52.380
differentiate a little bit on that

57:52.380 --> 57:56.540
yeah basically what it is is um you're

57:56.540 --> 57:59.840
using the same types of uh you're using

57:59.840 --> 58:01.640
the same tools but for a different

58:01.640 --> 58:04.520
effect now where those first three were

58:04.520 --> 58:07.840
primarily targeting users machines the

58:07.840 --> 58:09.900
fourth type well i would still classify

58:09.900 --> 58:12.460
it as xss but it's generally referred to

58:12.460 --> 58:15.960
xsrf and uh it's specifically going

58:15.960 --> 58:19.800
through and using that client ran code to

58:19.800 --> 58:22.200
exploit the web server now i talked about

58:22.200 --> 58:24.720
this before in like my uh sequel injection

58:24.720 --> 58:27.300
uh script about how you could go through

58:27.300 --> 58:29.220
and automatically use you know like

58:29.220 --> 58:32.620
curl to go through and uh post to pages

58:32.620 --> 58:36.700
and check if their form fields like if you

58:36.700 --> 58:39.040
have javascript validation and you say like

58:39.040 --> 58:41.480
you know uh max width is 40 or whatever

58:41.480 --> 58:43.880
like that and your back end isn't going

58:43.880 --> 58:45.620
through and limiting it to 40 characters

58:45.620 --> 58:47.940
you can still go through and post with the

58:47.940 --> 58:51.960
script from your machine and put that code

58:51.960 --> 58:54.060
into it so if you're stripping out you know

58:54.060 --> 58:57.740
like uh javascript tags and other stuff like

58:57.740 --> 59:00.180
that on the front end on the back end you can

59:00.180 --> 59:02.760
still uh attack it and this makes it a lot

59:02.760 --> 59:06.060
easier and that you know most of the security is

59:06.060 --> 59:08.840
definitely through obscurity for ajax apps

59:08.840 --> 59:11.960
there's a lot of sensitive information uh and

59:11.960 --> 59:14.020
just poking around a little bit you see how

59:14.020 --> 59:15.700
much is like just sort of hung out there

59:15.700 --> 59:18.240
because a lot of people haven't put the proper

59:18.240 --> 59:20.620
effort into security in their applications

59:20.620 --> 59:23.040
that's one thing that i'm always you know pissed

59:23.040 --> 59:25.540
off about is i can understand you know like a

59:25.540 --> 59:28.820
500,000 line you know desktop application or like

59:28.820 --> 59:31.460
oh wow like a 500 million line desktop application

59:31.460 --> 59:33.360
or something like that you know there's going to

59:33.360 --> 59:35.820
be some flaws in there but people really don't

59:35.820 --> 59:38.160
pay attention to security even in simple you know

59:38.160 --> 59:42.500
web applications and uh you can go through and uh

59:42.500 --> 59:45.500
you know like i said before people going through and

59:45.500 --> 59:49.960
storing in the cookie uh user ids user passwords other

59:49.960 --> 59:52.360
sensitive user information and that's on the client end

59:52.360 --> 59:56.540
but on the server end you could go through and um and

59:56.540 --> 59:59.360
post to a page and use it for additional injection

59:59.360 --> 01:00:02.860
vectors so you could do you know sql injection you'd

01:00:02.860 --> 01:00:06.260
actually do direct code injection or try and uh do

01:00:06.260 --> 01:00:09.600
buffer overflow attack on the actual web server all

01:00:09.600 --> 01:00:12.520
from your javascript you know so you could have this

01:00:12.520 --> 01:00:15.960
script go through load your local page on your

01:00:15.960 --> 01:00:21.460
machine then load another page within it it grabs it it at

01:00:21.460 --> 01:00:24.120
that point has access to all of the actual javascript

01:00:24.120 --> 01:00:30.820
functions all of the actual um uh objects that are embedded in

01:00:30.820 --> 01:00:33.460
it like all the new stuff that's pulled back via the xml

01:00:33.460 --> 01:00:38.020
http request object so even if you have an ajax application like

01:00:38.020 --> 01:00:42.620
google mail you can have it go through and normally i guess what i

01:00:42.620 --> 01:00:46.420
should make a little bit clearer is you go into gmail or you go into

01:00:46.420 --> 01:00:50.020
google maps or anything like that and you right click and you save view source

01:00:50.020 --> 01:00:54.160
all of the updated information from the point from which you've logged in

01:00:54.160 --> 01:00:58.520
and probably hit a couple of things on their menus has been changing and you're

01:00:58.520 --> 01:01:02.820
not going to see that on view source but you can access that information with

01:01:02.820 --> 01:01:06.660
your javascript so you can go through and look at all of the different

01:01:06.660 --> 01:01:11.620
information in the page and build an attack based on that and then try code

01:01:11.620 --> 01:01:16.620
injection and sql injection so it's really like the same old hat but with a new

01:01:16.620 --> 01:01:22.880
vector right so uh yeah i don't i don't know if that's uh

01:01:22.880 --> 01:01:26.920
very interesting to a lot of people but i've had a lot more fun with that

01:01:26.920 --> 01:01:31.420
especially since i write ajax applications to see where the vulnerabilities are

01:01:31.420 --> 01:01:35.560
and how i can better design that code right right now that's i think that's

01:01:35.560 --> 01:01:38.120
really interesting i don't i bet a lot of people don't realize that

01:01:38.120 --> 01:01:44.380
yeah i mean i've seen stuff uh i've seen stuff on other applications and

01:01:44.380 --> 01:01:47.340
sources that people have posted where they go through and they essentially

01:01:47.340 --> 01:01:51.520
have like an inline query and it's an ajax app and they go you know oh it's not a

01:01:51.520 --> 01:01:55.240
direct form you know whatever whatever i'm doing javascript validation and they

01:01:55.240 --> 01:01:59.900
can't see the javascript so i'm okay well no you can't just bypass all those

01:01:59.900 --> 01:02:04.160
you know security methods you had before just because nobody can see it now

01:02:04.160 --> 01:02:10.140
because for you know the intelligent user for all intents and purposes i can see

01:02:10.140 --> 01:02:13.380
everything that you have there you're not hiding anything from me as an

01:02:13.380 --> 01:02:17.620
intelligent user if i want to go through and for some reason be malicious

01:02:17.620 --> 01:02:24.560
right so i mean you know in this case the first three you you know you're

01:02:24.560 --> 01:02:27.500
dealing with a lot more users that you can potentially infect

01:02:27.500 --> 01:02:32.540
but with this one you can actually go through and say get access to somebody's

01:02:32.540 --> 01:02:36.420
database you know what i mean so even if the first three types of attacks aren't

01:02:36.420 --> 01:02:41.480
useful for some black hat person their next step would probably be using cross-site

01:02:41.480 --> 01:02:46.820
request forgery to actually get direct access to that data right you know if

01:02:46.820 --> 01:02:50.260
you can add a million friends you might find a way to actually exploit the server

01:02:50.260 --> 01:02:52.360
so that you can add a million friends on the back end

01:02:52.360 --> 01:02:57.520
what i'm saying yeah right right right well um i tell you what we're we're running

01:02:57.520 --> 01:02:59.720
down to like about 10 minutes or so

01:02:59.720 --> 01:03:04.920
so did you want to go into some more detail about this or would you rather talk

01:03:04.920 --> 01:03:09.200
about mitigating mitigation and and some stuff that can be done about it or how do

01:03:09.200 --> 01:03:12.060
you want to how do you want to wrap this up or how do you want to what do you want to

01:03:12.060 --> 01:03:18.020
make sure we cover well just uh i guess i'll just do a quick run through on on you know like

01:03:18.020 --> 01:03:22.580
some different vectors and then uh and then sort of tie it up and go into security

01:03:22.580 --> 01:03:28.280
but um you know i'd already talked about um you know using the on-air tag uh you can

01:03:28.280 --> 01:03:36.600
actually use onload in iframes bodies uh windows and uh images and images are the most common

01:03:36.600 --> 01:03:41.760
way of that so that's a very common way to actually go through for uh for the third type

01:03:41.760 --> 01:03:47.600
of attack and uh um a lot of data is not encrypted or obfuscated on the client side

01:03:47.600 --> 01:03:52.620
you know like i said there's too much trust so you got to lock it down and leave as little

01:03:52.620 --> 01:03:58.360
data on the front end as you can as possible uh you can change the form.method specifically

01:03:58.360 --> 01:04:05.120
if you look uh in javascript uh for dom it's called form.method and you can change it to post

01:04:05.120 --> 01:04:10.360
or get with javascript so if you're playing with a new page like you go through and you

01:04:10.360 --> 01:04:17.220
scrape any urls in javascript uh to see what pages they're interact or interacting with if they if

01:04:17.220 --> 01:04:22.080
they're not like a regular get you can go through and try posting some of the ids with your own data

01:04:22.080 --> 01:04:26.860
right see i really like that that one is really cool to me i like that i think that's a really cool

01:04:26.860 --> 01:04:34.200
concept yeah and i mean you know make certain mechanisms like you know https completely vulnerable

01:04:34.200 --> 01:04:40.460
because although you're not being able to like sniff on uh on on the actual traffic between the user

01:04:40.460 --> 01:04:46.120
and the site this is running from the site so even if you have https directly in and you're being

01:04:46.120 --> 01:04:50.500
exploited like they can still grab all the information from the client and all of that you

01:04:50.500 --> 01:04:56.300
know data that they're pulling all the html all the javascript code etc etc you could probably make you

01:04:56.300 --> 01:05:00.700
know a playback that would pretty much give you all the information that somebody hit on a site from

01:05:00.700 --> 01:05:09.060
beginning to end depending on how advanced your attack was so um but i guess basically i'll go

01:05:09.060 --> 01:05:14.600
lightly into what can be done you know from a developer and administrator and uh for mitigating

01:05:14.600 --> 01:05:23.000
these uh injection vectors and um you know basically it's a hard road to a certain extent you know uh it

01:05:23.000 --> 01:05:28.180
gained popularity and people are just cracking down on it now but browsers are going to have you know

01:05:28.180 --> 01:05:34.440
trouble tightening the entity controls because with the advent and popularity of mashups you know

01:05:34.440 --> 01:05:41.100
going through and using the xml htp request object to gain information from a bunch of different sites

01:05:41.100 --> 01:05:47.640
and put a new front on it like uh i think there was a mashup a mashup that actually took uh crime rates

01:05:47.640 --> 01:05:53.360
and new york city and actually made it so it displayed an image with an overlay that would show

01:05:53.360 --> 01:06:00.480
you all the most dangerous areas of say chicago or new york etc etc right and a lot of those are

01:06:00.480 --> 01:06:06.440
really useful so they go through and use you know an api from a specific site and with cases like that

01:06:06.440 --> 01:06:14.720
if you go through and you limit um execution of javascript to that site only and make it so xml htp

01:06:14.720 --> 01:06:21.480
requests only works within that same domain then you're going to completely kill uh a very popular

01:06:21.480 --> 01:06:29.580
line of web 2.0 type uh uh applications these mashups are huge uh if you're been following any

01:06:29.580 --> 01:06:34.660
of the web 2.0 stuff yeah and it's and it's only going to get bigger it's only going to get bigger

01:06:34.660 --> 01:06:39.900
exactly and that's that's the big problem is what i'm saying is they can't really lock down xml htp

01:06:39.900 --> 01:06:45.920
request to the same url because the usefulness of it is sort of the crux of it too right it's going

01:06:45.920 --> 01:06:54.040
it outweighs the the dangers yeah or in the developer's mind it does anyway yeah for the

01:06:54.040 --> 01:06:59.780
most part but like i said most people never even think about you know security until uh oops uh we've

01:06:59.780 --> 01:07:04.520
got a major problem there's a million friends added to somebody or uh yeah we're orcut and somebody

01:07:04.520 --> 01:07:13.020
stole like uh 5 000 users uh email addresses and you know like uh login ids and passwords and shit like

01:07:13.020 --> 01:07:20.700
uh you know right but um basically um any javascript validation there's something um web form underscore

01:07:20.700 --> 01:07:28.500
callback is used in all of the icallbacks with uh with dot net so dot net has what they call an icallback

01:07:28.500 --> 01:07:35.460
which is sort of a higher level xml htp request and they generate all of that actual script and make

01:07:35.460 --> 01:07:42.040
it quote unquote secure but you can still use the web uh web form underscore underscore callback

01:07:42.040 --> 01:07:48.240
javascript function to inject your own information into the callback so it's still possible to

01:07:48.240 --> 01:07:53.340
actually attack even if they're using icallbacks other higher level things because on the lower level

01:07:53.340 --> 01:08:01.420
it's still an xml htp request object um it's like i said before that's a definite vector i mean i

01:08:01.420 --> 01:08:07.820
specifically do a lot of dot net development you know uh i like writing you know in uh open source

01:08:07.820 --> 01:08:13.460
software very much but uh unfortunately i have to uh do a lot of uh dot net programming too

01:08:13.460 --> 01:08:20.100
well it's not bad c sharp is a bad but um yeah html quoting algorithms uh also are particularly

01:08:20.100 --> 01:08:26.280
thwarted by uh or potentially thwarted by browsers that correctly interpret unicode so if you go through

01:08:26.280 --> 01:08:32.060
and and you say you know okay i won't allow html encoding if somebody goes through and let's say

01:08:32.060 --> 01:08:37.220
you're stripping uh stripping out script tags and then you're going through and you say okay i'm

01:08:37.220 --> 01:08:44.120
going to take out you know url encoded uh data to from this text box where people can put in html

01:08:44.120 --> 01:08:49.860
and you go through and do a couple other things well you know like they said before with the utf-7 you

01:08:49.860 --> 01:08:55.840
know encoding uh you are able to get away away from it there's so many different ways of encoding it that

01:08:55.840 --> 01:09:00.460
you know just doing like a blacklist for the most part is not likely to catch everything

01:09:00.460 --> 01:09:07.940
um yes input sanitize you know sanitizing input is just one of the biggest ways you can mitigate a

01:09:07.940 --> 01:09:12.680
lot of stuff is to just not allow a lot of the tags don't allow the greater than less than you know

01:09:12.680 --> 01:09:19.120
if it's not don't allow anything yeah don't avoid it have something that you know lets you let

01:09:19.120 --> 01:09:24.440
them mark a box with text in it and use a drop down to say it's red or something like that

01:09:24.440 --> 01:09:31.240
but don't allow like any type of special characters whatsoever you know like if you can if you can

01:09:31.240 --> 01:09:36.560
lock it down as tight as you can do that you know don't just hope that somebody's not going to do it

01:09:36.560 --> 01:09:41.180
because eventually somebody probably will right and actually that's a one of the reasons a lot of

01:09:41.180 --> 01:09:45.940
people probably don't know this but will relate to this when i explain it is in most forum software

01:09:45.940 --> 01:09:51.480
packages forums you know a lot of this people post different things in forums over the years and that's

01:09:51.480 --> 01:09:55.660
where a lot of these things have been seen and tested and implemented as people posting being

01:09:55.660 --> 01:10:00.820
able to post html if most forums these days if you notice they're using something that's become

01:10:00.820 --> 01:10:06.360
commonly called bb code which is basically another way for you to put a url instead of allowing you to

01:10:06.360 --> 01:10:11.860
put an anchor in there or an image tag they will have a set of code it's like usually square brackets

01:10:11.860 --> 01:10:16.480
or at least it is in envision power board but most of them are pretty universal with this and you'll put

01:10:16.480 --> 01:10:22.920
a bracket called bracket img close bracket then the link to your image and then the open bracket

01:10:22.920 --> 01:10:28.100
slash img it's very close to the same syntax but it doesn't allow you to put that greater than less

01:10:28.100 --> 01:10:34.440
than it doesn't allow you to insert any kind of html or any kind of code like that so you know you

01:10:34.440 --> 01:10:42.280
prevent a lot of that stuff by sanitizing your input yeah and another thing is um you know like uh

01:10:42.280 --> 01:10:49.080
tying session cookies to a particular ip address so you make sure that um the ip address of the user

01:10:49.080 --> 01:10:55.220
is the only one that has access to that cookie so if you go through and something else tries to request

01:10:55.220 --> 01:11:01.180
that cookie even with the same data you don't allow that um if the ip address is different but the

01:11:01.180 --> 01:11:06.220
session is the same because somebody could hijack your session and you go through and and uh you know

01:11:06.220 --> 01:11:10.180
they grab your cookie from another location well if you have it tied to the ip address you can say

01:11:10.180 --> 01:11:15.200
uh-uh there's one open session right now it's tied to this ip address and this other ip address is

01:11:15.200 --> 01:11:20.900
asking for this with the same session data i don't think so right and session hijacking is another

01:11:20.900 --> 01:11:26.480
topic too that we could go into more detail about on another show as well but point certainly well taken

01:11:26.480 --> 01:11:34.900
and uh you can use different stuff to uh make sure that any html you have on your site is uh is well

01:11:34.900 --> 01:11:40.360
formed so you can use stuff like uh there's a program called html tidy and that'll go through

01:11:40.360 --> 01:11:46.280
and make sure that all of your actual html is well formed um some of the other uh ways that you can

01:11:46.280 --> 01:11:56.680
mitigate these uh attacks is there's a different one for ie and firefox there's the http only flag for the

01:11:56.680 --> 01:12:05.220
browser if it's ie and uh if i remember correctly that keeps um any uh javascript executed on that page

01:12:05.220 --> 01:12:13.200
from executing uh javascript on another page and the firefox equivalent of that is what they call the

01:12:13.200 --> 01:12:20.200
same origin policy the same origin policy prevents a document or script loaded from one uh ip address

01:12:20.200 --> 01:12:26.440
or domain from getting or setting properties of a document from a different uh domain so the

01:12:26.440 --> 01:12:32.200
policy is pretty much there since like netscape navigator like 2.0 um mozilla considers two pages

01:12:32.200 --> 01:12:39.320
um that have the same uh domain if the host is basically the same so they have to have the same

01:12:39.320 --> 01:12:46.780
base url in order to actually execute so that's very handy um and i'd highly recommend it using both of

01:12:46.780 --> 01:12:55.460
those both the http only flag and the um and the uh same origin policy if you can on your ajax application

01:12:55.460 --> 01:13:01.360
um there's some other stuff on uh the web server apache you can go through and set it to use only one

01:13:01.360 --> 01:13:08.220
character set um you can look at it you can add uh explicit card set you know to the specific iso i

01:13:08.220 --> 01:13:16.640
think it's uh 8859-1 um and well there's a bunch of other information but you can you can google you

01:13:16.640 --> 01:13:22.780
know setting apache to use only one character set and make sure that you know you won't potentially be

01:13:22.780 --> 01:13:27.880
exploited by uh a user going through it and coding the data in a different way different character

01:13:27.880 --> 01:13:32.100
set that it that evaluates to the exact same things you're trying to avoid them from using

01:13:32.100 --> 01:13:37.560
exactly and that's the thing with the spread of you know so many different languages and and you know

01:13:37.560 --> 01:13:42.960
moving towards unicode so that uh people from multiple nations can use the same web page

01:13:42.960 --> 01:13:48.420
you know they get into it but the crux of that is that there's so many different ways to encode the

01:13:48.420 --> 01:13:56.980
data that you know it's insane right right yeah so like why and and i'm i'm not i'm going to make up

01:13:56.980 --> 01:14:01.560
an example because i'm not sure if that translates well to the listener so um i'm going to make this

01:14:01.560 --> 01:14:08.440
up as a bad example but you know what equates to the open bracket or to a less than greater than symbol

01:14:08.440 --> 01:14:16.180
and your standard character set you can block that from the iso 8859-1 that we're talking about but

01:14:16.180 --> 01:14:22.820
if you've got another character set support somebody could send the code for the less than

01:14:22.820 --> 01:14:27.760
greater than equal which of course are the open and closed tags through another character set and if

01:14:27.760 --> 01:14:32.700
your apache setup will allow that to happen it's going to translate them it is going to allow the

01:14:32.700 --> 01:14:37.360
less than greater than because it bypassed your character set using a different character set it is

01:14:37.360 --> 01:14:42.160
going to let you do the same thing by basically doing kind of another language if you will pretend that

01:14:42.160 --> 01:14:47.860
it supports let's say english and i don't know let's say spanish and spanish character set has a

01:14:47.860 --> 01:14:52.120
letter that's a less than sign and a greater than sign you're actually bypassing in english you don't

01:14:52.120 --> 01:14:57.020
have the less than or greater than but in another language or another character set which is i'm trying

01:14:57.020 --> 01:15:02.580
to make the equivalent there it will allow those characters so that's what the difference is i'm i'm not

01:15:02.580 --> 01:15:06.460
sure if that's going to come across over radio but that's the best i can come up with to explain

01:15:06.460 --> 01:15:12.340
well here's an easy one for anyone that has a browser they can put in this javascript here's just

01:15:12.340 --> 01:15:26.040
a quick little example you can do uh alert uh parens uh string dot from char code 88 comma 83 comma 83

01:15:26.040 --> 01:15:31.980
you know end parens end parens from char code as a function itself so you go through and do that right

01:15:31.980 --> 01:15:38.420
you have the direct character encoding the numeric encoding for the actual uh character and what

01:15:38.420 --> 01:15:45.520
that'll do is it'll actually give you an alert that says xss you know one very easy way of saying

01:15:45.520 --> 01:15:51.960
that you know so even though it's uh even though it's just numbers it's correctly interpreted by the

01:15:51.960 --> 01:15:57.240
browser as xss right it's it's illustrating the bypassing or the character the characters being

01:15:57.240 --> 01:16:03.360
translated correctly exactly there's an american canonical and these are just merely well many

01:16:03.360 --> 01:16:07.880
different canonical forms of the same you know data right and you've actually done a little bit

01:16:07.880 --> 01:16:12.400
of research here as we wrap this whole thing up and and i should probably mention that um of course

01:16:12.400 --> 01:16:17.440
people can go to wikipedia.org and do a search for cross-site scripting and you'll find a lot of

01:16:17.440 --> 01:16:21.540
information and links to a lot of other information from that page it's actually got some pretty decent

01:16:21.540 --> 01:16:27.160
information there but um you've been doing some research on this too and and we had a code example

01:16:27.160 --> 01:16:33.080
did you want to read this on the air the uh we have this let's see it's on pastebin right

01:16:33.080 --> 01:16:36.580
yeah it's on pastebin okay so i'll read the url

01:16:36.580 --> 01:16:41.180
there's actually a german german example of the exact exploit that was used on orca

01:16:41.180 --> 01:16:47.880
to actually harvest all of the user's information okay i'll read they actually got passwords via this

01:16:47.880 --> 01:16:51.520
method now it's all closed up now but it's a great example all right i'll read the url

01:16:51.520 --> 01:17:03.860
then it's it's d e dot pastebin p-a-s-t-e-b-i-n dot c-a forward slash two five nine two three nine

01:17:03.860 --> 01:17:09.960
i didn't tie in the url that because it's already pretty short so d e dot pastebin dot c-a slash two

01:17:09.960 --> 01:17:15.300
five nine two three nine and that code doesn't want i'm sorry you you had said i think i interrupted

01:17:15.300 --> 01:17:20.940
you while you were saying that oh um it's an example i mean uh aside from that what i'm i'm

01:17:20.940 --> 01:17:26.700
currently in the process of writing an automated a uh automated uh ajax vulnerability scanner in

01:17:26.700 --> 01:17:33.280
javascript and pearl and basically the pearl end of it is just to process the data and uh sort in a

01:17:33.280 --> 01:17:39.540
database and you know manage it so but primarily um the javascript end of it is going through you know

01:17:39.540 --> 01:17:51.060
uh any xmlhtp request you know object calls uh any urls etc etc the id and then it uh goes through

01:17:51.060 --> 01:17:57.720
the entire list and goes through each url grabs any additional data and tries to test to see if it'll

01:17:57.720 --> 01:18:04.900
accept script injection and then go back through and i'm gonna provide uh the new url if it gives it

01:18:04.900 --> 01:18:10.340
on the pearl side and go through and see if the vulnerability worked so i'm working on that right

01:18:10.340 --> 01:18:17.140
now um for my own applications but uh i may be releasing the source soon i i think it's it's actually

01:18:17.140 --> 01:18:22.200
fairly easy to do with most of the pearl modules and the javascript is straightforward too if you look

01:18:22.200 --> 01:18:28.060
at um you know most of the ajax uh programming tutorials i'm sure you can find a couple of things

01:18:28.060 --> 01:18:34.360
out there on using the xmlhtp request object but um i mean the funny thing is this application could

01:18:34.360 --> 01:18:41.120
probably be used uh or written entirely in javascript uh if you don't want logging the information and

01:18:41.120 --> 01:18:45.380
you're just going to write it out to the page um that's one of the other things that i just wanted

01:18:45.380 --> 01:18:50.280
to close on is that you know javascript is a lot more powerful than a lot of people give it credit

01:18:50.280 --> 01:18:55.040
for there's a lot of things that you can do in javascript that would probably flip most you know

01:18:55.040 --> 01:19:01.840
even web developers mind you know um probably a good source to just see the power of it

01:19:01.840 --> 01:19:08.460
is to uh i think yahoo has their hackaday talks and whatnot they have a couple people go into advanced

01:19:08.460 --> 01:19:13.900
uh javascript tutorials and they go into you know how well formed you know it's object oriented and

01:19:13.900 --> 01:19:18.820
everything like that but with the advent of ajax you're starting to see people utilize it a lot more

01:19:18.820 --> 01:19:25.060
and it's just as exploitable as you know any other application code but you can actually see

01:19:25.060 --> 01:19:32.160
it on the client side you know so um i mean that's that's pretty much all i got to say on that uh if

01:19:32.160 --> 01:19:36.960
there is significant interest i might go a little bit further down the rabbit hole but uh i guess

01:19:36.960 --> 01:19:42.780
that's probably enough information for this show huh yeah yeah and and let's see you know i think we

01:19:42.780 --> 01:19:47.240
actually did a pretty good job of not making this too awful dry and using some good examples of it

01:19:47.240 --> 01:19:52.040
because again this is one of the topics that it's easier to look at the code and see the examples

01:19:52.040 --> 01:19:58.020
so i think we gave enough you know that's why i was saying like with the security scanner i might uh

01:19:58.020 --> 01:20:03.780
release that source soon or at least probably put up a couple of uh snippets on the forums i was

01:20:03.780 --> 01:20:09.940
thinking because you know a lot of this is probably much easier to see in code than actually describe it

01:20:09.940 --> 01:20:15.180
so i you know i tried to explain as much as possible but you know a function is worth a thousand words

01:20:15.180 --> 01:20:20.880
right right and um we'll definitely keep everybody apprised when you give us that stuff but between

01:20:20.880 --> 01:20:26.280
the the tiny url example earlier the pastebin code we can give people a look at and by the way we're

01:20:26.280 --> 01:20:29.220
going to i guess i'm going to use that for site of the week i'm going to be cheap cheap out use

01:20:29.220 --> 01:20:34.300
pastebin.ca as the site of the week nice place to post some some code snippets if you need to

01:20:34.300 --> 01:20:40.580
um and let's see what else to wrap up the show with any shouts so you got some shouts you want to

01:20:40.580 --> 01:20:47.920
give out i'll do uh shouts to my co-workers because i think they might be listening to the show okay and

01:20:47.920 --> 01:20:56.560
uh and probably shouts to the normal uh br561 group in uh florida 2600 yeah and uh let's see i'll give

01:20:56.560 --> 01:21:00.960
shouts to uh let's see i was talking with living dead and irc earlier so i'll give him some shouts

01:21:00.960 --> 01:21:07.000
and let's see i think last time i gave shouts to everybody whose handle begins with an e so this

01:21:07.000 --> 01:21:11.540
week i'm going to say anybody whose handle begins with an m as in mia flux and if your handle begins

01:21:11.540 --> 01:21:18.300
with an m you get shouts this week um yeah i got shots yeah i'm being so lazy on these days are you

01:21:18.300 --> 01:21:24.300
just gonna go like the next round just be like this show has given shouts to the letter m the letter q

01:21:24.300 --> 01:21:30.860
yeah like like sesame street yes this show has been sponsored by and made possible by listeners

01:21:30.860 --> 01:21:38.960
like you email us if you have like a uh a contribution page for that yeah well that's

01:21:38.960 --> 01:21:43.280
a whole nother topic i might just exploit like the BinRev page to add a paypal contribution to me

01:21:43.280 --> 01:21:49.420
yeah yeah right we'll see we'll keep an eye on that but on the front page if you do have any feedback

01:21:49.420 --> 01:21:54.280
of any kind for this episode or any episode of the show you can email us radio at BinRev.com

01:21:54.300 --> 01:22:02.620
uh closing music this week is from beefy and dj snyder it's called twerp tww3rp it's the

01:22:02.620 --> 01:22:08.340
elitized twerp from over at songflight.org what i find always find a lot of good music over there

01:22:08.340 --> 01:22:14.960
so mia flux thank you for being on the show my friend and um thank you and i did want to add you

01:22:14.960 --> 01:22:20.840
know just like the uh prior episode anyone who uh you know has special interest or uh want some more

01:22:20.840 --> 01:22:28.940
information or help just wants to play me you can reach me at uh mia flux at gmail.com that's m-e-a-f-l-u-x

01:22:28.940 --> 01:22:36.260
at uh gmail all right and um stick around after we're done recording because uh speaking of br561 we

01:22:36.260 --> 01:22:42.020
got some plans to talk about for that but until then we will tell everybody that we will see them

01:22:42.020 --> 01:22:47.620
next week same hack time same hack channel bitches

01:22:47.620 --> 01:22:52.980
hey yo snyi i want to tell a story

01:22:52.980 --> 01:23:00.480
the names and dates have been changed to protect the innocent

01:23:00.480 --> 01:23:04.480
get out your motherfucking feet

01:23:04.480 --> 01:23:06.420
dj snyder come on

01:23:06.420 --> 01:23:07.980
come on

01:23:07.980 --> 01:23:08.540
do it all

01:23:08.540 --> 01:23:11.020
nickel played a nickel it's a nickel for short

01:23:11.020 --> 01:23:13.700
the pleasing charming sort when we were kids we used to play fort

01:23:13.700 --> 01:23:16.840
in our younger years when i was the green ranger in my mind's eye

01:23:16.840 --> 01:23:19.480
monday night raws when my kind would rock the tie dye

01:23:19.480 --> 01:23:22.100
nickel was a cool guy just after reading sci-fi

01:23:22.100 --> 01:23:24.860
till some knucklehead popular types wanted to hurt my

01:23:24.860 --> 01:23:26.160
this is best time forever

01:23:26.160 --> 01:23:27.460
i had to use fits

01:23:27.460 --> 01:23:29.860
i never promo violence but i will promote this

01:23:29.860 --> 01:23:32.560
but i couldn't be around 24 hours of the day

01:23:32.560 --> 01:23:35.220
and these bastards got their kicks in the most despicable ways

01:23:35.220 --> 01:23:36.300
tell them to shoo away

01:23:36.300 --> 01:23:37.920
but insects they keep swarming

01:23:37.920 --> 01:23:40.600
like norman in the 90s was the way these kids were storming

01:23:40.600 --> 01:23:43.000
and the principal did nothing man that dude was a jerk

01:23:43.000 --> 01:23:45.660
he just called my fat ass lazy and my best friend a twerk

01:23:45.660 --> 01:23:47.520
so it was work 40 plus ot

01:23:47.520 --> 01:23:50.140
keeping nick bruce free and it's not like these kids didn't get off

01:23:50.140 --> 01:23:51.200
while trying to bruise

01:23:51.200 --> 01:23:53.760
crack conspiracy when i was guinea pulled out of class

01:23:53.760 --> 01:23:56.440
helpless in iss while they were beating his ass

01:23:56.440 --> 01:23:57.740
i wasn't thinking too fast

01:23:57.740 --> 01:24:01.680
i was running my mouth with every syllable another hurtful night in his house

01:24:01.680 --> 01:24:04.340
but i was younger and i was too dumb to figure it out

01:24:04.340 --> 01:24:06.980
yeah i'm too stubborn and too stupid that's what i was about

01:24:06.980 --> 01:24:09.640
but at night we meet up with internet and a coke

01:24:09.640 --> 01:24:12.500
and even with a life so painful he was first to tell a joke

01:24:12.500 --> 01:24:15.240
and you'll hear what you'll hear and you'll feel what you'll feel

01:24:15.240 --> 01:24:17.760
but nick produced emotions that was harder to steal

01:24:17.760 --> 01:24:20.320
and first purchase shooters was a way to escape

01:24:20.320 --> 01:24:23.020
this isn't going where you're thinking i just ask you to wait

01:24:23.020 --> 01:24:26.020
you see over the years my boy developed his dexterity

01:24:26.020 --> 01:24:28.560
and race his gpa at the risk of his popularity

01:24:28.560 --> 01:24:31.180
and his home situation wasn't ideal to say the least

01:24:31.180 --> 01:24:33.780
so of course he was visited daily by the marines

01:24:33.780 --> 01:24:36.360
and the recruiters they would grill him and they'd hassle his mom

01:24:36.360 --> 01:24:39.080
talking about pride and honor in the hunt for saddam

01:24:39.080 --> 01:24:41.720
and how he has him a bomb and how it's ready to launch

01:24:41.720 --> 01:24:44.360
let's meet up and talk tomorrow and we'll buy you some lunch

01:24:44.360 --> 01:24:47.020
and if you join with us you can do whatever you please

01:24:47.020 --> 01:24:49.900
i was the first to tell nicole that this use wasn't worth the squeeze

01:24:49.900 --> 01:24:52.740
and i said yo i'll protect it till the day i rock a tube set

01:24:52.740 --> 01:24:55.080
to say i think those words are what drove him away

01:24:55.080 --> 01:24:57.880
end of the day guess a guy's gotta be his own man

01:24:57.880 --> 01:25:00.460
even if that means you're gonna get stationed in iran

01:25:00.460 --> 01:25:03.000
but nicole he was smart and not afraid of some work

01:25:03.000 --> 01:25:05.680
and after years of working out no one would call him a twerk

01:25:05.680 --> 01:25:08.600
and i was reeling from the hurt when my friend put on the camo

01:25:08.600 --> 01:25:11.220
and started making jokes about b'lawden with the camo

01:25:11.220 --> 01:25:13.820
when he left it's like he was already dead in my eyes

01:25:13.820 --> 01:25:16.440
a saluting middle finger when we said our goodbyes

01:25:16.440 --> 01:25:19.020
and yo i have me this pride i won't admit that i cry

01:25:19.020 --> 01:25:21.720
when i see the bumper stickers that i'll re-simplify

01:25:21.720 --> 01:25:25.060
never wanted to die i may be weak but i'm stronger than that

01:25:25.060 --> 01:25:27.320
i just want my motherfucking brother back

01:25:27.320 --> 01:25:35.060
i may be weak but i'm stronger than that

01:25:35.060 --> 01:25:38.040
i'm just waiting for the day that i can get my brother back

01:25:38.040 --> 01:25:39.360
bye

01:25:42.960 --> 01:25:44.880
bye

01:25:44.880 --> 01:25:45.580
bye

01:25:45.580 --> 01:25:46.680
bye

01:25:46.680 --> 01:25:47.080
bye

01:25:47.080 --> 01:25:47.220
bye

01:25:47.220 --> 01:25:47.600
bye

01:25:47.600 --> 01:25:47.920
bye

01:25:47.920 --> 01:25:50.640
bye

01:25:50.640 --> 01:25:51.760
bye

01:25:51.760 --> 01:25:54.640
bye

01:25:54.640 --> 01:25:55.080
bye

01:25:55.080 --> 01:25:56.760
bye

01:25:56.760 --> 01:25:57.180
bye

01:25:57.180 --> 01:25:58.960
bye

01:25:58.960 --> 01:25:59.320
bye

01:25:59.420 --> 01:26:00.200
bye

01:26:00.200 --> 01:26:00.880
bye

01:26:00.880 --> 01:26:01.140
bye

01:26:01.140 --> 01:26:01.740
bye

01:26:01.740 --> 01:26:01.900
bye

01:26:01.900 --> 01:26:02.780
bye

01:26:02.780 --> 01:26:03.320
bye

01:26:03.320 --> 01:26:03.380
bye

01:26:03.380 --> 01:26:04.080
bye

01:26:04.080 --> 01:26:04.800
bye

01:26:04.840 --> 01:26:05.940
bye

01:26:05.940 --> 01:26:06.400
bye

01:26:06.400 --> 01:26:06.940
bye

01:26:06.940 --> 01:26:07.260
bye

