Skip to content

Commit 29c6d95

Browse files
committed
remove anchor tag
1 parent db8d4cc commit 29c6d95

File tree

14 files changed

+33
-33
lines changed

14 files changed

+33
-33
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99
Welcome to offsecnotes, a website dedicated to Offensive Security notes. This project provides a collection of concepts, techniques, and tools useful for anyone interested in penetration testing and offensive security.
1010

1111
<p align="center">
12-
<a href="#key-features">Android</a> •
13-
<a href="#how-to-use">Web App</a> •
14-
<a href="#download">Network</a> •
15-
<a href="#credits">Misc</a>
12+
<a href="https://frankheat.io">Android</a> •
13+
<a href="https://frankheat.io">Web App</a> •
14+
<a href="https://frankheat.io">Network</a> •
15+
<a href="https://frankheat.io">Misc</a>
1616
</p>
1717

1818
# Project link
1919

20-
👉 https://frankheat.github.io/offsecnotes
20+
👉 https://frankheat.io
2121

2222
# Table of contents
2323

content/android/framework.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ weight: 6
99

1010
**Read React Native JavaScript source code**
1111

12-
### Without Hermes engine <a href="#react-native-without-hermes-engine" id="react-native-without-hermes-engine"></a>
12+
### Without Hermes engine
1313

1414
```sh
1515
# 1. Dissasemble
@@ -24,7 +24,7 @@ cat index.android.bundle
2424
# 4. Build and sign the apk
2525
```
2626

27-
### With Hermes engine <a href="#react-native-without-hermes-engine" id="react-native-without-hermes-engine"></a>
27+
### With Hermes engine
2828

