|
|
@@ -2,6 +2,7 @@ package rules
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "github.com/zricethezav/gitleaks/v8/cmd/generate/config/utils"
|
|
|
"regexp"
|
|
|
|
|
|
"github.com/zricethezav/gitleaks/v8/cmd/generate/secrets"
|
|
|
@@ -28,7 +29,7 @@ func SlackBotToken() *config.Rule {
|
|
|
// https://github.com/jonz-secops/TokenTester/blob/978e9f3eabc7e9978769cfbba10735afa3bf627e/slack#LL44C27-L44C86
|
|
|
`"bot_token2": "xoxb-263594206564-2343594206574-FGqddMF8t08v8N7Oq4i57vs1MBS"`, // gitleaks:allow
|
|
|
`"bot_token3": "xoxb-4614724432022-5152386766518-O5WzjWGLG0wcCm2WPrjEmnys"`, // gitleaks:allow
|
|
|
- `"bot_token4": ` + fmt.Sprintf(`"xoxb-%s-%s-%s"`, secrets.NewSecret(numeric("13")), secrets.NewSecret(numeric("12")), secrets.NewSecret(alphaNumeric("24"))),
|
|
|
+ `"bot_token4": ` + fmt.Sprintf(`"xoxb-%s-%s-%s"`, secrets.NewSecret(utils.Numeric("13")), secrets.NewSecret(utils.Numeric("12")), secrets.NewSecret(utils.AlphaNumeric("24"))),
|
|
|
}
|
|
|
fps := []string{
|
|
|
"xoxb-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxxxx",
|
|
|
@@ -36,7 +37,7 @@ func SlackBotToken() *config.Rule {
|
|
|
"xoxb-12345-abcd234",
|
|
|
"xoxb-xoxb-my-bot-token",
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// https://api.slack.com/authentication/token-types#user
|
|
|
@@ -61,7 +62,7 @@ func SlackUserToken() *config.Rule {
|
|
|
// https://github.com/evanyeung/terminal-slack/blob/b068f77808de72424d08b525d6cbf814849acd08/readme.md?plain=1#L66
|
|
|
`"user_token4": "xoxp-254112160503-252950188691-252375361712-6cbf56aada30951a9d310a5f23d032a0"`, // gitleaks:allow
|
|
|
`"user_token5": "xoxp-4614724432022-4621207627011-5182682871568-1ddad9823e8528ad0f4944dfa3c6fc6c"`, // gitleaks:allow
|
|
|
- `"user_token6": ` + fmt.Sprintf(`"xoxp-%s-%s-%s-%s"`, secrets.NewSecret(numeric("12")), secrets.NewSecret(numeric("13")), secrets.NewSecret(numeric("13")), secrets.NewSecret(alphaNumeric("32"))),
|
|
|
+ `"user_token6": ` + fmt.Sprintf(`"xoxp-%s-%s-%s-%s"`, secrets.NewSecret(utils.Numeric("12")), secrets.NewSecret(utils.Numeric("13")), secrets.NewSecret(utils.Numeric("13")), secrets.NewSecret(utils.AlphaNumeric("32"))),
|
|
|
// It's unclear what the `xoxe-` token means in this context, however, the format is similar to a user token.
|
|
|
`"url_private": "https:\/\/files.slack.com\/files-pri\/T04MCQMEXQ9-F04MAA1PKE3\/image.png?t=xoxe-4726837507825-4848681849303-4856614048758-e0b1f3d4cb371f92260edb0d9444d206"`,
|
|
|
}
|
|
|
@@ -74,7 +75,7 @@ func SlackUserToken() *config.Rule {
|
|
|
// This technically matches the pattern but is an obvious false positive.
|
|
|
// `"token5": "xoxp-000000000000-000000000000-000000000000-00000000000000000000000000000000"`, // gitleaks:allow
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// Reference: https://api.slack.com/authentication/token-types#app
|
|
|
@@ -93,9 +94,9 @@ func SlackAppLevelToken() *config.Rule {
|
|
|
`"token1": "xapp-1-A052FGTS2DL-5171572773297-610b6a11f4b7eb819e87b767d80e6575a3634791acb9a9ead051da879eb5b55e"`, // gitleaks:allow
|
|
|
`"token2": "xapp-1-IEMF8IMY1OQ-4037076220459-85c370b433e366de369c4ef5abdf41253519266982439a75af74a3d68d543fb6"`, // gitleaks:allow
|
|
|
`"token3": "xapp-1-BM3V7LC51DA-1441525068281-86641a2582cd0903402ab523e5bcc53b8253098c31591e529b55b41974d2e82f"`, // gitleaks:allow
|
|
|
- `"token4": ` + fmt.Sprintf(`"xapp-1-A%s-%s-%s"`, secrets.NewSecret(numeric("10")), secrets.NewSecret(numeric("13")), secrets.NewSecret(alphaNumeric("64"))),
|
|
|
+ `"token4": ` + fmt.Sprintf(`"xapp-1-A%s-%s-%s"`, secrets.NewSecret(utils.Numeric("10")), secrets.NewSecret(utils.Numeric("13")), secrets.NewSecret(utils.AlphaNumeric("64"))),
|
|
|
}
|
|
|
- return validate(r, tps, nil)
|
|
|
+ return utils.Validate(r, tps, nil)
|
|
|
}
|
|
|
|
|
|
// Reference: https://api.slack.com/authentication/config-tokens
|
|
|
@@ -111,16 +112,16 @@ func SlackConfigurationToken() *config.Rule {
|
|
|
tps := []string{
|
|
|
`"access_token1": "xoxe.xoxp-1-Mi0yLTM0MTQwNDE0MDE3Ni0zNjU5NDY0Njg4MTctNTE4MjA3NTQ5NjA4MC01NDEyOTYyODY5NzUxLThhMTBjZmI1ZWIzMGIwNTg0ZDdmMDI5Y2UxNzVlZWVhYzU2ZWQyZTZiODNjNDZiMGUxMzRlNmNjNDEwYmQxMjQ"`, // gitleaks:allow
|
|
|
`"access_token2": "xoxe.xoxp-1-Mi0yLTMxNzcwMjQ0MTcxMy0zNjU5NDY0Njg4MTctNTE1ODE1MjY5MTcxNC01MTU4MDI0MTgyOTc5LWRmY2YwY2U4ODhhNzY5ZGU5MTAyNDU4MDJjMGQ0ZDliMTZhMjNkMmEyYzliNjkzMDRlN2VjZTI4MWNiMzRkNGQ"`, // gitleaks:allow
|
|
|
- `"access_token3": "xoxe.xoxp-1-` + secrets.NewSecret(alphaNumeric("163")) + `"`,
|
|
|
+ `"access_token3": "xoxe.xoxp-1-` + secrets.NewSecret(utils.AlphaNumeric("163")) + `"`,
|
|
|
`"access_token4": "xoxe.xoxb-1-Mi0yLTMxNzcwMjQ0MTcxMy0zNjU5NDY0Njg4MTctNTE1ODE1MjY5MTcxNC01MTU4MDI0MTgyOTc5LWRmY2YwY2U4ODhhNzY5ZGU5MTAyNDU4MDJjMGQ0ZDliMTZhMjNkMmEyYzliNjkzMDRlN2VjZTI4MWNiMzRkNGQ"`,
|
|
|
- `"access_token5": "xoxe.xoxb-1-` + secrets.NewSecret(alphaNumeric("165")) + `"`,
|
|
|
+ `"access_token5": "xoxe.xoxb-1-` + secrets.NewSecret(utils.AlphaNumeric("165")) + `"`,
|
|
|
}
|
|
|
fps := []string{
|
|
|
"xoxe.xoxp-1-SlackAppConfigurationAccessTokenHere",
|
|
|
"xoxe.xoxp-1-RANDOMSTRINGHERE",
|
|
|
"xoxe.xoxp-1-initial",
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// Reference: https://api.slack.com/authentication/config-tokens
|
|
|
@@ -136,10 +137,10 @@ func SlackConfigurationRefreshToken() *config.Rule {
|
|
|
tps := []string{
|
|
|
`"refresh_token1": "xoxe-1-My0xLTMxNzcwMjQ0MTcxMy01MTU4MTUyNjkxNzE0LTUxODE4NDI0MDY3MzYtMjA5MGFkOTFlZThkZWE2OGFlZDYwYWJjODNhYzAxYjA5ZjVmODBhYjgzN2QyNDdjOTNlOGY5NTg2YWM1OGM4Mg"`, // gitleaks:allow
|
|
|
`"refresh_token2": "xoxe-1-My0xLTM0MTQwNDE0MDE3Ni01MTgyMDc1NDk2MDgwLTU0MjQ1NjIwNzgxODEtNGJkYTZhYTUxY2M1ODk3ZTNkN2YzMTgxMDI1ZDQzNzgwNWY4NWQ0ODdhZGIzM2ViOGI0MTM0MjdlNGVmYzQ4Ng"`, // gitleaks:allow
|
|
|
- `"refresh_token3": "xoxe-1-` + secrets.NewSecret(alphaNumeric("146")) + `"`,
|
|
|
+ `"refresh_token3": "xoxe-1-` + secrets.NewSecret(utils.AlphaNumeric("146")) + `"`,
|
|
|
}
|
|
|
fps := []string{"xoxe-1-xxx", "XOxE-RROAmw, Home and Garden, 5:24, 20120323"}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// Reference: https://api.slack.com/authentication/token-types#legacy_bot
|
|
|
@@ -171,10 +172,10 @@ func SlackLegacyBotToken() *config.Rule {
|
|
|
// https://github.com/logicmoo/logicmoo_workspace/blob/2e1794f596121c9949deb3bfbd30d5b027a51d3d/packs_sys/slack_prolog/prolog/slack_client_old.pl#L28
|
|
|
`"bot_token7": "xoxb-130154379991-ogFL0OFP3w6AwdJuK7wLojpK"`, // gitleaks:allow
|
|
|
// https://github.com/sbarski/serverless-chatbot/blob/7d556897486f3fd53795907b7e33252e5cc6b3a3/Lesson%203/serverless.yml#L38
|
|
|
- `"bot_token8": "xoxb-159279836768-FOst5DLfEzmQgkz7cte5qiI"`, // gitleaks:allow
|
|
|
- `"bot_token9": "xoxb-50014434-slacktokenx29U9X1bQ"`, // gitleaks:allow
|
|
|
- `"bot_token10": ` + fmt.Sprintf(`"xoxb-%s-%s`, secrets.NewSecret(numeric("10")), secrets.NewSecret(alphaNumeric("24"))), // gitleaks:allow
|
|
|
- `"bot_token11": ` + fmt.Sprintf(`"xoxb-%s-%s`, secrets.NewSecret(numeric("12")), secrets.NewSecret(alphaNumeric("23"))), // gitleaks:allow
|
|
|
+ `"bot_token8": "xoxb-159279836768-FOst5DLfEzmQgkz7cte5qiI"`, // gitleaks:allow
|
|
|
+ `"bot_token9": "xoxb-50014434-slacktokenx29U9X1bQ"`, // gitleaks:allow
|
|
|
+ `"bot_token10": ` + fmt.Sprintf(`"xoxb-%s-%s`, secrets.NewSecret(utils.Numeric("10")), secrets.NewSecret(utils.AlphaNumeric("24"))), // gitleaks:allow
|
|
|
+ `"bot_token11": ` + fmt.Sprintf(`"xoxb-%s-%s`, secrets.NewSecret(utils.Numeric("12")), secrets.NewSecret(utils.AlphaNumeric("23"))), // gitleaks:allow
|
|
|
}
|
|
|
fps := []string{
|
|
|
"xoxb-xxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxx", // gitleaks:allow
|
|
|
@@ -182,7 +183,7 @@ func SlackLegacyBotToken() *config.Rule {
|
|
|
"xoxb-abcdef-abcdef",
|
|
|
// "xoxb-0000000000-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", // gitleaks:allow
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// Reference: https://api.slack.com/authentication/token-types#workspace
|
|
|
@@ -201,10 +202,10 @@ func SlackLegacyWorkspaceToken() *config.Rule {
|
|
|
|
|
|
tps := []string{
|
|
|
`"access_token": "xoxa-2-511111111-31111111111-3111111111111-e039d02840a0b9379c"`, // gitleaks:allow
|
|
|
- `"access_token1": ` + fmt.Sprintf(`"xoxa-%s-%s`, secrets.NewSecret(numeric("1")), secrets.NewSecret(alphaNumeric("12"))),
|
|
|
- `"access_token2": ` + fmt.Sprintf(`"xoxa-%s`, secrets.NewSecret(alphaNumeric("12"))),
|
|
|
- `"refresh_token1": ` + fmt.Sprintf(`"xoxr-%s-%s`, secrets.NewSecret(numeric("1")), secrets.NewSecret(alphaNumeric("12"))),
|
|
|
- `"refresh_token2": ` + fmt.Sprintf(`"xoxr-%s`, secrets.NewSecret(alphaNumeric("12"))),
|
|
|
+ `"access_token1": ` + fmt.Sprintf(`"xoxa-%s-%s`, secrets.NewSecret(utils.Numeric("1")), secrets.NewSecret(utils.AlphaNumeric("12"))),
|
|
|
+ `"access_token2": ` + fmt.Sprintf(`"xoxa-%s`, secrets.NewSecret(utils.AlphaNumeric("12"))),
|
|
|
+ `"refresh_token1": ` + fmt.Sprintf(`"xoxr-%s-%s`, secrets.NewSecret(utils.Numeric("1")), secrets.NewSecret(utils.AlphaNumeric("12"))),
|
|
|
+ `"refresh_token2": ` + fmt.Sprintf(`"xoxr-%s`, secrets.NewSecret(utils.AlphaNumeric("12"))),
|
|
|
}
|
|
|
fps := []string{
|
|
|
// "xoxa-faketoken",
|
|
|
@@ -212,7 +213,7 @@ func SlackLegacyWorkspaceToken() *config.Rule {
|
|
|
// "XOXa-nx991k",
|
|
|
"https://github.com/xoxa-nyc/xoxa-nyc.github.io/blob/master/README.md",
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
// References:
|
|
|
@@ -241,14 +242,14 @@ func SlackLegacyToken() *config.Rule {
|
|
|
`"access_token4": "xoxs-4829527689-4829527691-4814341714-d0346ec616"`, // gitleaks:allow
|
|
|
// https://github.com/ericvanderwal/general-playmaker/blob/34bd8e82e2d7b16ca9cc825d0c9d383b8378b550/Logic/setrandomseedtype.cs#LL783C15-L783C69
|
|
|
`"access_token5": "xoxs-155191149137-155868813314-338998331396-9f6d235915"`, // gitleaks:allow
|
|
|
- `"access_token6": "xoxs-` + fmt.Sprintf("%s-%s-%s-%s", secrets.NewSecret(numeric("10")), secrets.NewSecret(numeric("10")), secrets.NewSecret(numeric("10")), secrets.NewSecret(hex("10"))) + `"`,
|
|
|
+ `"access_token6": "xoxs-` + fmt.Sprintf("%s-%s-%s-%s", secrets.NewSecret(utils.Numeric("10")), secrets.NewSecret(utils.Numeric("10")), secrets.NewSecret(utils.Numeric("10")), secrets.NewSecret(utils.Hex("10"))) + `"`,
|
|
|
`"access_token7": "xoxo-523423-234243-234233-e039d02840a0b9379c"`, // gitleaks:allow
|
|
|
}
|
|
|
fps := []string{
|
|
|
"https://indieweb.org/images/3/35/2018-250-xoxo-indieweb-1.jpg",
|
|
|
"https://lh3.googleusercontent.com/-tWXjX3LUD6w/Ua4La_N5E2I/AAAAAAAAACg/qcm19xbEYa4/s640/EXO-XOXO-teaser-exo-k-34521098-720-516.jpg",
|
|
|
}
|
|
|
- return validate(r, tps, fps)
|
|
|
+ return utils.Validate(r, tps, fps)
|
|
|
}
|
|
|
|
|
|
func SlackWebHookUrl() *config.Rule {
|
|
|
@@ -266,16 +267,16 @@ func SlackWebHookUrl() *config.Rule {
|
|
|
|
|
|
// validate
|
|
|
tps := []string{
|
|
|
- "hooks.slack.com/services/" + secrets.NewSecret(alphaNumeric("44")),
|
|
|
- "http://hooks.slack.com/services/" + secrets.NewSecret(alphaNumeric("45")),
|
|
|
- "https://hooks.slack.com/services/" + secrets.NewSecret(alphaNumeric("46")),
|
|
|
+ "hooks.slack.com/services/" + secrets.NewSecret(utils.AlphaNumeric("44")),
|
|
|
+ "http://hooks.slack.com/services/" + secrets.NewSecret(utils.AlphaNumeric("45")),
|
|
|
+ "https://hooks.slack.com/services/" + secrets.NewSecret(utils.AlphaNumeric("46")),
|
|
|
"http://hooks.slack.com/services/T024TTTTT/BBB72BBL/AZAAA9u0pA4ad666eMgbi555", // gitleaks:allow
|
|
|
"https://hooks.slack.com/services/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", // gitleaks:allow
|
|
|
- "hooks.slack.com/workflows/" + secrets.NewSecret(alphaNumeric("44")),
|
|
|
- "http://hooks.slack.com/workflows/" + secrets.NewSecret(alphaNumeric("45")),
|
|
|
- "https://hooks.slack.com/workflows/" + secrets.NewSecret(alphaNumeric("46")),
|
|
|
+ "hooks.slack.com/workflows/" + secrets.NewSecret(utils.AlphaNumeric("44")),
|
|
|
+ "http://hooks.slack.com/workflows/" + secrets.NewSecret(utils.AlphaNumeric("45")),
|
|
|
+ "https://hooks.slack.com/workflows/" + secrets.NewSecret(utils.AlphaNumeric("46")),
|
|
|
"https://hooks.slack.com/workflows/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", // gitleaks:allow
|
|
|
"http://hooks.slack.com/workflows/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", // gitleaks:allow
|
|
|
}
|
|
|
- return validate(r, tps, nil)
|
|
|
+ return utils.Validate(r, tps, nil)
|
|
|
}
|