secutorpro's picture
https://github.com/Ishanoshada/GDorks.git
95844bd verified
// Google Dorks Database
const dorks = [
// Sensitive Files
{
id: 1,
category: 'sensitive-files',
title: 'SQL Database Files',
query: 'site:{target} ext:sql | ext:db | ext:sqlite | ext:sqlite3 | ext:mdb | ext:dbf',
description: 'Find exposed database files',
icon: 'database'
},
{
id: 2,
category: 'sensitive-files',
title: 'Configuration Files',
query: 'site:{target} ext:xml | ext:conf | ext:cnf | ext:reg | ext:inf | ext:rdp | ext:cfg | ext:ini | ext:env',
description: 'Exposed configuration and settings files',
icon: 'file-cog'
},
{
id: 3,
category: 'sensitive-files',
title: 'Log Files',
query: 'site:{target} ext:log',
description: 'Find log files with sensitive data',
icon: 'file-text'
},
{
id: 4,
category: 'sensitive-files',
title: 'Backup & Old Files',
query: 'site:{target} ext:bkf | ext:bkp | ext:bak | ext:old | ext:backup | ext:save',
description: 'Backup and old file versions',
icon: 'archive'
},
{
id: 5,
category: 'sensitive-files',
title: 'Password Files',
query: 'site:{target} intitle:index.of "password.txt" | "passwd" | "credentials"',
description: 'Search for password files in directory listings',
icon: 'key'
},
{
id: 6,
category: 'sensitive-files',
title: 'Git Repositories',
query: 'inurl:.git site:{target} "index of" | intitle:"Index of /.git"',
description: 'Exposed Git repositories',
icon: 'git-branch'
},
// Vulnerabilities
{
id: 7,
category: 'vulnerabilities',
title: 'SQL Injection Parameters',
query: 'site:{target} inurl:".php?id=" | inurl:".asp?id=" | inurl:"/index.php?id=" | inurl:"/product.php?id="',
description: 'Potential SQL injection points',
icon: 'alert-triangle'
},
{
id: 8,
category: 'vulnerabilities',
title: 'XSS Parameters',
query: 'site:{target} inurl:"?q=" | inurl:"?search=" | inurl:"?query=" | inurl:"?s=" | inurl:"?keyword="',
description: 'Parameters that might be vulnerable to XSS',
icon: 'crosshair'
},
{
id: 9,
category: 'vulnerabilities',
title: 'LFI/RFI Parameters',
query: 'site:{target} inurl:"?file=" | inurl:"?page=" | inurl:"?path=" | inurl:"?folder=" | inurl:"?include="',
description: 'File inclusion vulnerability parameters',
icon: 'file-input'
},
{
id: 10,
category: 'vulnerabilities',
title: 'Open Redirects',
query: 'site:{target} inurl:"?url=" | inurl:"?redirect=" | inurl:"?return=" | inurl:"?next=" | inurl:"?redirect_uri="',
description: 'Potential open redirect parameters',
icon: 'link'
},
{
id: 11,
category: 'vulnerabilities',
title: 'phpinfo() Pages',
query: 'site:{target} "PHP Version" "phpinfo()" "Zend Scripting Language Engine"',
description: 'Exposed PHP configuration pages',
icon: 'info'
},
{
id: 12,
category: 'vulnerabilities',
title: 'API Keys & Tokens',
query: 'site:{target} "api_key" | "apikey" | "api_secret" | "access_token" | "auth_token" | "client_secret"',
description: 'Hardcoded API keys and tokens',
icon: 'key-round'
},
// Directories
{
id: 13,
category: 'directories',
title: 'Directory Listings',
query: 'site:{target} intitle:"Index of" "Parent Directory" "Directory Listing"',
description: 'Open directory indexes',
icon: 'folder-open'
},
{
id: 14,
category: 'directories',
title: 'Admin Panels',
query: 'site:{target} inurl:"/admin" | inurl:"/administrator" | inurl:"/adminpanel" | inurl:"/controlpanel" | inurl:"/dashboard"',
description: 'Potential administrative interfaces',
icon: 'shield'
},
{
id: 15,
category: 'directories',
title: 'Upload Folders',
query: 'site:{target} inurl:"/upload" | inurl:"/uploads" | inurl:"/file" | inurl:"/files" intitle:"index of"',
description: 'Exposed upload directories',
icon: 'upload-cloud'
},
{
id: 16,
category: 'directories',
title: 'Backup Directories',
query: 'site:{target} inurl:"/backup" | inurl:"/backups" | inurl:"/dump" | inurl:"/dumps" | inurl:"/archive"',
description: 'Backup and dump directories',
icon: 'archive-restore'
},
{
id: 17,
category: 'directories',
title: 'Source Code',
query: 'site:{target} ext:zip | ext:tar | ext:gz | ext:rar | ext:7z "source" | "backup" | "code"',
description: 'Compressed source code archives',
icon: 'code-2'
},
// Cameras/IoT
{
id: 18,
category: 'cameras',
title: 'Live Cameras',
query: 'inurl:"view.shtml" | inurl:"viewerframe?mode=" | inurl:"view/index.shtml" | inurl:"camera"',
description: 'Potentially exposed live cameras',
icon: 'video'
},
{
id: 19,
category: 'cameras',
title: 'Webcam Interfaces',
query: 'intitle:"webcam" | inurl:"webcam" | intitle:"live view" | inurl:"lvappl" | inurl:"live_view"',
description: 'Webcam control interfaces',
icon: 'webcam'
},
{
id: 20,
category: 'cameras',
title: 'CCTV Systems',
query: 'intitle:"CCTV" | inurl:"cctv" | intitle:"DVR" | inurl:"dvr" | intitle:"NVR" | inurl:"nvr"',
description: 'CCTV and DVR systems',
icon: 'scan-eye'
},
{
id: 21,
category: 'cameras',
title: 'Network Printers',
query: 'inurl:"printer" | intitle:"printer" | inurl:"ipp" | inurl:"print" | intitle:"HP Printer" | intitle:"Epson"',
description: 'Exposed network printers',
icon: 'printer'
},
{
id: 22,
category: 'cameras',
title: 'Routers/Modems',
query: 'intitle:"router" | inurl:"router" | intitle:"modem" | inurl:"modem" | intitle:"gateway" | inurl:"gateway"',
description: 'Router and modem admin pages',
icon: 'wifi'
},
// Login Pages
{
id: 23,
category: 'login',
title: 'Login Portals',
query: 'site:{target} inurl:"login" | inurl:"signin" | inurl:"auth" | inurl:"account" | intitle:"login"',
description: 'Login and authentication pages',
icon: 'log-in'
},
{
id: 24,
category: 'login',
title: 'WordPress Admin',
query: 'site:{target} inurl:"wp-login" | inurl:"wp-admin" | inurl:"wp-config"',
description: 'WordPress administration pages',
icon: 'type'
},
{
id: 25,
category: 'login',
title: 'cPanel/WebHost',
query: 'site:{target} inurl:"cpanel" | inurl:"webmail" | inurl:"whm" | inurl:"webhost" | intitle:"cPanel"',
description: 'Hosting control panels',
icon: 'server'
},
{
id: 26,
category: 'login',
title: 'Joomla Admin',
query: 'site:{target} inurl:"/administrator" "Joomla" | inurl:"joomla"',
description: 'Joomla administration panels',
icon: 'layout-template'
},
{
id: 27,
category: 'login',
title: 'phpMyAdmin',
query: 'site:{target} inurl:"phpmyadmin" | inurl:"phpMyAdmin" | intitle:"phpMyAdmin"',
description: 'Database management interfaces',
icon: 'table'
}
];
let currentCategory = 'all';
let searchTerm = '';
// Initialize
document.addEventListener('DOMContentLoaded', () => {
lucide.createIcons();
renderDorks();
});
function renderDorks() {
const grid = document.getElementById('dorksGrid');
const emptyState = document.getElementById('emptyState');
let filtered = dorks;
if (currentCategory !== 'all') {
filtered = filtered.filter(d => d.category === currentCategory);
}
if (searchTerm) {
const term = searchTerm.toLowerCase();
filtered = filtered.filter(d =>
d.title.toLowerCase().includes(term) ||
d.description.toLowerCase().includes(term) ||
d.query.toLowerCase().includes(term)
);
}
if (filtered.length === 0) {
grid.innerHTML = '';
emptyState.classList.remove('hidden');
return;
}
emptyState.classList.add('hidden');
grid.innerHTML = filtered.map(dork => {
const categoryLabels = {
'sensitive-files': 'Sensitive Files',
'vulnerabilities': 'Vulnerabilities',
'directories': 'Directories',
'cameras': 'Cameras/IoT',
'login': 'Login Pages'
};
const categoryBadgeClass = `badge-${dork.category}`;
return `
<div class="dork-card group relative bg-slate-900/50 border border-slate-800/80 rounded-xl p-5 hover:border-slate-700 hover:bg-slate-900/80">
<div class="flex items-start justify-between mb-3">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-lg bg-slate-800/80 flex items-center justify-center group-hover:bg-slate-800 transition-colors">
<i data-lucide="${dork.icon}" class="w-5 h-5 text-slate-400 group-hover:text-blue-400 transition-colors"></i>
</div>
<div>
<h3 class="font-semibold text-slate-100 text-sm leading-tight">${dork.title}</h3>
<span class="inline-block mt-1 px-2 py-0.5 rounded text-xs font-medium border ${categoryBadgeClass}">${categoryLabels[dork.category]}</span>
</div>
</div>
</div>
<p class="text-slate-500 text-xs mb-3 leading-relaxed">${dork.description}</p>
<div class="relative">
<div class="bg-slate-950 rounded-lg border border-slate-800/80 p-3 font-mono text-xs text-slate-400 break-all leading-relaxed group-hover:border-slate-700 transition-colors">
${highlightQuery(dork.query)}
</div>
</div>
<div class="flex gap-2 mt-3">
<button onclick="copyDork('${dork.id}')" class="flex-1 flex items-center justify-center gap-2 bg-slate-800/50 hover:bg-slate-800 border border-slate-700/50 hover:border-slate-600 rounded-lg py-2 text-xs font-medium text-slate-300 hover:text-white transition-all">
<i data-lucide="copy" class="w-3.5 h-3.5"></i>
Copy
</button>
<button onclick="searchDork('${dork.id}')" class="flex-1 flex items-center justify-center gap-2 bg-blue-600/10 hover:bg-blue-600/20 border border-blue-500/20 hover:border-blue-500/30 rounded-lg py-2 text-xs font-medium text-blue-400 hover:text-blue-300 transition-all">
<i data-lucide="external-link" class="w-3.5 h-3.5"></i>
Search
</button>
</div>
</div>
`;
}).join('');
lucide.createIcons();
}
function highlightQuery(query) {
return query.replace(/\{target\}/g, '<span class="text-blue-400 font-semibold">{target}</span>');
}
function getQueryById(id) {
return dorks.find(d => d.id == id)?.query;
}
function getDorkById(id) {
return dorks.find(d => d.id == id);
}
function copyDork(id) {
const dork = getDorkById(id);
const target = document.getElementById('targetInput').value.trim() || 'example.com';
const query = dork.query.replace(/\{target\}/g, target);
navigator.clipboard.writeText(query).then(() => {
showToast();
});
}
function searchDork(id) {
const dork = getDorkById(id);
const target = document.getElementById('targetInput').value.trim() || 'example.com';
const query = dork.query.replace(/\{target\}/g, target);
const url = `https://www.google.com/search?q=${encodeURIComponent(query)}`;
window.open(url, '_blank');
}
function filterByCategory(category) {
currentCategory = category;
// Update buttons
document.querySelectorAll('.category-btn').forEach(btn => {
btn.classList.remove('active');
});
event.target.classList.add('active');
renderDorks();
}
function filterDorks() {
searchTerm = document.getElementById('searchInput').value;
renderDorks();
}
function buildCustomDork() {
const target = document.getElementById('targetInput').value.trim();
const keywords = document.getElementById('keywordInput').value.trim();
if (!target) {
alert('Please enter a target domain');
return;
}
let query = `site:${target}`;
if (keywords) {
query += ` ${keywords}`;
}
const resultDiv = document.getElementById('customResult');
const queryText = document.getElementById('customQueryText');
queryText.textContent = query;
resultDiv.classList.remove('hidden');
}
function copyCustomDork() {
const query = document.getElementById('customQueryText').textContent;
navigator.clipboard.writeText(query).then(() => {
showToast();
});
}
function searchCustomDork() {
const query = document.getElementById('customQueryText').textContent;
const url = `https://www.google.com/search?q=${encodeURIComponent(query)}`;
window.open(url, '_blank');
}
function showToast() {
const toast = document.getElementById('toast');
toast.classList.add('show');
setTimeout(() => {
toast.classList.remove('show');
}, 2000);
}
// Initialize Lucide icons on load
lucide.createIcons();