WEBVTT

1
00:00:00.120 --> 00:00:03.120
<v Speaker 1>Welcome to the deep dive today. We are putting on

2
00:00:03.240 --> 00:00:06.160
<v Speaker 1>the black hat metaphorically. Of course, we're looking at the

3
00:00:06.160 --> 00:00:09.800
<v Speaker 1>most critical weak points in web application security, but not

4
00:00:10.039 --> 00:00:12.320
<v Speaker 1>like a developer. We're seeing it through the eyes of

5
00:00:12.400 --> 00:00:13.439
<v Speaker 1>the penetration tester.

6
00:00:13.720 --> 00:00:16.879
<v Speaker 2>That's right, Our listener is looking for, well, a deep

7
00:00:16.920 --> 00:00:20.120
<v Speaker 2>distillation of that core mindset. Our mission here is to

8
00:00:20.239 --> 00:00:26.320
<v Speaker 2>really extract their strategic roadmap, identifying those critical vulnerability hotspots

9
00:00:26.359 --> 00:00:29.800
<v Speaker 2>and understanding how these experts use their tools. We're going

10
00:00:29.800 --> 00:00:34.079
<v Speaker 2>beyond just naming things like NMP, burpsuite, wire shark. We

11
00:00:34.119 --> 00:00:36.880
<v Speaker 2>want to get into their purpose, you know, in the

12
00:00:36.920 --> 00:00:37.719
<v Speaker 2>attack sequence.

13
00:00:37.799 --> 00:00:41.520
<v Speaker 1>Absolutely so, we're covering the entire adversarial life cycle, starting

14
00:00:41.560 --> 00:00:44.000
<v Speaker 1>with that quiet art of reconnaissance and then moving right

15
00:00:44.039 --> 00:00:49.320
<v Speaker 1>through to the really damaging stuff architectural and implementation flaws. Okay,

16
00:00:49.359 --> 00:00:52.159
<v Speaker 1>let's unpack this. What are the foundational stages? What structure

17
00:00:52.159 --> 00:00:53.439
<v Speaker 1>is a professional web app test?

18
00:00:53.719 --> 00:00:57.000
<v Speaker 2>Yeah, it's a pretty rigorous process, systematic, usually broken into

19
00:00:57.000 --> 00:01:01.280
<v Speaker 2>four main phases. First, you've got information gather reconnaissance. That's

20
00:01:01.320 --> 00:01:04.959
<v Speaker 2>the passive and active discovery part. Second is vulnerability scanning

21
00:01:05.200 --> 00:01:09.519
<v Speaker 2>more automated, broader strokes. Third, the really focused part exploitation.

22
00:01:09.760 --> 00:01:12.879
<v Speaker 2>That's where the tester confirms, analyzes the critical flaws, and

23
00:01:12.959 --> 00:01:18.640
<v Speaker 2>finally reporting, getting all those findings organized well for fixing things.

24
00:01:18.719 --> 00:01:21.680
<v Speaker 1>Okay, that initial phase reconnaissance you said is often the

25
00:01:21.680 --> 00:01:24.560
<v Speaker 1>most crucial, even though it's sort of the quietest. The

26
00:01:24.560 --> 00:01:29.560
<v Speaker 1>objective seems huge building this comprehensive profile application architecture, deep details,

27
00:01:29.760 --> 00:01:32.159
<v Speaker 1>hang on before we even crawl web pages. How do

28
00:01:32.239 --> 00:01:36.319
<v Speaker 1>pentesters use those network tools like ENDMP and wireshark to

29
00:01:36.400 --> 00:01:37.840
<v Speaker 1>profile the environment itself.

30
00:01:38.040 --> 00:01:41.319
<v Speaker 2>Ah, that's a really crucial step. Sometimes gets overlooked when

31
00:01:41.319 --> 00:01:44.560
<v Speaker 2>people just focus on the code. End map is well

32
00:01:44.799 --> 00:01:48.079
<v Speaker 2>essential for understanding the infrastructure around the web app. You're

33
00:01:48.120 --> 00:01:52.640
<v Speaker 2>scanning for open ports services, maybe trying to identify hidden hosts,

