发现ASP.NET和C#中的漏洞

时间:2017-10-01 11:57:00

标签: c# asp.net

我正在开发一个应用程序。我怎样才能找到让黑客有机会攻击的漏洞?这里有哪些安全机制?

例如这段代码:

foreach (GridViewRow row in USER_GROUP_FROMS.Rows)
{             
    var chkboxuser = (CheckBox)row.FindControl("mainsupp");

    abc = "";

    if (chkboxuser.Checked == true)
    {
        string xe = "DATA SOURCE=technovalms;USER ID=AMC; password=amc;";
        OracleConnection conn = new OracleConnection();
        conn.ConnectionString = xe;

        OracleCommand cmd = new OracleCommand();
        cmd.Connection = conn;

        conn.Open();

        cmd.CommandText = "insert into TECHNOVA_SMS_USER_PRIVILEAGE(ID,SMS_USER_ID,SMS_PAGE_ID) values(SEQUENCEMODEL.nextval,'" + user_type.SelectedValue.ToString() + "','" + chkboxuser + "') ";

        cmd.ExecuteNonQuery();
    }
}

1 个答案:

答案 0 :(得分:1)

OWASP是你的朋友:

https://www.owasp.org/index.php/Main_Page

网站上有很多信息,您可以从Web Application Security Testing Cheat Sheet开始,对该主题进行详细介绍,并在Web应用程序的安全测试期间执行任务清单。

修改

顺便说一句,您提供的代码容易受到SQL注入攻击。

您将控件的内容直接附加到查询中,以便用户输入如下内容:

1';DELETE FROM TECHNOVA_SMS_USER_PRIVILEAGE' 

瞧!他们可以访问您的所有数据库信息。

为避免这种情况,您应始终使用参数过滤用户输入:

cmd.CommandText = "insert into TECHNOVA_SMS_USER_PRIVILEAGE(ID,SMS_USER_ID,SMS_PAGE_ID) values(SEQUENCEMODEL.nextval,':selectedValue',':chkboxuser') ";

cmd.Parameters.Add(new OracleParameter("selectedValue", user_type.SelectedValue.ToString()));
cmd.Parameters.Add(new OracleParameter("chkboxuser", chkboxuser));