前兩篇文章介紹了攻擊者通過(guò)構(gòu)造SQL語(yǔ)句來(lái)獲得“非授權(quán)信息”,都是停留在數(shù)據(jù)庫(kù)層面的,其實(shí)它的威力可不僅僅止于此吆。如果DB管理員有疏忽,再加上頁(yè)面有注入漏洞,危害不僅僅像前兩篇最終網(wǎng)站后臺(tái)淪陷搞不好整個(gè)系統(tǒng)都有可能被人控制。
測(cè)試環(huán)境跟上一篇相同, MSQL + asp.net + win7。前面已經(jīng)拿下了管理員用戶名、密碼,我們還是使用新聞詳細(xì)頁(yè)面 ( 方便測(cè)試,不設(shè)防 ):
public partial class NewsInfo : System.Web.UI.Page { protected NewsModel _news = new NewsModel(); protected void Page_Load(object sender, EventArgs e) { var id = Request["id"]; var sqlStr = "select * from news where id=" + id; var sqlCon = SqlHelper.GetConnection(); try { var ds = SqlHelper.ExecuteDataset(sqlCon, CommandType.Text, sqlStr); if (ds.Tables[0].Rows.Count <= 0) return; _news.Title = ds.Tables[0].Rows[0]["title"].ToString(); _news.Text = ds.Tables[0].Rows[0]["text"].ToString(); &nbs