34
00:01:53.239 --> 00:01:55.879
<v Speaker 2>or fingerprinting the web server type and version of patche

35
00:01:55.879 --> 00:01:59.480
<v Speaker 2>in jinks. Whatever you're looking for that unexpected management service,

36
00:01:59.519 --> 00:02:02.480
<v Speaker 2>maybe running on a non standard port that the application needs.

37
00:02:02.719 --> 00:02:06.799
<v Speaker 1>So end map helps you map the perimeter the environment

38
00:02:07.200 --> 00:02:09.759
<v Speaker 1>before you even step inside the house, so to speak.

39
00:02:10.000 --> 00:02:11.759
<v Speaker 1>And where does wireshark fit into this.

40
00:02:11.960 --> 00:02:15.879
<v Speaker 2>Wireshark is more about watching the conversation, the communication flow.

41
00:02:16.199 --> 00:02:19.159
<v Speaker 2>If you can intercept or just observe traffic, especially during

42
00:02:19.199 --> 00:02:22.439
<v Speaker 2>say setup or log in, you might immediately spot unencrypted

43
00:02:22.479 --> 00:02:26.199
<v Speaker 2>authentication data or see how the app handles protocols. It

44
00:02:26.240 --> 00:02:29.639
<v Speaker 2>can reveal filtering rules, maybe firewall configurations that weren't obvious

45
00:02:29.639 --> 00:02:32.719
<v Speaker 2>from the outside scan. You're looking for the environment's actual behavior,

46
00:02:32.759 --> 00:02:34.199
<v Speaker 2>you know, not just at the public face.

47
00:02:34.520 --> 00:02:37.520
<v Speaker 1>That's a powerful start. Okay, Now let's shift up to

48
00:02:37.639 --> 00:02:41.800
<v Speaker 1>the application level. Within recon mapping the application's content what

49
00:02:41.840 --> 00:02:46.560
<v Speaker 1>people call spidering or crawling. How do tools like bropsuite

50
00:02:46.719 --> 00:02:50.000
<v Speaker 1>or zap take that mapping further right.

51
00:02:49.840 --> 00:02:52.680
<v Speaker 2>So they automate building this virtual map, a tree map really,

52
00:02:52.759 --> 00:02:56.039
<v Speaker 2>of every accessible page in parameter. A key benefit is

53
00:02:56.080 --> 00:02:59.199
<v Speaker 2>finding links or files that aren't obvious in the main navigation,

54
00:02:59.479 --> 00:03:01.919
<v Speaker 2>things that aren't supposed to be found easily. They also

55
00:03:01.960 --> 00:03:05.520
<v Speaker 2>let the tester intercept and modify every single request and response,

56
00:03:05.680 --> 00:03:09.840
<v Speaker 2>which is absolutely crucial for testing parameters later and building

57
00:03:09.840 --> 00:03:11.400
<v Speaker 2>those tailored exploitation peloads.

58
00:03:11.439 --> 00:03:13.639
<v Speaker 1>And sometimes in that crawl you just find a golden

59
00:03:13.719 --> 00:03:17.639
<v Speaker 1>nugget accidental disclosure, like checking the robots dot txt file.

60
00:03:18.039 --> 00:03:21.280
<v Speaker 2>Exactly what's funny there is that robots dot txt is

61
00:03:21.360 --> 00:03:26.240
<v Speaker 2>meant for you discouraging nice search engine crawlers, but developers

62
00:03:26.240 --> 00:03:29.879
<v Speaker 2>often mistakenly use it like a security control, which it isn't.

63
00:03:30.280 --> 00:03:33.000
<v Speaker 2>So by checking this file, a PEN tester frequently finds

64
00:03:33.080 --> 00:03:38.439
<v Speaker 2>internal URLs, restricted functionality paths, stuff like admin settingsbackup dot

65
00:03:38.560 --> 00:03:40.680
<v Speaker 2>zip that the developer thought was hidden just because it

66
00:03:40.680 --> 00:03:44.360
<v Speaker 2>wasn't linked publicly. It's an immediate passive win. Great for

67
00:03:44.439 --> 00:03:45.360
<v Speaker 2>information gathering.

