Рекомендуется: оптимизация ASP использует привязку данных для достижения высокоэффективных динамических веб-страниц Привязка данных не является новой концепцией, и IE 4.0 уже обеспечил его богатую поддержку. Тем не менее, привязка данных не ценится, как это заслуживает, и многие разработчики, похоже, более склонны использовать методы сценариев на стороне сервера. Однако на самом деле
Цель взлома: взломать зашифрованный пароль для входа в тройн ASP. Поскольку в троянской лошади нет описания версии, я не знаю, как называется троян.
Идеи растрескивания: два типа: замените зашифрованный текст на зашифрованный пароль и обратно решайте пароль, используя алгоритм шифрового текста и шифрования.
Первый вовсе не настоящий трещин. Если вы не можете получить исходный код ASP, то вы можете сказать, что у меня нет шансов взломать пароль. Друг из Китая сказал, что он получил веб -разрешения, но не мог изменить домашнюю страницу. Он обнаружил, что в нем был троян ASP, но пароль был зашифрован. Хорошо, слишком много чушь, так что будьте готовы, это объяснение будет довольно длинным.
Ключевые коды для проверки пароля ASP Trojan входит в систему:
Если epass (trim (request.form (password))) = q_ux624q p, тогда response.cookies (пароль) = 8811748 ... |
Очевидно, что функция EPAS используется для шифрования входного пароля, а затем сравнить полученный зашифрованный текст с исходным зашифрованным текстом. Если у вас есть небольшое базовое программирование, особенно VB, то алгоритм шифрования в EPAS будет ясным с первого взгляда. Если нет, то это не имеет значения. Я считаю, что вы быстро поймете после моего объяснения. В функции переменная, которая сохраняет пароль, проходит. Pass & zxcvbnm,./ Подключите содержимое в пропуске с zxcvbnm,./ Чтобы получить новую строку. Слева (Pass & zxcvbnm ,./, 10) принимает 10 лучших цифр. Функция Strreeverse переворачивает полученный 10-битный порядок строк. Лен (Пасс) получает длину пароля. Ниже приведена петля. Длина кодового слова ASCII каждого бита в полученной строке округлена (позиция символа *1.1), а затем полученное значение преобразуется в символы и воссоединяется. Наконец, все символы с «в полученной строке заменяются B», так что сгенерирован зашифрованный текст. Если мы извлеките алгоритм шифрования и заменим исходный зашифрованный текст нашим собственным зашифрованным текстом, соответствующий пароль также станет вашим паролем. Но я сказал, что это не настоящая трещина.
Если мы напечатаем любовь, процесс шифрования выглядит следующим образом:
| любовь lovezxcvbnm,./'connection lovezxcvbn 'возьмите 10 лучших 10 NBVCXZEVOL 'Порядок перевернулся не 110 (ASCII) -4 (цифровое число) int (1 (положение)*1.1) = 107 Код ASCII 107 - это k, и т. Д., И последний шифвый текст: K`UCY HZTS |
Мы можем инвертировать пароль через алгоритмы шифрового текста и шифрования и подтолкнуть его с последнего шага алгоритма. Последний шаг - заменить все на B, необходимо ли заменить B обратно, ответ - нет. Пока мы можем получить последний зашифрованный текст, возможно, что пароль отличается. Если есть 10 BS, то количество исходных паролей составляет 2 к мощности 10. Хотя есть только один исходный пароль, 1024 пароли - все правильно. Если вы хотите идеально взломать его, вы можете попытаться написать все комбинации самостоятельно. Затем этот шаг можно игнорировать, приведенный выше алгоритм очень ясен.
| Chr (ASC (Mid (Temppass, J, 1))-Templen int (j*1.1)) |
Нам просто нужно просто изменить и - на некоторое время.
| Chr (ASC (Mid (Temppass, J, 1)) Templen-Int (J*1.1))))) |
Но есть еще одна проблема. Мы не знаем продолжительность пароля заранее, так что это не имеет значения. К счастью, пароль находится между 1-10 цифр и не слишком длинный. Затем мы можем использовать цикл от 1 до 10, чтобы найти все возможные пароли, а затем изменить их порядок, используя функцию Strreverse. Итак, как мы определим, какой пароль мы получаем в конце? Вы можете проверить, есть ли первые несколько цифр ZXVBNM и ./ После исключения пароля с конца. Тогда это реальный пароль. Затем, если пароль составляет 10 бит, он будет правильным навсегда, потому что за ним нет подключения. Таким образом, мы можем получить два ответа.
Ниже приведена функция дешифрования, которую я написал:
Функция ccode (код) для Templen1 = от 1 до 10 mmcode = для j = 1-10 mmcode = mmcode chr (asc (mid (code, j, 1)) templen1-int (j*1.1))) следующий Ccode = strreverse (mmcode) response.write password & templen1 &: & ccode & Если середина (ccode, templen1 1,10-templen1) = слева (zxcvbnm ,./, 10-templen1) и Templen1 <> 10 тогда Результат = слева (CCODE, Templen1) следующий response.write Последний пароль: и результат конечная функция |
ОК, алгоритм не может быть полностью освоен за такое короткое время, что нормально. Поэтому я прикреплю инструкции и зашифрованный и расшифрованный исходный код ASP к сжатому пакету. Пожалуйста, возьмите его обратно и изучите его внимательно. Аналогично, пароль 10 вечно правильный. Затем давайте возьмем исходный зашифрованный текст в ASP и посмотрим, какими будут результаты.
Поделиться: используйте атрибут ответа в ASP- ContentType Я столкнулся с такой проблемой при использовании ASP для создания веб -страниц для определенной единицы. В предыдущей системе MIS устройства некоторые файлы Word были сохранены в базе данных в виде байтовых потоков. Теперь пользователь попросил меня использовать ASP, чтобы взять эти данные файла Word из базы данных и отобразить их на веб -странице.