Skip to content

Commit aa259c9

Browse files
authored
Create 13.1.3.yaml
Based on requirement 13.1.3, this template checks whether the API URLs expose sensitive Information through query strings. Signed-off-by: Hamed Salimian <[email protected]>
1 parent bfb221d commit aa259c9

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

templates/headless/13.1.3.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
id: ASVS-4-0-3-V13-1-3
2+
3+
info:
4+
name: ASVS 13.1.3 Check
5+
author: Hamed Salimian
6+
severity: medium
7+
classification:
8+
cwe-id: CWE-598
9+
reference:
10+
- https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/06-Session_Management_Testing/04-Testing_for_Exposed_Session_Variables.html
11+
- https://github.com/danielmiessler/SecLists/blob/master/Discovery/Variables/secret-keywords.txt
12+
- https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/Web/session-id.txt
13+
tags: asvs,13.1.3
14+
description: |
15+
Verify API URLs do not expose sensitive information, such as the API key, session tokens etc.
16+
17+
18+
headless:
19+
- steps:
20+
- args:
21+
url: "{{BaseURL}}"
22+
action: navigate
23+
24+
- action: waitload
25+
26+
- action: script
27+
name: urls
28+
args:
29+
code: |
30+
() => {
31+
return [...new Set(Array.from(document.querySelectorAll('[src], [href], [url], [action]')).map(i => i.src || i.href || i.url || i.action))].join('\r\n')
32+
}
33+
34+
extractors:
35+
- type: regex
36+
part: urls
37+
regex:
38+
- (i?)(https?|wss?)://[^\s?]+(?:\?|&)(?:session|ASP.NET_SessionId|ASPSESSIONID|SITESERVER|cfid|cftoken|jsessionid|sessid|sid|viewstate|zenid|PHPSESSID|ConsumerKey|ConsumerSecret|DB_USERNAME|HEROKU_API_KEY|HOMEBREW_GITHUB_API_TOKEN|JEKYLL_GITHUB_TOKEN|PT_TOKEN|SESSION_TOKEN|SF_USERNAME|SLACK_BOT_TOKEN|access-token|access_token|access_token_secret|accesstoken|admin|api-key|api_key|api_secret_key|api_token|auth_token|authkey|authorization|authorization_key|authorization_token|authtoken|aws_access_key_id|aws_secret_access_key|bearer|bot_access_token|bucket|client-secret|client_id|client_key|client_secret|clientsecret|consumer_key|consumer_secret|dbpasswd|email|encryption-key|encryption_key|encryptionkey|id_dsa|irc_pass|key|oauth_token|pass|password|private_key|private-key|privatekey|secret|secret-key|secret_key|secret_token|secretkey|secretkey|session_key|session_secret|slack_api_token|slack_secret_token|slack_token|ssh-key|ssh_key|sshkey|token|username|xoxa-2|xoxr)=[^&\s]+
39+
40+
matchers:
41+
- type: regex
42+
part: urls
43+
regex:
44+
- (i?)(https?|wss?)://[^\s?]+(?:\?|&)(?:session|ASP.NET_SessionId|ASPSESSIONID|SITESERVER|cfid|cftoken|jsessionid|sessid|sid|viewstate|zenid|PHPSESSID|ConsumerKey|ConsumerSecret|DB_USERNAME|HEROKU_API_KEY|HOMEBREW_GITHUB_API_TOKEN|JEKYLL_GITHUB_TOKEN|PT_TOKEN|SESSION_TOKEN|SF_USERNAME|SLACK_BOT_TOKEN|access-token|access_token|access_token_secret|accesstoken|admin|api-key|api_key|api_secret_key|api_token|auth_token|authkey|authorization|authorization_key|authorization_token|authtoken|aws_access_key_id|aws_secret_access_key|bearer|bot_access_token|bucket|client-secret|client_id|client_key|client_secret|clientsecret|consumer_key|consumer_secret|dbpasswd|email|encryption-key|encryption_key|encryptionkey|id_dsa|irc_pass|key|oauth_token|pass|password|private_key|private-key|privatekey|secret|secret-key|secret_key|secret_token|secretkey|secretkey|session_key|session_secret|slack_api_token|slack_secret_token|slack_token|ssh-key|ssh_key|sshkey|token|username|xoxa-2|xoxr)=[^&\s]+

0 commit comments

Comments
 (0)