# | Сообщение добавлено 27.02.2011 21:34:26
Отредактировано 25.12.2012 17:38:54 by .pascal
Решил поделиться недавно написанным мною скриптиком который извлекает сохранённые в веб-страницах пароли.
Как работает
1) В веб-страницу внедряется специальный javascript-код
2) Заходим на страницу с сохранёнными паролями (поля подсвечиваются жёлтым цветом)
3) Внедрённый javascript-код устанавливает ловушки на все формы с полями ввода пароля
4) При автозаполнении полей срабатывают ловушки и вам отображается их содержимое (в том числе и пароли)
Как сделать
1) создаём папку например c:\browsgrab
2) создаём в ней файл opera.js со следующим кодом:
function bgCapture(form)
{
inputs = form.getElementsByTagName('input');
result = '';
for (j=0; j<inputs.length; j++)
{
if (inputs[j].type=='' || inputs[j].type=='text') result += 'Строка ввода';
else if (inputs[j].type=='textarea') result += 'Широкое поле ввода';
else if (inputs[j].type=='checkbox') result += 'Флажёк';
else if (inputs[j].type=='radio') result += 'Переключатель';
else if (inputs[j].type=='button') result += 'Кнопка';
else if (inputs[j].type=='file') result += 'Файл';
else if (inputs[j].type=='password') result += 'ПАРОЛЬ';
else if (inputs[j].type=='image') result += 'Кнопка-картинка';
else if (inputs[j].type=='reset') result += 'Кнопка очистки';
else if (inputs[j].type=='submit') result += 'Кнопка отправки формы';
else if (inputs[j].type=='password') result += 'ПАРОЛЬ';
else if (inputs[j].type=='hidden') result += 'Скрытые данные';
else result += 'Неизвестное поле';
if (inputs[j].name) result += ' "' + inputs[j].name + '"';
result += ': ' + inputs[j].value + "\r\n";
}
if (result) alert("В этой форме найдены следующие данные:\r\n" + result);
else alert('В этой форме не найдено никаких данных для отправки на сервер');
return false;
}
function bgSetHooks()
{
if (!document.forms) return alert('Пароли на этой странице не найдены');
bgforms = document.getElementsByTagName('form');
for (j=0; j<bgforms.length; j++) bgforms[j].onsubmit = 'bgCapture(this); return false;';
}
function bgNeutralizeForms()
{
if (!document.forms) return alert('Формы на этой странице не найдены');
bgforms = document.getElementsByTagName('form');
for (j=0; j<bgforms.length; j++) bgforms[j].onsubmit = 'return false;';
}
function bgSearchPasswords()
{
if (!document.forms) return alert('Пароли на этой странице не найдены');
bgforms = document.getElementsByTagName('form');
for (j=0; j<bgforms.length; j++)
{
inputs = bgforms[j].getElementsByTagName('input');
pwd = false;
step_result = 'Обнаружена форма ';
if (bgforms[j].name) step_result += '"' + bgforms[j].name + '" ';
step_result += "с данными:\r\n";
for (i=0; i<inputs.length; i++)
{
if (inputs[i].type=='' || inputs[i].type=='text') step_result += 'Строка ввода';
else if (inputs[i].type=='textarea') step_result += 'Широкое поле ввода';
else if (inputs[i].type=='checkbox') step_result += 'Флажёк';
else if (inputs[i].type=='radio') step_result += 'Переключатель';
else if (inputs[i].type=='button') step_result += 'Кнопка';
else if (inputs[i].type=='file') step_result += 'Файл';
else if (inputs[i].type=='password') {step_result+='ПАРОЛЬ'; pwd=true;}
else if (inputs[i].type=='image') step_result += 'Кнопка-картинка';
else if (inputs[i].type=='reset') step_result += 'Кнопка очистки';
else if (inputs[i].type=='submit') step_result += 'Кнопка отправки формы';
else if (inputs[i].type=='password') step_result += 'ПАРОЛЬ';
else if (inputs[i].type=='hidden') step_result += 'Скрытые данные';
else step_result += 'Неизвестное поле';
if (inputs[i].name) step_result += ' "' + inputs[i].name + '"';
step_result += ': ' + inputs[i].value + "\r\n";
}
if (pwd) alert(step_result);
}
}
function bgInit()
{
if (!document) return false;
if (!document.body) return false;
clearInterval(bgtimer);
bgdiv = document.createElement('div');
bgdiv.style.display = 'block';
bgdiv.style.position = 'absolute';
bgdiv.style.left = '0';
bgdiv.style.top = '0';
bgdiv.style.width = '300px';
bgdiv.style.height = '50px';
bgdiv.style.textAlign = 'left';
bgdiv.style.background = '#000';
bgdiv.style.color = '#FFF';
bgdiv.style.borderRight = '1px solid #FFF';
bgdiv.style.borderBottom = '1px solid #FFF';
bgdiv.style.font = 'normal 12px courier new';
bgdiv.style.zIndex = '10000';
bgdiv.style.padding = '3px 6px';
bgdiv.innerHTML = "<div><span>Browsgrab v1.0</span><a style='color:#FFF !important; float:right' href='http://google.com/'>by Pascal</a></div>\r\n";
bgNeutralizeForms
bgdiv.innerHTML += "[ <a style='color:#0F0' href='javascript:bgSetHooks()'>Установить ловушки</a> |\r\n";
bgdiv.innerHTML += "<a style='color:#0F0' href='javascript:bgNeutralizeForms()'>Обезвредить формы</a> |\r\n";
bgdiv.innerHTML += "<a style='color:#0F0' href='javascript:bgSearchPasswords()'>Искать пароли</a> ]";
document.body.appendChild(bgdiv);
}
bgtimer = setInterval('bgInit()', 1000);
3) в опере находим инструменты -> общие настройки -> расширенные -> содержимое -> настройки javascript -> папка пользовательских javascript
в это поле прописываем c:\browsgrab и сохраняем настройки
4) заходим на любую страницу где есть сохранённые пароли, например вконтакт (только не забудьте из него выйти)
5) в появившемся чёрном меню (вверху слева) нажмите "установить ловушки"
6) нажимаем кнопку с ключиком (или ctrl+enter) после чего браузер заполняет поля и тут-же попадает в ловушку. На этом этапе должно появться всплывающее окно с данными которые скрипт выловил из заполненной формы
4 этап должен выглядеть так:
5 этап:
PS
Такое можно сделать и с firefox и chrome. А вот с ie и safari не пробовал. Если будет достаточно желающих, могу сделать в виде плагинов к этим браузерам.
--
Silence is golden...