ตัววิเคราะห์รหัสแหล่งที่มาของ Microsoft สำหรับเครื่องมือ Injection SQL ไม่พร้อมใช้งานการค้นหาช่องโหว่ injection SQL ในโค้ด ASP

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 954476 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

บทนำ

บทความนี้อธิบายถึงตัววิเคราะห์รหัสแหล่งที่มาของ Microsoft สำหรับเครื่องมือ Injection SQL คุณสามารถใช้เครื่องมือวิเคราะห์คงรหัสนี้เพื่อค้นหาช่องโหว่ injection SQL ในโค้ด ASP

ข้อมูลเพิ่มเติม

ตัววิเคราะห์รหัสแหล่งที่มาของ Microsoft สำหรับเครื่องมือ Injection SQL เป็นเครื่องมือการวิเคราะห์ของรหัสแบบคงที่ช่วยคุณค้นหาช่องโหว่ injection SQL ในรหัส Active Server หน้า (ASP) บทความนี้อธิบายวิธีการใช้เครื่องมือ คำเตือนที่สร้างขึ้น โดยการใช้เครื่องมือ และข้อจำกัดของเครื่องมือ ดูเอกสาร Readme เครื่องมือสำหรับข้อมูลเพิ่มเติม

ข้อกำหนดเบื้องต้น

เครื่องมือบรรทัดคำสั่งนี้ต้องใช้ซอฟต์แวร์ต่อไปนี้:
  • .NET Framework 3.0

ปัญหา injection sql ในโค้ด ASP

ถ้าข้อมูลการกำหนดให้ผู้ใช้จากนั้นRequest.FormหรือRequest.Querystringคอลเลกชันใน ASP รหัสถูกใช้เพื่อสร้างคำสั่ง SQL แบบไดนามิกโดยไม่ต้องการตรวจสอบข้อมูลใด ๆ ผู้โจมตีสามารถ inject คำสั่ง SQL ในคำสั่ง SQL ที่ และจากนั้น misuse ซึ่งมักเรียกว่าเป็นช่องโหว่ injection SQL ลำดับแรก.

หากผู้ใช้ในการป้อนข้อมูลถูกเก็บอยู่ในฐานข้อมูล โดยใช้เพจ ASP หนึ่ง และจากนั้น ผู้ใช้ป้อนถูกดึงมาจากฐานข้อมูล และใช้ในการสร้างคำสั่ง SQL แบบไดนามิกในเพจ ASP แตกต่างกัน ผู้โจมตีสามารถ inject คำสั่ง SQL ไปเป็นคำสั่ง SQL แล้ว misuse ซึ่งมักเรียกว่าเป็นช่องโหว่ injection SQL ของใบสั่งที่สอง.

เมื่อต้องการลดช่องโหว่เหล่านี้ ได้ดีที่สุดในการใช้การสอบถาม SQL parameterized สำหรับข้อมูลเพิ่มเติม เกี่ยวกับช่องโหว่ injection SQL ใน ASP และ เกี่ยวกับวิธีการใดวิธีการลดช่องโหว่เหล่านี้ แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
ตัววิเคราะห์รหัสแหล่งที่มาของ Microsoft สำหรับเครื่องมือ Injection SQL ช่วยคุณค้นหาบางอย่างของปัญหาเหล่านี้โดยอัตโนมัติ

การใช้งาน

ส่วนนี้อธิบายวิธีการใช้เครื่องมือ

ไวยากรณ์

