Enjoying this? A quick like helps keep it online longer.
This content will be deleted in less than 24 hours. If you like it, you can extend its lifetime to keep it available.
You contact the website owner, get a signed agreement, test only what is allowed, write a report, and get paid. This is a legal and professional way to work.
Never test a live website without a signed paper or digital contract that clearly says you are allowed to test it.
PENETRATION TESTING AGREEMENT
Client: [Company Name]
Address: [Company Address]
Contact: [Phone/Email]
Service Provider: [Your Name]
Date: [Date]
SCOPE OF WORK:
☑ Web application security testing
☑ Directory enumeration
☑ SQL injection testing
☑ Password strength analysis
☑ Network scanning (if applicable)
AUTHORIZED TARGETS:
• Website: https://example.com
• IP Range: 192.168.1.0/24 (if testing network)
• Testing Period: [Start Date] to [End Date]
TERMS:
1. All testing is authorized and legal.
2. No data will be shared with third parties.
3. Report delivered within [X] days.
4. Payment: ₹[Amount] upon completion.
5. Confidentiality agreement included.
CLIENT SIGNATURE: _______________
DATE: _______________
YOUR SIGNATURE: _______________
DATE: _______________
Find what the site is built with and what assets exist.
# Technologies in use
whatweb https://clientsite.com
# Subdomains
sublist3r -d clientsite.com -o /mnt/usb/results/subdomains.txt
# DNS records
dig clientsite.com ANY
# WHOIS information
whois clientsite.com
nmap -sV -sC -oA /mnt/usb/scans/client-scan clientsite.com
# Example result: 3306/tcp open mysql 5.7.33 (Internet‑exposed DB = high risk)
gobuster dir -u https://clientsite.com \
-w /mnt/usb/wordlists/common.txt \
-o /mnt/usb/results/directories.txt \
-x php,html,txt,zip,bak
sqlmap -u "https://clientsite.com/product.php?id=1" \
--batch --level=1 --risk=1 \
--output-dir=/mnt/usb/sqlmap/
# Only dump data if the agreement explicitly allows it.
curl -I https://clientsite.com
# Look for missing: X-Frame-Options, CSP, HSTS, X-Content-Type-Options.
openssl s_client -connect clientsite.com:443
# Check for: expired cert, weak ciphers, SSLv2/v3, etc.
SECURITY ASSESSMENT REPORT
Client: ABC Company
Website: https://clientsite.com
Date: [Date]
Tester: [Your Name]
Summary: 8 vulnerabilities (3 Critical, 2 High, 3 Medium)
Examples:
1. Exposed backup file: https://clientsite.com/backup.zip [CRITICAL]
2. SQL injection: https://clientsite.com/product.php?id=1 [CRITICAL]
3. Exposed .git: https://clientsite.com/.git/ [CRITICAL]
4. MySQL 3306 open to internet [HIGH]
5. Missing security headers [HIGH]
6. phpinfo.php exposed [MEDIUM]
7. Directory listing on /uploads/ [MEDIUM]
8. Weak SSL configuration [MEDIUM]
INVOICE
Service Provider: [Your Name]
Client: ABC Company
Date: [Date]
Services:
- Web application security assessment
- Vulnerability scanning
- Detailed report & remediation advice
Amount: ₹[5,000–50,000] (depends on scope)
Payment Terms: Upon receipt
Payment Method: UPI / Bank transfer
1. Sign up on hackerone.com (free).
2. Choose public programs (PayPal, Shopify, Twitter, GitHub, Uber, etc.).
3. Read each program's scope carefully:
- What domains are allowed.
- What is out of scope.
4. Test only in-scope targets using the same commands.
5. Report bugs through the platform.
6. Get paid when reports are accepted and validated.
- TryHackMe: "Web Fundamentals"
- HackTheBox: 5 easy machines
- PortSwigger Academy: SQLi labs
- Practice on testphp.vulnweb.com
- Learn SQLi, XSS, auth bypass, logic flaws.
- Save screenshots and notes for portfolio.
- Join HackerOne/Bugcrowd OR
- Approach 3–5 local small businesses.
- Offer free initial scan, then paid full assessments.
whois clientsite.com
dig clientsite.com ANY
dig clientsite.com MX
dig clientsite.com NS
whatweb https://clientsite.com
curl -I https://clientsite.com
sublist3r -d clientsite.com \
-o /mnt/usb/results/subdomains.txt
nmap -sV -sC -oA /mnt/usb/scans/client-scan \
clientsite.com
gobuster dir -u https://clientsite.com \
-w /mnt/usb/wordlists/common.txt \
-x php,html,txt,zip,bak \
-o /mnt/usb/results/directories.txt
sqlmap -u "https://clientsite.com/product.php?id=1" \
--batch --level=1 --risk=1 \
--output-dir=/mnt/usb/sqlmap/
curl -I https://clientsite.com
openssl s_client -connect clientsite.com:443
whatweb http://testphp.vulnweb.com
nmap testphp.vulnweb.com
sqlmap -u "http://testphp.vulnweb.com/artists.php?artist=1" --dbs