68
00:03:45.520 --> 00:03:48.680
<v Speaker 1>Okay, let's move past discovery. Let's focus on the gatekeepers.

69
00:03:48.800 --> 00:03:52.800
<v Speaker 1>Authentication and session management the first line of defense. What

70
00:03:52.840 --> 00:03:56.080
<v Speaker 1>are the specific policy failures? Pen testers look for the

71
00:03:56.120 --> 00:03:57.319
<v Speaker 1>easiest entry points.

72
00:03:57.560 --> 00:04:01.759
<v Speaker 2>We generally look for three main policy weaknesses in authentication design. First,

73
00:04:01.960 --> 00:04:05.879
<v Speaker 2>low password entropy requirements just weak policies. If the application

74
00:04:05.919 --> 00:04:10.400
<v Speaker 2>doesn't enforce length, complexity or frequent rotation, it just opens

75
00:04:10.400 --> 00:04:13.159
<v Speaker 2>the door wide for dictionary attacks or credential.

76
00:04:12.680 --> 00:04:15.680
<v Speaker 1>Stuffing, which means the app is basically helping attackers use

77
00:04:15.759 --> 00:04:18.040
<v Speaker 1>leaked passwords from other sites precisely.

78
00:04:18.160 --> 00:04:22.240
<v Speaker 2>Yeah. Second big issue informative error messages. This is really

79
00:04:22.240 --> 00:04:25.240
<v Speaker 2>a designed philosophy flaw. When the system gives back these

80
00:04:25.319 --> 00:04:32.120
<v Speaker 2>verbose errors distinguishing between say, invalid username and invalid password

81
00:04:32.160 --> 00:04:35.240
<v Speaker 2>for this user, that's a critical hint for the attacker.

82
00:04:35.879 --> 00:04:39.639
<v Speaker 2>That difference lets them reliably figure out valid usernames before

83
00:04:39.639 --> 00:04:42.759
<v Speaker 2>they even start trying passwords. Why is that still so common?

84
00:04:42.839 --> 00:04:45.160
<v Speaker 1>It seems like an easy fix, just use a generic

85
00:04:45.240 --> 00:04:48.600
<v Speaker 1>failure message. Is it just lack of training or sometimes

86
00:04:48.680 --> 00:04:49.839
<v Speaker 1>hidden in framework defaults?

87
00:04:49.879 --> 00:04:54.199
<v Speaker 2>Maybe Often it's convenience honestly tied into old system logic maybe,

88
00:04:54.360 --> 00:04:57.240
<v Speaker 2>or yeah, poorly configured framework defaults that give specific error

89
00:04:57.240 --> 00:05:00.839
<v Speaker 2>codes for debugging. But for a pintester, it's a huge shortcut,

90
00:05:00.920 --> 00:05:03.720
<v Speaker 2>and that leads right into the third flaw, weak lockout mechanisms.

91
00:05:03.839 --> 00:05:06.839
<v Speaker 2>If an account doesn't lock even temporarily after just a

92
00:05:06.839 --> 00:05:09.720
<v Speaker 2>few failed attempts like three or four, then automated root

93
00:05:09.759 --> 00:05:12.879
<v Speaker 2>force tools can just run slow and low persistently. They

94
00:05:12.879 --> 00:05:16.519
<v Speaker 2>can bypass network intrusion detection that's looking for rapid, high

95
00:05:16.560 --> 00:05:17.399
<v Speaker 2>volume attacks.

96
00:05:17.560 --> 00:05:21.439
<v Speaker 1>Okay, so let's assume the attacker gets through authentication successfully

97
00:05:21.480 --> 00:05:24.959
<v Speaker 1>logs in. Now the focus shifts immediately to session management.

98
00:05:25.519 --> 00:05:28.399
<v Speaker 1>That session ID, it's your digital ticket, proves who you are.

99
00:05:28.759 --> 00:05:32.199
<v Speaker 1>Our sources really stress These IDs must be cryptographically strong,

100
00:05:32.639 --> 00:05:35.839
<v Speaker 1>but the way they're stored that's often the real weak spot.

101
00:05:35.920 --> 00:05:37.600
<v Speaker 1>Right The cookie attributes correct.