เครื่องมือนี้ใช้ไวยากรณ์ต่อไปนี้:
msscasi_asp.exe [/nologo] [/quiet] [/suppress=num;..;num] [/ GlobalAsaPath =เส้นทาง] [/IncludePaths=path;..;path /Input=file.asp

คำอธิบาย:

เครื่องมือวิเคราะห์ ASP รหัสสำหรับช่องโหว่ injection SQL

รายชื่อของพารามิเตอร์

ยุบตารางนี้ขยายตารางนี้
พารามิเตอร์ตัวเลือกคำอธิบาย:
/ GlobalAsaPathเส้นทางแสดงเส้นทางของแฟ้ม Global.asa
/ IncludePathsเส้นทางแสดงคั่นอัฒภาคพาธสำหรับการแก้ไขแฟ้มที่มีอยู่ โดยใช้เส้นทางเสมือน
/ การใช้สำหรับการป้อนค่าแฟ้ม aspแสดงเส้นทางที่สมบูรณ์ของไฟล์ ASP ที่ต้องจะวิเคราะห์
/ ระงับคำเตือนไม่มีรายงานคำเตือน
/nologoโลโก้ของเครื่องมือไม่ปรากฏขึ้น
/ เงียบไม่มีแสดงข้อผิดพลาดแยกวิเคราะห์ เมื่อคุณใช้การ/nologoและ/ เงียบสวิตช์ เฉพาะข้อความแจ้งเตือนจะถูกแสดง

ตัวอย่าง

MSSCASI_ASP /input="c:\source\logon.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp"
MSSCASI_ASP /GlobalAsaPath="C:\source" /input="c:\source\webitems\display.asp" /IncludePaths="C:\virtualdirectory1;C:\virtualdirectory2"
MSSCASI_ASP /input="c:\source\webitems\display.asp" /suppress="80406;80407"

ตรวจดูการแสดงผล

เครื่องมือนี้สร้างคำเตือนต่อไปนี้:
ยุบตารางนี้ขยายตารางนี้
คำเตือนคำอธิบาย:
80400เป็นไปได้ SQL injection เสี่ยงถึงข้อมูลที่มีอ่านจากวัตถุร้องขอ without ใด ๆ สำหรับการป้อนค่าการตรวจสอบ คำเตือนเหล่านี้มีแนวโน้มมากบักที่ต้องจะแก้ไข
80406เป็นไปได้ SQL injection เสี่ยงถึงข้อมูลที่มีอ่านจากอ็อบเจกต์ Request ที่ซึ่งการส่งผ่านค่านำเข้าที่ผ่านการเรียกบางฟังก์ชันที่ไม่รู้จักที่อาจทำการตรวจสอบข้อมูล ถ้าไม่มีดำเนินการภายในการเรียกฟังก์ชันการตรวจสอบข้อมูลที่ไม่มี เหล่านี้คือบักแนวโน้มมาก มิฉะนั้น เหล่านี้คือ positives เท็จ
80403เป็นไปได้ SQL injection เสี่ยงถึงข้อมูลที่มาจากเซิร์ฟเวอร์สิ้นสุดหลัง ถ้าข้อมูลถูกควบคุม โดยผู้ใช้ปลายทางมีผ่านบางไซต์ของเว็บอื่น เหล่านี้คือบักแนวโน้มมาก อย่างไรก็ตาม ถ้าข้อมูลเชื่อถือได้ด้วย เหล่านี้อาจไม่สามารถบัก จะยังคงควร parameterize แบบสอบถามเหล่านี้เป็นส่วนหนึ่งของกลยุทธ์การป้องกันในลึก
80407ช่องโหว่ injection SQL ได้ถึงข้อมูลที่มาจากเซิร์ฟเวอร์สิ้นสุดหลังและ ผ่านการผ่านบางเรียกฟังก์ชันที่ไม่รู้จัก ถ้าข้อมูลถูกควบคุม โดยผู้ใช้ปลายทางมีผ่านบางเว็บไซต์อื่น และถ้ามีการ ตรวจสอบข้อมูลที่ไม่ได้ดำเนินการกับข้อมูลนี้ ต่อไปนี้คือบักแนวโน้มมาก
80420เป็นไปได้ SQL injection เสี่ยงพารามิเตอร์ฟังก์ชัน คำเตือนเหล่านี้ถูกสร้างขึ้นในขอบเขตของฟังก์ชัน ดังนั้น ถ้าค่าของพารามิเตอร์ฟังก์ชันมาจากแหล่งที่เชื่อถือได้ เหล่านี้ได้ positives เท็จ ถ้าค่าพารามิเตอร์ถูกควบคุม โดย end-users เหล่านี้คือบักแนวโน้มมาก คุณสามารถใช้คำอธิบายประกอบ __sql_pre_validated พารามิเตอร์ฟังก์ชันตรวจสอบว่า end-users สามารถเข้าถึงรหัสนี้
80421ช่องโหว่ injection SQL อาจผ่านพารามิเตอร์ฟังก์ชัน และพารามิเตอร์การฟังก์ชันถูกส่งผ่านผ่านบางเรียกฟังก์ชันที่ไม่รู้จักที่อาจทำการตรวจสอบข้อมูล คุณสามารถใช้คำอธิบายประกอบ __sql_pre_validated พารามิเตอร์ฟังก์ชันและ __sql_validate ในฟังก์ชันการตรวจสอบเพื่อตรวจสอบว่า end-users สามารถเข้าถึงรหัสนี้
ของคำทั้งหมดที่เตือนที่สร้างเครื่องมือ คำเตือน 80400 อยู่ที่ส่วนใหญ่มักจะบ่งชี้บักที่แท้จริง นักพัฒนาเว็บ asp ต้องแก้ไขบักเหล่านี้ โดยใช้การสอบถาม parameterized สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้การสอบถาม SQL parameterized ในโค้ด ASP แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:
http://msdn.microsoft.com/en-us/library/cc676512.aspx

ข้อจำกัด

The tool has the following known limitations:
  • The tool understands only ASP code that is written in VBScript. It currently does not analyze server-side code that is written in any other languages, such as Jscript.
  • A new ASP parser was developed as part of this tool development process. However, this parser may not cover all ASP constructs. Therefore, you may see some parsing errors.

ข้อมูลอ้างอิง

To download the Microsoft Source Code Analyzer for SQL Injection tool, visit the following Microsoft Web site:
http://www.microsoft.com/downloads/details.aspx?FamilyId=58A7C46E-A599-4FCB-9AB4-A4334146B6BA
For more information about various best practices documentation, visit the following Microsoft Web site:
http://blogs.technet.com/swi/archive/2008/05/29/sql-injection-attack.aspx
For more information about preventing SQL injections in ASP, visit the following Microsoft Web site:
http://msdn.microsoft.com/en-us/library/cc676512.aspx
For more information about SQL injection attacks, visit the following Microsoft Web site:
http://blogs.msdn.com/sdl/archive/2008/05/15/giving-sql-injection-the-respect-it-deserves.aspx
For more information about the tool, visit the following Microsoft Web site:
http://blogs.msdn.com/sqlsecurity

คุณสมบัติ

หมายเลขบทความ (Article ID): 954476 - รีวิวครั้งสุดท้าย: 7 มิถุนายน 2556 - Revision: 4.0
ใช้กับ
  • Microsoft ASP.NET 2.0
Keywords: 
atdownload kbexpertiseadvanced kbcode kbexpertiseinter kbinfo kbsecadvisory kbsecurity kbsecvulnerability KB954476

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com