Skip to content

Commit c458f48

Browse files
authored
Publish Latest 2024-12-17 (#437)
Updates based on OWASP/wstg@98a4d2b
1 parent beeb50f commit c458f48

File tree

68 files changed

+269
-301
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+269
-301
lines changed

latest/2-Introduction/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,11 +315,11 @@ The following examples show why automated black-box testing may not be effective
315315

316316
### Example 1: Magic Parameters
317317

318-
Imagine a simple web application that accepts a name-value pair of "magic" and then the value. For simplicity, the GET request may be: `http://www.host/application?magic=value`
318+
Imagine a simple web application that accepts a name-value pair of "magic" and then the value. For simplicity, the GET request may be: `https://www.host/application?magic=value`
319319

320320
To further simplify the example, the values in this case can only be ASCII characters a – z (upper or lowercase) and integers 0 – 9.
321321

322-
The designers of this application created an administrative backdoor during testing, but obfuscated it to prevent the casual observer from discovering it. By submitting the value sf8g7sfjdsurtsdieerwqredsgnfg8d (30 characters), the user will then be logged in and presented with an administrative screen with total control of the application. The HTTP request is now: `http://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnfg8d`
322+
The designers of this application created an administrative backdoor during testing, but obfuscated it to prevent the casual observer from discovering it. By submitting the value sf8g7sfjdsurtsdieerwqredsgnfg8d (30 characters), the user will then be logged in and presented with an administrative screen with total control of the application. The HTTP request is now: `https://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnfg8d`
323323

324324
Given that all of the other parameters were simple two- and three-characters fields, it is not possible to start guessing combinations at approximately 28 characters. A web application scanner will need to brute force (or guess) the entire key space of 30 characters. That is up to 30\^28 permutations, or trillions of HTTP requests. That is an electron in a digital haystack.
325325

latest/2-Introduction/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -315,11 +315,11 @@ The following examples show why automated black-box testing may not be effective
315315

316316
### Example 1: Magic Parameters
317317

318-
Imagine a simple web application that accepts a name-value pair of "magic" and then the value. For simplicity, the GET request may be: `http://www.host/application?magic=value`
318+
Imagine a simple web application that accepts a name-value pair of "magic" and then the value. For simplicity, the GET request may be: `https://www.host/application?magic=value`
319319

320320
To further simplify the example, the values in this case can only be ASCII characters a – z (upper or lowercase) and integers 0 – 9.
321321

322-
The designers of this application created an administrative backdoor during testing, but obfuscated it to prevent the casual observer from discovering it. By submitting the value sf8g7sfjdsurtsdieerwqredsgnfg8d (30 characters), the user will then be logged in and presented with an administrative screen with total control of the application. The HTTP request is now: `http://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnfg8d`
322+
The designers of this application created an administrative backdoor during testing, but obfuscated it to prevent the casual observer from discovering it. By submitting the value sf8g7sfjdsurtsdieerwqredsgnfg8d (30 characters), the user will then be logged in and presented with an administrative screen with total control of the application. The HTTP request is now: `https://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnfg8d`
323323

324324
Given that all of the other parameters were simple two- and three-characters fields, it is not possible to start guessing combinations at approximately 28 characters. A web application scanner will need to brute force (or guess) the entire key space of 30 characters. That is up to 30\^28 permutations, or trillions of HTTP requests. That is an electron in a digital haystack.
325325

latest/3-The_OWASP_Testing_Framework/1-Penetration_Testing_Methodologies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ OSSTMM includes the following key sections:
131131

132132
- [PCI Data Security Standard - Penetration TestingGuidance](https://www.pcisecuritystandards.org/documents/Penetration-Testing-Guidance-v1_1.pdf)
133133
- [PTES Standard](http://www.pentest-standard.org/index.php/Main_Page)
134-
- [Open Source Security Testing Methodology Manual (OSSTMM)](http://www.isecom.org/research/osstmm.html)
134+
- [Open Source Security Testing Methodology Manual (OSSTMM)](https://www.isecom.org/research.html#content5-9d)
135135
- [Technical Guide to Information Security Testing and Assessment NIST SP 800-115](https://csrc.nist.gov/publications/detail/sp/800-115/final)
136136
- [HIPAA Security Testing Guidance](https://www.hhs.gov/hipaa/for-professionals/security/guidance/cybersecurity/index.html)
137137
- [Penetration Testing Framework 0.59](http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html)

latest/4-Web_Application_Security_Testing/01-Information_Gathering/01-Conduct_Search_Engine_Discovery_Reconnaissance_for_Information_Leakage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ Use a search engine to search for potentially sensitive information. This may in
4242
Do not limit testing to just one search engine provider, as different search engines may generate different results. Search engine results can vary in a few ways, depending on when the engine last crawled content, and the algorithm the engine uses to determine relevant pages. Consider using the following (alphabetically listed) search engines:
4343

4444
- [Baidu](https://www.baidu.com/), China's [most popular](https://en.wikipedia.org/wiki/Web_search_engine#Market_share) search engine.
45-
- [Bing](https://www.bing.com/), a search engine owned and operated by Microsoft, and the second [most popular](https://en.wikipedia.org/wiki/Web_search_engine#Market_share) worldwide. Supports [advanced search keywords](http://help.bing.microsoft.com/#apex/18/en-US/10001/-1).
45+
- [Bing](https://www.bing.com/), a search engine owned and operated by Microsoft, and the second [most popular](https://en.wikipedia.org/wiki/Web_search_engine#Market_share) worldwide. Supports [advanced search keywords](https://help.bing.microsoft.com/#apex/18/en-US/10001/-1).
4646
- [binsearch.info](https://binsearch.info/), a search engine for binary Usenet newsgroups.
4747
- [Common Crawl](https://commoncrawl.org/), "an open repository of web crawl data that can be accessed and analyzed by anyone."
4848
- [DuckDuckGo](https://duckduckgo.com/), a privacy-focused search engine that compiles results from many different [sources](https://help.duckduckgo.com/results/sources/). Supports [search syntax](https://help.duckduckgo.com/duckduckgo-help-pages/results/syntax/).

latest/4-Web_Application_Security_Testing/01-Information_Gathering/02-Fingerprint_Web_Server.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ Server: lighttpd/1.4.54
162162

163163
<?xml version="1.0" encoding="iso-8859-1"?>
164164
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
165-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
166-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
165+
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
166+
<html xmlns="https://www.w3.org/1999/xhtml/" xml:lang="en" lang="en">
167167
<head>
168168
<title>400 Bad Request</title>
169169
</head>

latest/4-Web_Application_Security_Testing/01-Information_Gathering/03-Review_Webserver_Metafiles_for_Information_Leakage.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Web spiders/robots/crawlers can [intentionally ignore](https://blog.isc2.org/isc
5959
The `robots.txt` file is retrieved from the web root directory of the web server. For example, to retrieve the `robots.txt` from `www.google.com` using `wget` or `curl`:
6060

6161
```bash
62-
$ curl -O -Ss http://www.google.com/robots.txt && head -n5 robots.txt
62+
$ curl -O -Ss https://www.google.com/robots.txt && head -n5 robots.txt
6363
User-agent: *
6464
Disallow: /search
6565
Allow: /search/about
@@ -126,7 +126,7 @@ $ wget --no-verbose https://www.google.com/sitemap.xml && head -n8 sitemap.xml
126126
2020-05-05 12:23:30 URL:https://www.google.com/sitemap.xml [2049] -> "sitemap.xml" [1]
127127

128128
<?xml version="1.0" encoding="UTF-8"?>
129-
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">
129+
<sitemapindex xmlns="https://www.google.com/schemas/sitemap/0.84">
130130
<sitemap>
131131
<loc>https://www.google.com/gmail/sitemap.xml</loc>
132132
</sitemap>
@@ -140,7 +140,7 @@ Exploring from there a tester may wish to retrieve the gmail sitemap `https://ww
140140

141141
```xml
142142
<?xml version="1.0" encoding="UTF-8"?>
143-
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
143+
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="https://www.w3.org/1999/xhtml">
144144
<url>
145145
<loc>https://www.google.com/intl/am/gmail/about/</loc>
146146
<xhtml:link href="https://www.google.com/gmail/about/" hreflang="x-default" rel="alternate"/>

latest/4-Web_Application_Security_Testing/01-Information_Gathering/04-Enumerate_Applications_on_Webserver.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Security professionals are sometimes given a set of IP addresses as a target to
2222

2323
Sometimes, the target specification is richer. The tester may be given a list of IP addresses and their corresponding symbolic names. Nevertheless, this list might convey partial information, i.e., it could omit some symbolic names and the client may not even be aware of that (this is more likely to happen in large organizations).
2424

25-
Other issues affecting the scope of the assessment are represented by web applications published at non-obvious URLs (e.g., `http://www.example.com/some-strange-URL`), which are not referenced elsewhere. This may happen either by error (due to misconfigurations), or intentionally (for example, unadvertised administrative interfaces).
25+
Other issues affecting the scope of the assessment are represented by web applications published at non-obvious URLs (e.g., `https://www.example.com/some-strange-URL`), which are not referenced elsewhere. This may happen either by error (due to misconfigurations), or intentionally (for example, unadvertised administrative interfaces).
2626

2727
To address these issues, it is necessary to perform web application discovery.
2828

@@ -32,23 +32,23 @@ To address these issues, it is necessary to perform web application discovery.
3232

3333
## How to Test
3434

35-
Web application discovery is a process that aims to identify web applications on a given infrastructure. The latter is usually specified as a set of IP addresses (maybe a net block), but may consist of a set of DNS symbolic names or a mix of the two. This information is handed out prior to the execution of an assessment, be it a classic-style penetration test or an application-focused assessment. In both cases, unless the rules of engagement specify otherwise (e.g., test only the application located at the URL `http://www.example.com/`), the assessment should strive to be the most comprehensive in scope, i.e. it should identify all the applications accessible through the given target. The following examples examine a few techniques that can be employed to achieve this goal.
35+
Web application discovery is a process that aims to identify web applications on a given infrastructure. The latter is usually specified as a set of IP addresses (maybe a net block), but may consist of a set of DNS symbolic names or a mix of the two. This information is handed out prior to the execution of an assessment, be it a classic-style penetration test or an application-focused assessment. In both cases, unless the rules of engagement specify otherwise (e.g., test only the application located at the URL `https://www.example.com/`), the assessment should strive to be the most comprehensive in scope, i.e. it should identify all the applications accessible through the given target. The following examples examine a few techniques that can be employed to achieve this goal.
3636

3737
> Some of the following techniques apply to Internet-facing web servers, namely DNS and reverse-IP web-based search services and the use of search engines. Examples make use of private IP addresses (such as `192.168.1.100`), which, unless indicated otherwise, represent *generic* IP addresses and are used only for anonymity purposes.
3838
3939
There are three factors influencing how many applications are related to a given DNS name (or an IP address):
4040

4141
1. **Different Base URL**
4242

43-
The obvious entry point for a web application is `www.example.com`, i.e., with this shorthand notation we think of the web application originating at `http://www.example.com/` (the same applies for HTTPS). However, even though this is the most common situation, there is nothing forcing the application to start at `/`.
43+
The obvious entry point for a web application is `www.example.com`, i.e., with this shorthand notation we think of the web application originating at `https://www.example.com/` (the same applies for HTTPS). However, even though this is the most common situation, there is nothing forcing the application to start at `/`.
4444

45-
For example, the same symbolic name may be associated to three web applications such as: `http://www.example.com/app1` `http://www.example.com/app2` `http://www.example.com/app3`
45+
For example, the same symbolic name may be associated to three web applications such as: `https://www.example.com/app1` `https://www.example.com/app2` `https://www.example.com/app3`
4646

47-
In this case, the URL `http://www.example.com/` would not be associated with a meaningful page. The three applications would remain **hidden** unless the tester explicitly knows how to access them, i.e., the tester knows *app1*, *app2* or *app3*. There is usually no need to publish web applications in this way, unless the owner doesn’t want them to be accessible in a standard way, and is prepared to inform the users about their exact location. This doesn’t mean that these applications are secret, just that their existence and location is not explicitly advertised.
47+
In this case, the URL `https://www.example.com/` would not be associated with a meaningful page. The three applications would remain **hidden** unless the tester explicitly knows how to access them, i.e., the tester knows *app1*, *app2* or *app3*. There is usually no need to publish web applications in this way, unless the owner doesn’t want them to be accessible in a standard way, and is prepared to inform the users about their exact location. This doesn’t mean that these applications are secret, just that their existence and location is not explicitly advertised.
4848

4949
2. **Non-standard Ports**
5050

51-
While web applications usually live on port 80 (HTTP) and 443 (HTTPS), there is nothing fixed or mandatory about these port numbers. In fact, web applications may be associated with arbitrary TCP ports, and can be referenced by specifying the port number as follows: `http[s]://www.example.com:port/`. For example, `http://www.example.com:20000/`.
51+
While web applications usually live on port 80 (HTTP) and 443 (HTTPS), there is nothing fixed or mandatory about these port numbers. In fact, web applications may be associated with arbitrary TCP ports, and can be referenced by specifying the port number as follows: `http[s]://www.example.com:port/`. For example, `https://www.example.com:20000/`.
5252

5353
3. **Virtual Hosts**
5454

@@ -171,7 +171,7 @@ Reverse-IP services are similar to DNS inverse queries, with the difference that
171171

172172
- [MxToolbox Reverse IP](https://mxtoolbox.com/ReverseLookup.aspx)
173173
- [DNSstuff](https://www.dnsstuff.com/) (multiple services available)
174-
- [Net Square](https://web.archive.org/web/20190515092354/http://www.net-square.com/mspawn.html) (multiple queries on domains and IP addresses, requires installation)
174+
- [Net Square](https://web.archive.org/web/20190515092354/https://www.net-square.com/mspawn.html) (multiple queries on domains and IP addresses, requires installation)
175175

176176
#### Googling
177177

latest/4-Web_Application_Security_Testing/01-Information_Gathering/05-Review_Web_Page_Content_for_Information_Leakage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ The tester may even find something like this:
5757
Check HTML version information for valid version numbers and Data Type Definition (DTD) URLs
5858

5959
```html
60-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
60+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
6161
```
6262

6363
- `strict.dtd` -- default strict DTD

latest/4-Web_Application_Security_Testing/01-Information_Gathering/08-Fingerprint_Web_Application_Framework.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ The cookie `CAKEPHP` has automatically been set, which gives information about t
9898
* Note the guidelines for Session names states: "The session name references
9999
* the session id in cookies and URLs. It should contain only alphanumeric
100100
* characters."
101-
* @link http://php.net/session_name
101+
* @link https://php.net/session_name
102102
*/
103103
Configure::write('Session.cookie', 'CAKEPHP');
104104
```
@@ -202,8 +202,8 @@ As can be seen in the following screenshot the listed file system path points to
202202
| phpBB | `<body id="phpbb"` |
203203
| Mediawiki | `<meta name="generator" content="MediaWiki 1.21.9" />` |
204204
| Joomla | `<meta name="generator" content="Joomla! - Open Source Content Management" />` |
205-
| Drupal | `<meta name="Generator" content="Drupal 7 (http://drupal.org)" />` |
206-
| DotNetNuke | `DNN Platform - [http://www.dnnsoftware.com](http://www.dnnsoftware.com)` |
205+
| Drupal | `<meta name="Generator" content="Drupal 7 (https://drupal.org)" />` |
206+
| DotNetNuke | `DNN Platform - [https://www.dnnsoftware.com](https://www.dnnsoftware.com)` |
207207

208208
#### General Markers
209209

latest/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/04-Review_Old_Backup_and_Unreferenced_Files_for_Sensitive_Information.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,10 +185,8 @@ Vulnerability assessment tools tend to include checks to spot web directories ha
185185
Web spider tools
186186

187187
- [wget](https://www.gnu.org/software/wget/)
188-
- [Wget for Windows](http://www.interlog.com/~tcharron/wgetwin.html)
189-
- [Sam Spade](https://web.archive.org/web/20090926061558/http://preview.samspade.org/ssw/download.html)
190188
- [Spike proxy includes a site crawler function](https://www.spikeproxy.com/)
191-
- [Xenu](http://home.snafu.de/tilman/xenulink.html)
189+
- [Xenu](https://home.snafu.de/tilman/xenulink.html)
192190
- [curl](https://curl.haxx.se)
193191

194192
Some of them are also included in standard Linux distributions. Web development tools usually include facilities to identify broken links and unreferenced files.

0 commit comments

Comments
 (0)