102
00:05:37.639 --> 00:05:40.319
<v Speaker 2>Yeah, the attributes attached to that session cookie, they are

103
00:05:40.360 --> 00:05:44.759
<v Speaker 2>critical defensive layers. Pentesters check them meticulously. The first big

104
00:05:44.800 --> 00:05:48.439
<v Speaker 2>failure is the missing secure attribute. If this flag isn't set,

105
00:05:48.639 --> 00:05:51.839
<v Speaker 2>the browser will happily send that sensitive session cookie over

106
00:05:51.920 --> 00:05:55.879
<v Speaker 2>plane HTTP unencrypted, even if the user logged done over

107
00:05:56.000 --> 00:05:59.439
<v Speaker 2>HTTPS Initially, it risks passive sniffing or man in the

108
00:05:59.480 --> 00:06:00.000
<v Speaker 2>middle attack.

109
00:06:00.439 --> 00:06:03.600
<v Speaker 1>That's a huge risk for session hijacking. What about defenses

110
00:06:03.639 --> 00:06:06.279
<v Speaker 1>against code injection attacks that target the cookie itself.

111
00:06:07.199 --> 00:06:11.000
<v Speaker 2>That brings us straight to the missing HTTP n light attribute.

112
00:06:11.480 --> 00:06:14.279
<v Speaker 2>This is basically non negotiable. It's your main defense against

113
00:06:14.279 --> 00:06:18.680
<v Speaker 2>cross side scripting or XSS stealing sessions. Without this flag,

114
00:06:18.720 --> 00:06:21.600
<v Speaker 2>any successful client side script injection can just grab the

115
00:06:21.600 --> 00:06:25.279
<v Speaker 2>session cookie right out of the dome. Setting HTTPO e

116
00:06:25.319 --> 00:06:29.000
<v Speaker 2>way means client side scripts like JavaScript simply cannot access

117
00:06:29.000 --> 00:06:32.040
<v Speaker 2>the cookie. It effectively neuters XSS as a direct session

118
00:06:32.120 --> 00:06:33.000
<v Speaker 2>hijacking vector.

119
00:06:33.040 --> 00:06:36.480
<v Speaker 1>Okay, and the third major cookie risk involves scope, letting

120
00:06:36.480 --> 00:06:38.279
<v Speaker 1>the cookie wander where it shouldn't.

121
00:06:38.399 --> 00:06:41.000
<v Speaker 2>That's the danger of loose domain or path settings. Yeah.

122
00:06:41.319 --> 00:06:43.839
<v Speaker 2>If the domain is set too broadly like dot abc,

123
00:06:43.959 --> 00:06:46.759
<v Speaker 2>dot com instead of the specific restricted secure dot ABC

124
00:06:46.879 --> 00:06:49.680
<v Speaker 2>dot com. While that session cookie could potentially dead by

125
00:06:49.720 --> 00:06:53.199
<v Speaker 2>other subdomains, maybe once controlled by an attacker, it violates

126
00:06:53.240 --> 00:06:56.040
<v Speaker 2>the intended boundary the scope of the session. PENT testers

127
00:06:56.079 --> 00:06:58.040
<v Speaker 2>always look to ensure cookies are locked down at the

128
00:06:58.040 --> 00:06:59.279
<v Speaker 2>tightest possible context.

129
00:06:59.600 --> 00:07:03.160
<v Speaker 1>So we've secured the log in hypothetically and the session ticket.

130
00:07:03.439 --> 00:07:05.800
<v Speaker 1>Now the pen tester assumes they are logged in and

131
00:07:05.879 --> 00:07:08.959
<v Speaker 1>starts checking if the application actually respects the boundaries of

132
00:07:09.000 --> 00:07:11.639
<v Speaker 1>their user role, which leads us straight into the world

133
00:07:11.680 --> 00:07:13.519
<v Speaker 1>of broken access control flaws.

134
00:07:13.720 --> 00:07:16.720
<v Speaker 2>Right. These flaws are all about the application failing to

135
00:07:16.839 --> 00:07:21.360
<v Speaker 2>enforce permissions properly. The first major type is vertical privilege escalation.

