PDA

View Full Version : مشکل این کد درج در بانک کجاست؟



mammad_asir
یک شنبه 26 خرداد 1392, 14:46 عصر
SqlConnection conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=J:\\source cod\\PROJECT C #\\ketabkhaneghaem\\ketabkhaneghaem\\Database1.mdf ;Integrated Security=True;User Instance=True");
SqlCommand cmd = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
DataSet ds =new DataSet();

if (txtfname.Text == "" || txtlname.Text == "" || txtcodozv.Text == "")
{
MessageBox.Show("وارد كردن کد عضویت ، نام و نام خانوادگي الزامي مي باشد");
}
else
{
conn.Open();

cmd.CommandText = ("insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + textBox1 + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + textBox2 + "','" + textBox3 + "')");
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
}

روی cmd.ExecuteNonQuery ارور میده
کل فیلد های جدولم nchar هست

fool66
یک شنبه 26 خرداد 1392, 14:51 عصر
cmd.CommandText = ("insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + textBox1 + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + textBox2 + "','" + textBox3 + "')");


خاصیت text تکست باکس هاتو رو استفاده کن

tooraj_azizi_1035
یک شنبه 26 خرداد 1392, 15:07 عصر
خطایی که میده چیه؟

mohsenmxp
یک شنبه 26 خرداد 1392, 15:31 عصر
من فکر می کنم به صورت پارامتری انجام بدید بهتره :


SqlCommand cmd = new SqlCommand("INSERT INTO karbar(Name , Pass ,Access)VALUES( @Name , @Pass , @Access)", con);

cmd.Parameters.AddWithValue("@Name", Name);
cmd.Parameters.AddWithValue("@Pass", Pass);
cmd.Parameters.AddWithValue("@Access", Access);
con.Open();
cmd.ExecuteNonQuery();
con.Close();

amir_pro
یک شنبه 26 خرداد 1392, 16:21 عصر
اگه از پارامتر استفاده نکنی . کابرت زرنگ باشه میتونه کد تزریق بکنه :شیطان: :شیطان:

mammad_asir
یک شنبه 26 خرداد 1392, 16:34 عصر
بعد 4 سال دوری کامل از کد دوباره اومدم کلا یکم قاطی بودم متشکر

mammad_asir
یک شنبه 26 خرداد 1392, 16:35 عصر
اگه از پارامتر استفاده نکنی . کابرت زرنگ باشه میتونه کد تزریق بکنه :شیطان: :شیطان:
فکر کنم تزریق در مواقع ورود به سیستم یا جایی که رمز میخواد استفاده میشه درسته؟
اینجا کاربردی نداره

vira1368
یک شنبه 26 خرداد 1392, 19:23 عصر
فکر کنم تزریق در مواقع ورود به سیستم یا جایی که رمز میخواد استفاده میشه درسته؟
اینجا کاربردی نداره

دوست من کاربرد برای برنامه نویسه، معمولا cracer یا hacker(جوجه هکر) دنبال کاربرد نیست و از نظر روانی مشکل داره و هدفش خراب کردن و آسیب زدنه. با همچین باگی میشه کل بانک رو drop کرد.
موفق باشید

mammad_asir
دوشنبه 27 خرداد 1392, 01:05 صبح
میشه لطفا بفرمایید چطور اینجا میشه مثلا DROP کرد؟
من امتحان کردم نشد

vira1368
دوشنبه 27 خرداد 1392, 01:23 صبح
بله حتما ولی خواهشا در راه درست استفاده کنید و اگر باگ مشابه دیدین به admin اطلاع رسانی کنید.
در چنین مواقعی هر مقداری را میتونید توی تکست باکس ها وارد کنید و در تکست باکس آخر مقدار تخریب کننده رو وارد کنید
به عنوان مثال برای حذف جدول اعضا عبارت زیر رو وارد کنید:

'; drop table aza; select '1
و یا برای حذف دیتابیس از این عبارت استفاده کنید:

'; drop database database1; select '1
کلا میتونید هر کد sql که دوست داشتین وارد کنید، کافیه هکر اسم جدول کاربرا رو بفهمه و یک یوزر با دسترسی بالا برای خودش insert کنه و راحت به اطلاعات دسترسی پیدا کنه و admin هم به این راحتیا متوجه نشه که هک شده.
امیدوارم موفق باشید.