Статьи Выполняем свой Sql запрос в форме

Discussion in 'Статьи' started by k00p3r, 12 Jun 2005.

  1. k00p3r

    k00p3r Banned

    Joined:
    31 May 2005
    Messages:
    430
    Likes Received:
    8
    Reputations:
    2
    Отсутствие фильтрации ';' приводит к уязвимости защиты в формах, которые обрабатываются SQL server-ом. Уязвимость защиты найдена в возможности, которая возникает в некоторых страницах, не фильтрующих поля SQL на наличие опасных символов, что позволяет нападавшим заставлять сервер выполнять произвольные команды базы данных. Большинство доступных через сеть форм уязвимы к этой проблеме неочистки ввода, которая входит в запрос базы данных.

    Пример:

    Создаем форму, и затем помещаем в User ID field.

    Пример кода:

    <%
    dim lngUserID
    dim lngPassword
    strUserID = request("txtUserID")
    dim adoConn
    dim adors
    set adoConn = server.CreateObject("ADODB.connection")
    set adors = server.CreateObject("ADODB.Recordset")
    adoConn.open Application("conDOTS_ConnectionString")
    strSQL = "Select * from tblUsers where User_Id = "&strUSerID adors.Open strSQL,
    adoconn if not adors.eof then
    strEmail = adors("user_email")
    strPassword = adors("password")
    end if
    adors.close
    strSubject = "Password Request"
    strBody = "Your Password is:"&strPassword
    mailsent = fun_SendMail(strEmail,strEmail,strSubject,strBody)
    end if
    Session.abandon
    %>

    <body>
    <form ACTION="forgotpass.asp" METHOD="POST">
    Please enter your user id:
    <input type="text" name="txtUserID"><br>
    <br>
    <input type="submit" value="Submit">
    <input type="hidden" name="forgot" value="1">
    </form>
    </body>
    </html>


    Теперь, если кто-нибудь добавит следующую строку в поле User ID:

    12;exec sp_addlogin 'BadUser'

    то тогда SQL сервер исполнит обе команды.

    Для устранения уязвимости нужно при принятии от пользователя запроса нужно разрешать только алфавитно-цифровые символы и обязательно исключать специальные символы типа ';'.

    Автор: PIG Killer