136
00:07:22.079 --> 00:07:25.759
<v Speaker 2>That's when a low privileged user manages to access admin functionality,

137
00:07:25.839 --> 00:07:29.120
<v Speaker 2>or data. Pen testers often test this by just looking

138
00:07:29.160 --> 00:07:32.839
<v Speaker 2>at the HTTP request, maybe a JT or post request,

139
00:07:33.199 --> 00:07:36.199
<v Speaker 2>and they'll try adding parameters like dot roll admin or

140
00:07:36.319 --> 00:07:39.360
<v Speaker 2>changing a hidden form field from isolvated falls to true

141
00:07:39.639 --> 00:07:41.879
<v Speaker 2>just to see if the server blindly accepts it without

142
00:07:41.959 --> 00:07:43.759
<v Speaker 2>checking the user's actual server side role.

143
00:07:43.920 --> 00:07:46.920
<v Speaker 1>Wow, that's remarkably lazy design. If it works, is that

144
00:07:47.000 --> 00:07:49.600
<v Speaker 1>usually a flaw and custom logic or do framework sometimes

145
00:07:49.600 --> 00:07:51.279
<v Speaker 1>fail to enforce checks by default.

146
00:07:51.480 --> 00:07:54.800
<v Speaker 2>It's almost always a custom logic flaw. Yeah, the developer

147
00:07:54.839 --> 00:07:57.879
<v Speaker 2>trust of the UI assumes it only provides the correct options.

148
00:07:58.160 --> 00:08:00.560
<v Speaker 2>They forget that a user or an attack with burp

149
00:08:00.600 --> 00:08:04.199
<v Speaker 2>suite can easily bypass that UI. They can talk directly

150
00:08:04.240 --> 00:08:06.439
<v Speaker 2>to the server API, sending whatever parameters they want.

151
00:08:06.519 --> 00:08:10.360
<v Speaker 1>Okay, moving on to filesystem attacks. The famous directory traversal

152
00:08:10.399 --> 00:08:13.759
<v Speaker 1>or path reversal. How does that translate into actual damage?

153
00:08:13.800 --> 00:08:17.000
<v Speaker 2>Oh, this one can be devastating. It's a classic attack vector.

154
00:08:17.360 --> 00:08:19.879
<v Speaker 2>It exploits functions that read or write files but don't

155
00:08:19.920 --> 00:08:23.720
<v Speaker 2>properly sanitize user input. First, clean the input by using

156
00:08:23.759 --> 00:08:27.600
<v Speaker 2>those traversal sequences, you know the thing. An attack or

157
00:08:27.600 --> 00:08:31.240
<v Speaker 2>tricks the application, tricks it into navigating outside the designated

158
00:08:31.240 --> 00:08:34.799
<v Speaker 2>webroot directory. The critical goal here usually accessing high value

159
00:08:34.799 --> 00:08:37.879
<v Speaker 2>system files things like cetera pass weed to get userless

160
00:08:38.120 --> 00:08:42.120
<v Speaker 2>maybe configuration files holding database credentials or internal server paths

161
00:08:42.519 --> 00:08:43.600
<v Speaker 2>really sensitive steff.

162
00:08:43.720 --> 00:08:46.480
<v Speaker 1>And then there's id or insecure direct object references that

163
00:08:46.559 --> 00:08:48.919
<v Speaker 1>sounds less about system files and more about accessing other

164
00:08:49.000 --> 00:08:50.440
<v Speaker 1>users data exactly.

165
00:08:50.840 --> 00:08:55.639
<v Speaker 2>IDOOR happens when the application uses predictable identifiers like sequential

166
00:08:55.639 --> 00:08:59.279
<v Speaker 2>ideas or numbers one two three easily guessable stuff uses

167
00:08:59.320 --> 00:09:02.799
<v Speaker 2>them directly URLs or API calls. So if you're a

168
00:09:02.799 --> 00:09:04.919
<v Speaker 2>customer X and you see your order number in the

169
00:09:05.120 --> 00:09:08.120
<v Speaker 2>URL is one two three four five, an attacker just

