<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bons Dork Hunter</title>
    <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.16/dist/tailwind.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
    <style>
        body {
            background-color: #1a1a1a;
            color: #ffffff;
            font-family: 'Courier New', Courier, monospace;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }
        .header {
            text-align: center;
            margin-bottom: 20px;
        }
        .header img {
            max-width: 100px;
            margin-bottom: 10px;
        }
        .title {
            font-size: 3rem;
            color: #ff6347;
            text-shadow: 0 0 10px #b22222, 0 0 20px #b22222, 0 0 30px #b22222;
        }
        .dork-section {
            background-color: #222;
            padding: 20px;
            border-radius: 12px;
            margin-bottom: 20px;
            box-shadow: 0 0 10px rgba(255, 0, 0, 0.5);
        }
        .dork-title {
            font-size: 1.4rem;
            color: #ff6347;
            text-shadow: 0 0 5px #ff6347;
        }
        .dork-content {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 10px;
        }
        .copy-button {
            background-color: #333;
            border: none;
            color: white;
            padding: 5px 10px;
            cursor: pointer;
            border-radius: 5px;
            box-shadow: 0 0 5px rgba(255, 0, 0, 0.5);
        }
        .copy-button:hover {
            background-color: #ff6347;
        }
        .search-link {
            color: #ff6347;
            text-decoration: none;
        }
        .search-link:hover {
            text-decoration: underline;
        }
        .risk-label {
            padding: 3px 6px;
            border-radius: 4px;
            font-weight: bold;
        }
        .critical-risk {
            background-color: #b22222;
            color: #fff;
        }
        .high-risk {
            background-color: #ff4500;
            color: #fff;
        }
        .medium-risk {
            background-color: #ffa500;
            color: #000;
        }
        .low-risk {
            background-color: #32cd32;
            color: #000;
        }
        pre {
            background-color: #333;
            border-radius: 10px;
            padding: 15px;
            overflow-x: auto;
            white-space: pre-wrap;
            word-wrap: break-word;
            margin-top: 10px;
            box-shadow: 0 0 5px rgba(255, 0, 0, 0.3);
        }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <img src="https://i.ibb.co.com/r32sxDy/img.png" alt="logo">
            <h1 class="title">Bons Dork Gacor</h1>
        </div>
        <input type="text" id="domain-input" placeholder="Enter Domain (e.g., example.com)" class="w-full p-2 my-4 bg-gray-800 border border-gray-700 rounded text-white">
        <button id="search-button" class="w-full bg-gray-700 text-white py-2 rounded hover:bg-gray-600">Generate Dorks</button>
        <div id="dork-list">
            <!-- Dork sections will be added here -->
        </div>
    </div>

    <script>
        const domainInput = document.getElementById('domain-input');
        const searchButton = document.getElementById('search-button');
        const dorkList = document.getElementById('dork-list');

        const dorkData = [
            {
                title: 'Find Error Based SQLI Critical',
                dork: 'site:example.com intext:"sql syntax near" OR intext:"syntax error" OR intext:"unexpected end of SQL" OR intext:"Warning: mysql_" OR intext:"pg_connect()" OR intext:"error in your SQL syntax" OR intext:"OLE DB Provider for SQL Server"',
                risk: 'critical-risk'
            },
            {
                title: 'Find XSS Param High Risk',
                dork: 'inurl:q= | inurl:s= | inurl:search= | inurl:query= | inurl:keyword= | inurl:lang= inurl:& site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'Find SQL Param High Risk',
                dork: 'inurl:id= | inurl:pid= | inurl:category= | inurl:cat= | inurl:action= | inurl:sid= | inurl:dir= inurl:& site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'Find Open Cameras High',
                dork: 'inurl:"/view/viewer_index.shtml" "Live View / - AXIS" site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'Find Open Redirect Param Low Risk',
                dork: 'inurl:redirectURL=http site:example.com:inurl:redir | inurl:url | inurl:redirect | inurl:return | inurl:src=http | inurl:r=http',
                risk: 'low-risk'
            },
            {
                title: 'Find LFI Param High Risk',
                dork: 'inurl:include | inurl:dir | inurl:detail= | inurl:file= | inurl:folder= | inurl:inc= | inurl:locate= | inurl:doc= | inurl:conf= inurl:& site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'File Upload Endpoints High',
                dork: 'site:example.com "choose file"',
                risk: 'high-risk'
            },
            {
                title: 'Exposed Jenkins Servers Medium Risk',
                dork: 'intitle:"Dashboard [Jenkins]" OR intitle:"Jenkins" inurl:/login site:example.com -site:apache.org',
                risk: 'medium-risk'
            },
            {
                title: 'Publicly Accessible Webcams High Risk',
                dork: 'intitle:"Live View / - AXIS" | "Network Camera" | "Sony Network Camera SNC" inurl:live site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'API Keys and Secrets Search High',
                dork: 'ext:env OR ext:json OR ext:yaml "AWS_SECRET_ACCESS_KEY" OR "API_KEY" -github site:example.com',
                risk: 'high-risk'
            },
            {
                title: 'Google Maps API Keys Medium',
                dork: 'ext:js "AIzaSy" -github site:example.com',
                risk: 'medium-risk'
            }
        ];

        function generateDorkSection(dork) {
            return `
                <div class="dork-section">
                    <h2 class="dork-title">${dork.title}</h2>
                    <div class="dork-content">
                        <span class="risk-label ${dork.risk}">${dork.risk.replace('-risk', ' Risk')}</span>
                        <div>
                            <button class="copy-button" data-dork="${dork.dork.replace(/site:example.com/g, 'site:')}">Copy</button>
                            <a href="https://www.google.com/search?q=${encodeURIComponent(dork.dork.replace(/site:example.com/g, 'site:'))}" target="_blank" class="search-link">Search</a>
                        </div>
                    </div>
                    <pre class="mt-2">${dork.dork.replace(/example.com/g, domainInput.value.trim())}</pre>
                </div>
            `;
        }

        function updateDorkList() {
            const domain = domainInput.value.trim();
            if (domain) {
                dorkList.innerHTML = '';
                dorkData.forEach(dork => {
                    const dorkSection = generateDorkSection({
                        ...dork,
                        dork: dork.dork.replace(/example.com/g, domain)
                    });
                    dorkList.innerHTML += dorkSection;
                });
                addCopyButtonListeners();
            } else {
                alert('Please enter a domain.');
            }
        }

        function addCopyButtonListeners() {
            const copyButtons = document.querySelectorAll('.copy-button');
            copyButtons.forEach(button => {
                button.addEventListener('click', () => {
                    const dorkText = button.getAttribute('data-dork');
                    navigator.clipboard.writeText(dorkText).then(() => {
                        alert('Dork copied to clipboard!');
                    }, () => {
                        alert('Failed to copy dork.');
                    });
                });
            });
        }

        searchButton.addEventListener('click', updateDorkList);
    </script>
</body>
</html>