2929
You need [https://github.com/Kirlif/HBC-Tool](https://github.com/Kirlif/HBC-Tool)
3030

content/android/reverse engineering/reversing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ java -jar APKEditor.jar m -i <path_splitted_apk> -o merged.apk
114114
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o <merged_signed>
115115
```
116116

117-
## Troubleshooting apktool <a href="#troubleshooting-install-errors" id="troubleshooting-install-errors"></a>
117+
## Troubleshooting apktool
118118

119119
* **INSTALL\_FAILED\_INVALID\_APK:** Failed to extract native libraries
120120
* This error occurs in some apktool versions with apps containing native libraries. To fix it, set `extractNativeLibs` to `true` in `AndroidManifest.xml`, then repackage and re-sign the APK.

content/web/vulnerabilities/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ If the application behaves differently, may suggest that the invalid value impac
9696
**Note**: We change isAdmin to "foo" because we want see if the user input is processed. If we get an error may indicate that the user input is being processed.
9797
{{< /hint >}}
9898

99-
## Server-side parameter pollution <a href="#server-side-parameter-pollution" id="server-side-parameter-pollution"></a>
99+
## Server-side parameter pollution
100100

101101
You make the request and the server queries an internal API
102102

content/web/vulnerabilities/authentication.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ See if you can change the password of an arbitrary user. E.g. look for a hidden
7777
* current password: \<right>, new-password-1=XXX, new-password-2=YYY
7878
{{< /hint >}}
7979

80-
## 2FA <a href="#bypassing-two-factor-authentication" id="bypassing-two-factor-authentication"></a>
80+
## 2FA
8181

8282
* **Brute-force OTP**
8383
* **Bypassing two-factor authentication**&#x20;

content/web/vulnerabilities/graphql-api.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ JSON-encoded body
2929
}
3030
```
3131

32-
## GraphQL endpoints <a href="#finding-graphql-endpoints" id="finding-graphql-endpoints"></a>
32+
## GraphQL endpoints
3333

34-
### Universal queries <a href="#universal-queries" id="universal-queries"></a>
34+
### Universal queries
3535

3636
Sending `query{__typename}` to a GraphQL endpoint will return `{"data": {"__typename": "query"}}` in the response.
3737

3838
Try with POST, GET or POST with `application/x-www-form-urlencoded`
3939

40-
## Common endpoint names <a href="#common-endpoint-names" id="common-endpoint-names"></a>
40+
## Common endpoint names
4141

4242
```sh
4343
/graphql
@@ -58,9 +58,9 @@ More endpoint: [https://github.com/danielmiessler/SecLists/blob/fe2aa9e7b04b98d9
5858
**Note**: Response could be "query not present" or similar. (meaning it's present)
5959
{{< /hint >}}
6060

61-
## Discovering schema information <a href="#discovering-schema-information" id="discovering-schema-information"></a>
61+
## Discovering schema information
6262

63-
### Using introspection <a href="#using-introspection" id="using-introspection"></a>
63+
### Using introspection
6464

6565
To use introspection to discover schema information, query the `__schema` field. (could be disabled in production environments)
6666

@@ -188,7 +188,7 @@ Now you can easily view relationships between schema entities using a GraphQL vi
188188

189189
Suggestions are a feature of the Apollo GraphQL platform where the server suggests query amendments in error messages. [Clairvoyance](https://github.com/nikitastupin/clairvoyance) is a tool that uses suggestions to automatically recover all or part of a GraphQL schema, even when introspection is disabled.
190190

191-
## Bypassing GraphQL introspection defenses <a href="#bypassing-graphql-introspection-defenses" id="bypassing-graphql-introspection-defenses"></a>
191+
## Bypassing GraphQL introspection defenses
192192

193193
* Developers might use a regex to exclude the `__schema` keyword. Try spaces, new lines, and commas, which GraphQL ignores but flawed regex does not.
194194

@@ -210,7 +210,7 @@ Suggestions are a feature of the Apollo GraphQL platform where the server sugges
210210

211211
* POST request with a content-type of `x-www-form-urlencoded`
212212

213-
## Bypassing rate limiting <a href="#bypassing-rate-limiting-using-aliases" id="bypassing-rate-limiting-using-aliases"></a>
213+
## Bypassing rate limiting
214214

215215
Use aliases to return multiple instances of the same type of object in one request.
216216

@@ -230,7 +230,7 @@ Use aliases to return multiple instances of the same type of object in one reque
230230
}
231231
```
232232

233-
## GraphQL CSRF <a href="#graphql-csrf" id="graphql-csrf"></a>
233+
## GraphQL CSRF
234234

235235
GraphQL can be exploited for CSRF attacks. POST requests with `application/json` content type are secure against forgery if the content type is validated.
236236

content/web/vulnerabilities/jwt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4
1515

1616
The header and payload parts of a JWT are base64url-encoded JSON objects.
1717

18-
**JWT signature <a href="#jwt-signature" id="jwt-signature"></a>**
18+
**JWT signature**
1919

2020
The server issuing the token generates the signature by hashing the header and payload, sometimes encrypting the resulting hash. This process uses a secret signing key, allowing servers to verify the token's integrity:
2121

content/web/vulnerabilities/oauth-2.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ if you notice that the authorization request does not send a `state` parameter,
9999

100100
## OpenID Connect
101101

102-
### Identifying OpenID Connect <a href="#identifying-openid-connect" id="identifying-openid-connect"></a>
102+
### Identifying OpenID Connect
103103

104104
Look for the mandatory `openid` scope
105105

content/web/vulnerabilities/race-conditions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def handleResponse(req, interesting):
5151
table.add(req)
5252
```
5353

54-
## Multi-endpoint race windows <a href="#aligning-multi-endpoint-race-windows" id="aligning-multi-endpoint-race-windows"></a>
54+
## Multi-endpoint race windows
5555

5656
**Connection warming**
5757

@@ -66,7 +66,7 @@ In Burp Repeater, try adding a `GET` request for the homepage at the start of yo
6666

6767
Web servers often delay processing if too many requests are sent too quickly. By sending many dummy requests to trigger rate or resource limits, you can create a server-side delay, making the single-packet attack viable even with delayed execution.
6868

69-
## Session-based locking mechanisms <a href="#session-based-locking-mechanisms" id="session-based-locking-mechanisms"></a>
69+
## Session-based locking mechanisms
7070

7171
Some frameworks prevent accidental data corruption through request locking. For example, PHP's native session handler processes one request per session at a time.
7272

content/web/vulnerabilities/web-cache-deception.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ Premise
120120
/static/js/info.js # 2 time "X-Cache: hit" -> Perfect, the page is cached
121121
```
122122

123-
### Normalization by the origin server <a href="#exploiting-normalization-by-the-origin-server" id="exploiting-normalization-by-the-origin-server"></a>
123+
### Normalization by the origin server
124124

125125
```python
126126
# 3. Confirm that the cache rule is based on the static directory

0 commit comments

Comments
 (0)