170
00:09:08.200 --> 00:09:10.799
<v Speaker 2>changes it tries one two three four six to see

171
00:09:10.840 --> 00:09:13.440
<v Speaker 2>if they can view another customer's private data. It's a

172
00:09:13.480 --> 00:09:16.759
<v Speaker 2>failure to implement that secondary server side authorization check for

173
00:09:16.879 --> 00:09:20.279
<v Speaker 2>every single resource reference a massive logic vulnerability.

174
00:09:20.559 --> 00:09:22.919
<v Speaker 1>Okay, before we hit the big one injection, let's just

175
00:09:22.960 --> 00:09:26.679
<v Speaker 1>revisit information leakage because even if an immedia attack fails,

176
00:09:26.840 --> 00:09:29.679
<v Speaker 1>that leakage, especially through errors, is a huge help for

177
00:09:29.679 --> 00:09:30.279
<v Speaker 1>the next attempt.

178
00:09:30.360 --> 00:09:34.159
<v Speaker 2>Right. Oh, absolutely, Information disclosure through for BOSE error messages

179
00:09:34.240 --> 00:09:37.240
<v Speaker 2>is critical for a pentester. Database errors are the real

180
00:09:37.320 --> 00:09:40.879
<v Speaker 2>jackpot here. They can reveal internal database server ips, the

181
00:09:40.919 --> 00:09:45.200
<v Speaker 2>specific database version, table names, column names, and most dangerously,

182
00:09:45.559 --> 00:09:48.639
<v Speaker 2>sometimes the actual SEQL query that failed. This basically hands

183
00:09:48.679 --> 00:09:51.279
<v Speaker 2>the attacker the exact syntax they need to craft a

184
00:09:51.279 --> 00:09:52.840
<v Speaker 2>successful sequel injection attack.

185
00:09:52.919 --> 00:09:55.200
<v Speaker 1>It's like the server is debugging its own security flaws

186
00:09:55.200 --> 00:09:55.440
<v Speaker 1>for the.

187
00:09:55.399 --> 00:09:59.519
<v Speaker 2>Attacker pretty much. Yeah, and similarly, full stack traces from

188
00:09:59.559 --> 00:10:03.480
<v Speaker 2>applic or script errors they give the attacker valuable insights

189
00:10:03.519 --> 00:10:07.559
<v Speaker 2>into the execution flow, the application architecture, maybe internal library names.

190
00:10:07.840 --> 00:10:10.799
<v Speaker 2>It just significantly widens the potential attack surface.

191
00:10:10.879 --> 00:10:14.120
<v Speaker 1>Okay, let's wrap up with the vulnerability category that consistently

192
00:10:14.200 --> 00:10:19.799
<v Speaker 1>ranks as the most severe injection flaws, specifically SEQL injection right.

193
00:10:19.840 --> 00:10:23.600
<v Speaker 2>Sql injection SEL remains a top threat. Why because it

194
00:10:23.639 --> 00:10:27.480
<v Speaker 2>bypasses application logic entirely and talks directly to the database.

195
00:10:27.840 --> 00:10:30.080
<v Speaker 2>It happens when user input gets jammed directly into a

196
00:10:30.159 --> 00:10:35.080
<v Speaker 2>database query without proper validation, without sanitization. The initial detection

197
00:10:35.159 --> 00:10:38.200
<v Speaker 2>is often pretty straightforward. You submit a simple single quote

198
00:10:38.240 --> 00:10:40.080
<v Speaker 2>into an input field, see if it breaks the seqal

199
00:10:40.120 --> 00:10:41.360
<v Speaker 2>syntax and causes an error.

200
00:10:41.360 --> 00:10:43.279
<v Speaker 1>But what happens when the server is quiet, when the

201
00:10:43.360 --> 00:10:46.600
<v Speaker 1>environment's hardened, and you don't get those helpful database errors back?

202
00:10:46.879 --> 00:10:50.440
<v Speaker 2>Uh. That leads you into blind SQL, which is far

203
00:10:50.480 --> 00:10:54.159
<v Speaker 2>more specialized. Takes a lot more time because the application

204
00:10:54.240 --> 00:10:58.039
<v Speaker 2>returns no useful data, no error messages. The pentester has

