Spaces:
Running
Running
<html lang="ru"> | |
<head> | |
<meta charset="UTF-8"> | |
<title>Поиск в Google</title> | |
<style> | |
body { | |
background-color: #1a1a1a; | |
color: #ffffff; | |
font-family: 'Courier New', monospace; | |
margin: 0; | |
padding: 0; | |
} | |
.container { | |
max-width: 800px; | |
margin: 20px auto; | |
text-align: center; | |
padding: 20px; | |
border-radius: 10px; | |
background-color: #2d2d2d; | |
box-shadow: 0 0 15px rgba(0,0,0,0.3); | |
} | |
.search-input { | |
width: 70%; | |
padding: 12px 20px; | |
margin: 8px 0; | |
display: inline-block; | |
border: 1px solid rgba(255,255,255,0.1); | |
border-radius: 4px; | |
box-sizing: border-box; | |
background-color: #333333; | |
color: #ffffff; | |
font-family: 'Courier New', monospace; | |
} | |
.search-input:focus { | |
outline: none; | |
border-color: #4CAF50; | |
} | |
.search-button { | |
width: 15%; | |
background-color: #4CAF50; | |
color: white; | |
padding: 14px 20px; | |
margin: 8px 0; | |
border: none; | |
border-radius: 4px; | |
cursor: pointer; | |
transition: background-image 0.3s; | |
background-image: linear-gradient(to bottom, #4CAF50, #45a049); | |
font-family: 'Courier New', monospace; | |
} | |
.search-button:hover { | |
background-image: linear-gradient(to bottom, #45a049, #4CAF50); | |
} | |
.examples { | |
margin-top: 30px; | |
padding: 20px; | |
background-color: #333333; | |
border-radius: 10px; | |
} | |
.examples h2 { | |
color: #4CAF50; | |
margin-bottom: 20px; | |
font-family: 'Courier New', monospace; | |
} | |
.examples-list { | |
list-style-type: none; | |
padding: 0; | |
} | |
.examples-list li { | |
margin: 10px 0; | |
padding: 15px; | |
background-color: #2d2d2d; | |
border-radius: 5px; | |
cursor: pointer; | |
transition: all 0.3s; | |
border: 1px solid rgba(76, 175, 80, 0.2); | |
} | |
.examples-list li:hover { | |
background-color: #333333; | |
transform: translateX(5px); | |
box-shadow: 2px 2px 5px rgba(76, 175, 80, 0.2); | |
} | |
.examples-list li strong { | |
color: #4CAF50; | |
font-family: 'Courier New', monospace; | |
} | |
.copy-indicator { | |
position: absolute; | |
right: 10px; | |
top: 10px; | |
color: #4CAF50; | |
font-size: 14px; | |
opacity: 0; | |
transition: opacity 0.3s; | |
} | |
.copy-indicator.show { | |
opacity: 1; | |
} | |
.select-pages { | |
width: 100px; | |
padding: 8px; | |
margin: 10px 0; | |
background-color: #333333; | |
color: #4CAF50; | |
border: 1px solid #4CAF50; | |
border-radius: 4px; | |
font-family: 'Courier New', monospace; | |
} | |
.select-pages:focus { | |
outline: none; | |
border-color: #4CAF50; | |
box-shadow: 0 0 5px rgba(76, 175, 80, 0.3); | |
} | |
img { | |
width: 100px; | |
margin: 10px; | |
border-radius: 5px; | |
box-shadow: 0 0 10px rgba(0,0,0,0.3); | |
} | |
</style> | |
</head> | |
<body> | |
<div class="container"> | |
<img src="https://i.pinimg.com/originals/bc/e4/c0/bce4c082e2a1c2ec016351228f782a4a.gif" alt="Hack logo"/> | |
<form id="searchForm"> | |
<input id="searchInput" type="text" class="search-input" placeholder="Введите ваш запрос для поиска"/> | |
<button type="submit" class="search-button">Поиск</button> | |
</form> | |
<select id="pagesSelect" class="select-pages"> | |
<option value="1" selected>1 страница</option> | |
<option value="2">2 страницы</option> | |
<option value="3">3 страницы</option> | |
<option value="4">4 страницы</option> | |
<option value="5">5 страниц</option> | |
<option value="6">6 страниц</option> | |
<option value="7">7 страниц</option> | |
<option value="8">8 страниц</option> | |
<option value="9">9 страниц</option> | |
<option value="10">10 страниц</option> | |
</select> | |
<select id="windowsSelect" class="select-pages"> | |
<option value="1" selected>1 окно</option> | |
<option value="2">2 окна</option> | |
<option value="3">3 окна</option> | |
<option value="4">4 окна</option> | |
<option value="5">5 окон</option> | |
<option value="6">6 окон</option> | |
<option value="7">7 окон</option> | |
<option value="8">8 окон</option> | |
<option value="9">9 окон</option> | |
<option value="10">10 окон</option> | |
</select> | |
<div id="message"></div> | |
<div class="examples"> | |
<h2>Примеры запросов для поиска уязвимостей</h2> | |
<ul class="examples-list"> | |
<li onclick="copyToClipboard('intitle:index.of filetype:php')"> | |
<strong>Поиск открытых директорий:</strong><br> | |
intitle:index.of filetype:php | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:txt intext:password | intext:passwd')"> | |
<strong>Поиск файлов с паролями:</strong><br> | |
filetype:txt intext:password | intext:passwd | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:conf inurl:config')"> | |
<strong>Поиск конфигурационных файлов:</strong><br> | |
filetype:conf inurl:config | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:log intext:error | intext:failed')"> | |
<strong>Поиск файлов с логами:</strong><br> | |
filetype:log intext:error | intext:failed | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('inurl:.* -intext:github')"> | |
<strong>Поиск файлов с расширением .* (скрытые файлы):</strong><br> | |
inurl:.* -intext:github | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('inurl:wp-config.php | inurl:database.php')"> | |
<strong>Поиск файлов с * (другие специфические паттерны):</strong><br> | |
inurl:wp-config.php | inurl:database.php | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:conf intext:username | intext:password')"> | |
<strong>Поиск файлов с расширением .conf:</strong><br> | |
filetype:conf intext:username | intext:password | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:bak inurl:password | inurl:config')"> | |
<strong>Поиск файлов с расширением .bak:</strong><br> | |
filetype:bak inurl:password | inurl:config | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:old intext:secret | intext:credentials')"> | |
<strong>Поиск файлов с расширением .old:</strong><br> | |
filetype:old intext:secret | intext:credentials | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
<li onclick="copyToClipboard('filetype:swp intext:login | intext:auth')"> | |
<strong>Поиск файлов с расширением .swp:</strong><br> | |
filetype:swp intext:login | intext:auth | |
<span class="copy-indicator">скопировано</span> | |
</li> | |
</ul> | |
</div> | |
</div> | |
<script> | |
function copyToClipboard(text, evt) { | |
if (navigator.clipboard && window.isSecureContext) { | |
navigator.clipboard.writeText(text).then(() => { | |
var indicator = evt ? evt.target.querySelector('.copy-indicator') : document.querySelector('.copy-indicator'); | |
if (indicator) { | |
indicator.classList.add('show'); | |
setTimeout(() => indicator.classList.remove('show'), 2000); | |
} | |
}).catch(() => { | |
fallbackCopyText(text, evt); | |
}); | |
} else { | |
fallbackCopyText(text, evt); | |
} | |
} | |
function fallbackCopyText(text, evt) { | |
var copyElement = document.createElement("div"); | |
copyElement.style.position = "absolute"; | |
copyElement.style.left = "-9999px"; | |
copyElement.setAttribute("contenteditable", "true"); | |
copyElement.textContent = text; | |
document.body.appendChild(copyElement); | |
var range = document.createRange(); | |
range.selectNodeContents(copyElement); | |
var selection = window.getSelection(); | |
selection.removeAllRanges(); | |
selection.addRange(range); | |
try { | |
document.execCommand("copy"); | |
var indicator = evt ? evt.target.querySelector('.copy-indicator') : document.querySelector('.copy-indicator'); | |
if (indicator) { | |
indicator.classList.add('show'); | |
setTimeout(() => indicator.classList.remove('show'), 2000); | |
} | |
} catch (err) { | |
console.error("Fallback: Unable to copy", err); | |
} | |
document.body.removeChild(copyElement); | |
} | |
document.getElementById('searchForm').addEventListener('submit', function(e) { | |
e.preventDefault(); | |
var searchQuery = document.getElementById('searchInput').value; | |
var maxWindows = parseInt(document.getElementById('windowsSelect').value, 10); | |
searchGoogle(searchQuery, maxWindows); | |
}); | |
function searchGoogle(search, maxWindows = 1) { | |
if (typeof search !== 'string' || search.trim() === '') { | |
console.error('Поисковый запрос должен быть строкой и не должен быть пустым.'); | |
return; | |
} | |
var words = search.split(" ").filter(Boolean); | |
var wordsCount = words.length; | |
if (wordsCount >= 32) { | |
console.error('Количество слов в поисковом запросе должно быть меньше 32.'); | |
return; | |
} | |
var o = 32 - wordsCount; | |
if (o <= 0) { | |
console.error('Ошибка в расчете o.'); | |
return; | |
} | |
var template = "site:*.*.%NUM%.* |"; | |
var query = ""; | |
var urls = []; | |
var maxUrls = Math.min(maxWindows, 10); | |
try { | |
for (var i = 0; i < Math.floor(256 / o) && i < maxUrls; i++) { | |
query = ""; | |
for (var ii = 0; ii < (257 - (i * o)); ii++) { | |
query += template.replace("%NUM%", ii); | |
} | |
query = query.slice(0, -1); | |
query = "(" + search + ") (" + query + ")"; | |
var url = "https://www.google.com/search?q=" + encodeURIComponent(query); | |
urls.push(url); | |
} | |
urls.forEach(function(url, index) { | |
setTimeout(function() { | |
window.open(url, '_blank', 'noreferrer'); | |
}, index * 1000); | |
}); | |
} catch (error) { | |
console.error('Произошла ошибка:', error); | |
} | |
} | |
</script> | |
</body> | |
</html> | |