經典 ASP 的弱點修補指南 (Legacy Classic ASP Vulnerability Patching)

2021-01-22

筆記 Classic ASP 的弱點修補方式 🔧

logo

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"))

持續編輯中 👨‍🔧