205
00:10:58.080 --> 00:11:00.440
<v Speaker 2>to get creative. They have to turn the sequel cleary

206
00:11:00.600 --> 00:11:02.240
<v Speaker 2>into a kind of binary switch.

207
00:11:02.480 --> 00:11:02.679
<v Speaker 1>Two.

208
00:11:03.120 --> 00:11:05.720
<v Speaker 2>The injective payload that asks a true false question about

209
00:11:05.720 --> 00:11:08.600
<v Speaker 2>the database content, like is the first character of the

210
00:11:08.600 --> 00:11:10.440
<v Speaker 2>administrator's password, hash and A.

211
00:11:11.240 --> 00:11:12.799
<v Speaker 1>And how do they even know if the answer is

212
00:11:12.840 --> 00:11:14.519
<v Speaker 1>true if there's no error message.

213
00:11:14.559 --> 00:11:17.679
<v Speaker 2>They use time delays time based commands, So if the

214
00:11:17.720 --> 00:11:20.600
<v Speaker 2>answer to their question the conditional statement is true, the

215
00:11:20.679 --> 00:11:24.080
<v Speaker 2>attacker instructs the database via the injection to execute a

216
00:11:24.159 --> 00:11:27.759
<v Speaker 2>time delay like sleep for ten seconds. The attacker confirms

217
00:11:27.799 --> 00:11:30.559
<v Speaker 2>the condition was met purely because the server took exactly

218
00:11:30.600 --> 00:11:34.120
<v Speaker 2>ten seconds longer to respond than usual. It's laborious extracting

219
00:11:34.200 --> 00:11:37.039
<v Speaker 2>data one character, one true false question at a time,

220
00:11:37.200 --> 00:11:40.360
<v Speaker 2>but it's incredibly effective against those silent hardened servers.

221
00:11:40.519 --> 00:11:43.679
<v Speaker 1>Wow, that is persistence defined right there. Okay, finally we

222
00:11:43.720 --> 00:11:45.519
<v Speaker 1>have cross site scripting XSS.

223
00:11:45.639 --> 00:11:49.759
<v Speaker 2>Cross site scripting. Fundamentally, this is about injecting malicious code,

224
00:11:50.080 --> 00:11:53.559
<v Speaker 2>usually JavaScript, into a web page, a page that is

225
00:11:53.600 --> 00:11:57.759
<v Speaker 2>then viewed by another user. The victim mitigation relies heavily

226
00:11:57.799 --> 00:12:01.879
<v Speaker 2>on rigorous output encoding, making sure user input is always

227
00:12:01.919 --> 00:12:05.320
<v Speaker 2>treated as inert data, never is executable code when displayed,

228
00:12:05.759 --> 00:12:08.840
<v Speaker 2>and as we mentioned earlier that absolutely essential use of

229
00:12:08.879 --> 00:12:12.919
<v Speaker 2>the HGTP only y cookie flag protects the session even

230
00:12:12.960 --> 00:12:14.600
<v Speaker 2>if an EXSS flaw slips through.

231
00:12:14.960 --> 00:12:17.480
<v Speaker 1>And thinking about client side defenses. We should probably bring

232
00:12:17.519 --> 00:12:20.720
<v Speaker 1>in one more critical security header, the one that protects

233
00:12:20.759 --> 00:12:23.399
<v Speaker 1>the user experience itself, preventing clickjacking.

234
00:12:23.440 --> 00:12:26.759
<v Speaker 2>Oh, absolutely good point. The x frame options header is vital.

235
00:12:27.039 --> 00:12:29.960
<v Speaker 2>Clickjacking is this sneaky attack where an attacker loads your

236
00:12:30.039 --> 00:12:33.000
<v Speaker 2>vulnerable webap inside a transparent eye frame on their own

237
00:12:33.039 --> 00:12:36.120
<v Speaker 2>malicious site. They trick the user into clicking something sensitive

238
00:12:36.159 --> 00:12:39.080
<v Speaker 2>on your app like confirm purchase, while the user thinks

239
00:12:39.080 --> 00:12:41.639
<v Speaker 2>they're clicking something harmless on the attacker's page below it.

