經典 ASP 的弱點修補指南 (Legacy Classic ASP Vulnerability Patching)
2021-01-22
筆記 Classic ASP 的弱點修補方式 🔧
SQL Injection
弱點說明
因為組合 SQL Command 不當的原因,讓惡意的行為被執行。
set db=Server.CreateObject("ADODB.CONNECTION")
db.Open "SQLServer","userName","userPass"
SQLQueryString = "SELECT * FROM databaseName.dbo.tableName WHERE PID='" + Request.QueryString("Q1")
SQLQueryString = SQLQueryString + "' AND NAME ='"+ Request.QueryString("Q2") +"' "
set rs = Server.CreateObject("ADODB.RECORDSET")
set rs = db.Execute (SQLQueryString)
修正方式
✔️ 使用參數化的方式來傳遞
set db=Server.CreateObject("ADODB.CONNECTION")
set rs=Server.CreateObject("ADODB.RECORDSET")
set cmd1 = Server.CreateObject("ADODB.Command")
db.Open "SQLServer","userName","userPass"
cmd1.ActiveConnection = db
cmd1.CommandText = "SELECT * FROM databaseName.dbo.tableName WHERE PID= ? AND NAME = ?"
cmd1.Parameters(0).value = prameter1
cmd1.Parameters(1).value = prameter1
rs.Open(cmd1)
XSS
弱點說明
Script 可以被夾雜在使用者的輸入當中,被呈現在網頁上。
parameter = Request.QueryString("Q1")
修正方式
✔️ 將 HTML 進行 Encode ,避免 Script 被觸發。
parameter Server.HTMLEncode(parameter = Request.QueryString("Q1"))
持續編輯中 👨🔧