240
00:12:42.039 --> 00:12:44.879
<v Speaker 2>The xram options header just tells the browser do not

241
00:12:44.960 --> 00:12:47.240
<v Speaker 2>allow this page to be embedded in a frame, shuts

242
00:12:47.279 --> 00:12:48.480
<v Speaker 2>down that whole attack vector.

243
00:12:48.639 --> 00:12:51.679
<v Speaker 1>Okay, this has been a really complete deep dive into

244
00:12:51.879 --> 00:12:55.320
<v Speaker 1>the Pentester's playbook. We've hit the full life cycle that

245
00:12:55.399 --> 00:12:59.360
<v Speaker 1>aggressive network and app reconnaissance, the soft targets and authentication

246
00:12:59.399 --> 00:13:03.440
<v Speaker 1>in session man management, especially those missing cookie flags. The

247
00:13:03.519 --> 00:13:07.519
<v Speaker 1>structural failures and access control like idoor and path traversal,

248
00:13:08.279 --> 00:13:11.799
<v Speaker 1>and of course the devastating impact of injection, whether it's

249
00:13:11.919 --> 00:13:13.240
<v Speaker 1>traditional or blind.

250
00:13:13.600 --> 00:13:15.840
<v Speaker 2>And if you look at the defensive side, the source

251
00:13:15.879 --> 00:13:18.679
<v Speaker 2>material really emphasizes that many of these problems just vanish

252
00:13:18.720 --> 00:13:23.320
<v Speaker 2>with fundamental controls. Basic hygiene. Strong input validation is essential.

253
00:13:23.840 --> 00:13:27.960
<v Speaker 2>Using parameterized queries prevents SQL injection entirely basically by separating

254
00:13:28.039 --> 00:13:30.600
<v Speaker 2>the code from the data and just ensuring those security

255
00:13:30.639 --> 00:13:33.759
<v Speaker 2>headers like HTTPO and Y and X frame options are

256
00:13:33.759 --> 00:13:37.159
<v Speaker 2>correctly implemented, it provides an instant layer of client side defense.

257
00:13:37.320 --> 00:13:39.519
<v Speaker 1>It really seems like defense is often just about doing

258
00:13:39.559 --> 00:13:41.519
<v Speaker 1>the basics correctly consistently.

259
00:13:41.799 --> 00:13:44.960
<v Speaker 2>It really is. So often the difference between a vulnerable

260
00:13:44.960 --> 00:13:47.799
<v Speaker 2>app and a secure one comes down to making those simple,

261
00:13:47.919 --> 00:13:52.879
<v Speaker 2>non negotiable architectural choices like always enforcing the HGTPO in

262
00:13:52.960 --> 00:13:57.840
<v Speaker 2>LEAOLI flag or making mandatory authorization checks on every single

263
00:13:57.879 --> 00:14:00.679
<v Speaker 2>resource request, not just relying on the UI.

264
00:14:01.080 --> 00:14:03.639
<v Speaker 1>So here is a provocative thought for you, our listener,

265
00:14:03.720 --> 00:14:07.000
<v Speaker 1>to carry forward, given that vulnerability is often stemmed from

266
00:14:07.039 --> 00:14:11.120
<v Speaker 1>neglecting these security basics, especially in complex applications. Which of

267
00:14:11.159 --> 00:14:13.799
<v Speaker 1>these three fundamental defenses do you think offers the most

268
00:14:13.840 --> 00:14:18.200
<v Speaker 1>immediate critical security gain considering its implementation effort. Is it

269
00:14:18.240 --> 00:14:21.600
<v Speaker 1>implementing a strong and forced password policy. Is it setting

270
00:14:21.639 --> 00:14:25.799
<v Speaker 1>the HGTPO and ley cookie flag universally across the application,

271
00:14:26.120 --> 00:14:28.559
<v Speaker 1>or is it mandating the use of parameterized queries for

272
00:14:28.600 --> 00:14:31.960
<v Speaker 1>all database interactions, something to consider next time you analyze

273
00:14:32.000 --> 00:14:34.600
<v Speaker 1>where the true security boundary lies in a web application.
