PDA

View Full Version : سوال: پر نشدن فیلد ها در متد post



sajadf7
یک شنبه 15 تیر 1393, 14:48 عصر
سلام
من با کمک تاپیک های همین سایت یه برنامه نوشتم که تو یوزر پس یه سایتی رو میگیره و لاگ این میکنه بعد کد html رو برام برمیگردونه

اما تو دوتا سایت مختلف چک کردم تو یکیش جواب میده اما تو یکی کلا مقدار فیلد هارو پر نمیکنه
تو این کد ها جواب میده
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://tx500.travion.ir/login.php");
webRequest.Method = "post";
webRequest.ContentType = "application/x-www-form-urlencoded";
ASCIIEncoding encoding = new ASCIIEncoding();

string s = "user=" + textBox1.Text + "&&pw=" + textBox2.Text+"&&s1=ورود";
byte[] data = encoding.GetBytes(s);
webRequest.ContentLength = data.Length;
webRequest.CookieContainer = new CookieContainer();
Stream newStream = webRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse webResponse;
webResponse = (HttpWebResponse)webRequest.GetResponse();
string html;
using (Stream strmresponse = webResponse.GetResponseStream())
{
using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
{
html = reader.ReadToEnd();
richTextBox1.Text = html;
}
}
دقیقا همین برنامه رو که اجرا میکنم مقادیر textbox1 و textbox2 در ارگومان های متد post قرار میگیرن و ارسال میشه و اگه یوزر پس درست بود لاگ این میشه(با internet exlorer میشه تو سایت لاگ این کرد). اینم مقادیری هست که از firebug بعد ورود برمیدارم


login
1404643784


pw
1404


s1
ورود


user
eee


w
1366:768




Source


user=eee&pw=1404&s1=%D9%88%D8%B1%D9%88%D8%AF&w=1366%3A768&login=1404643784


------------------------------------------------------------------------------------------------------------------------

اما رو این سایت جواب نمیده.(این سایت با internet explorer نمیشه توش وارد شد.)در ضمن کد ضد رباط داره که کدش رو در برنامه اوردم و کاربر کدش رو دستی وارد میکنه.
اما مشکل اینه کلا هیچکدوم فیلد ها پر نمیشن. تو html که بهم برگشت میده جلوی هر سه تا فیلد فقط "" نوشته میشه.

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("http://ae1000.s.traaviaan.ir/login.php");
webRequest.Method = "post";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0";
ASCIIEncoding encoding = new ASCIIEncoding();
string s = "user=" + textBox1.Text + "&&pwtraa="+ textBox2.Text + "&&s1=ورود"+"&&captcha="+textBox3.Text;
byte[] data = encoding.GetBytes(s);
webRequest.ContentLength = data.Length;
webRequest.CookieContainer = new CookieContainer();
Stream newStream = webRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse webResponse;
webResponse = (HttpWebResponse)webRequest.GetResponse();
string html;
using (Stream strmresponse = webResponse.GetResponseStream())
{
using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
{
html = reader.ReadToEnd();
richTextBox1.Text = html;
}
}

کد ها همونه اما تو دوتا سایت مختلف عکس العمل متفاوتی دارن
اینم مقادیر سایت دوم هست که از firebug بعد ورود برمیدارم


captcha
vtpe


ft
a4


login
1404644273


pwtraa
1404


s1
ورود


user
eee


w





Source


ft=a4&user=eee&pwtraa=1404&captcha=vtpe&s1=%D9%88%D8%B1%D9%88%D8%AF&w=&login=1404644273



--------------------------------------------------------------

هرچقد زور زدم نتونستم کاری از پیش ببرم

sajadf7
یک شنبه 15 تیر 1393, 19:47 عصر
خوب خودم به ریشه مشکلم پی بردم.
هر کسی مشکلی مثل مشکل من داشت میتونه از همین کد ها استفاده کنه چون ایرادی نداره .اما مشکل من در کد ضد رباط هستش
من کد ضد رباط رو از صفحه موزیلا لینکشو کپی کردم و در picturebox قرار دادم. اما غافل از اینکه اون لینکی که برداشتم و کد تولید میکنه فقط برا موزیلا قابل استفاده هست . یعنی اون کد رو اگه تو اوپرا وارد کنی خطا میده. عین مشکل الان من. اون کد در برنامه من شناخته شده نیست. پس باید اون لحظه ای که request به لینک مورد نظر ایجاد میشه همون لحظه بتونم اون عکس رو ذخیره کنم بعد عکس ذخیره شده رو تو برنامه نشون بدم. نمیشه لینک استفاده کرد چون لینک که اجرا میشه یه کد جدید تولید میشه که برای برنامه من شناخته شده نیست.


خوب زیاد حرف زدم:چشمک: الان موندم چطور عکس رو از وبسایت ذخیره کنم. اگه کسی بلد بود بگه تا ماهم استفاده کنیم

HidDeN_OutX.Exe
یک شنبه 15 تیر 1393, 21:07 عصر
خوب خودم به ریشه مشکلم پی بردم.
هر کسی مشکلی مثل مشکل من داشت میتونه از همین کد ها استفاده کنه چون ایرادی نداره .اما مشکل من در کد ضد رباط هستش
من کد ضد رباط رو از صفحه موزیلا لینکشو کپی کردم و در picturebox قرار دادم. اما غافل از اینکه اون لینکی که برداشتم و کد تولید میکنه فقط برا موزیلا قابل استفاده هست . یعنی اون کد رو اگه تو اوپرا وارد کنی خطا میده. عین مشکل الان من. اون کد در برنامه من شناخته شده نیست. پس باید اون لحظه ای که request به لینک مورد نظر ایجاد میشه همون لحظه بتونم اون عکس رو ذخیره کنم بعد عکس ذخیره شده رو تو برنامه نشون بدم. نمیشه لینک استفاده کرد چون لینک که اجرا میشه یه کد جدید تولید میشه که برای برنامه من شناخته شده نیست.


خوب زیاد حرف زدم:چشمک: الان موندم چطور عکس رو از وبسایت ذخیره کنم. اگه کسی بلد بود بگه تا ماهم استفاده کنیم

سلام


WebClient wc = new WebClient();
wc.DownloadFile("http://sec-hiddenoutx-exe.zgig.ir/images//dark/logo.png", "c:\\HidDeN_OutX.Exe.jpeg");

sajadf7
دوشنبه 16 تیر 1393, 13:17 عصر
دوست عزیز ممنون بابت پاسختون. اما مشکل تو لینک هست.
برای مثال این لینک هستش که از captcha مورد نظر کپی کردم. http://ae1000.s.traaviaan.ir/code.php?627077
اما اگر صفحه ای که captcha در اون قرار داره رفرش کنم یه لینک رندم دیگه میده مثلا اینبار این لینک رو بعد از رفرش داد بهم. http://ae1000.s.traaviaan.ir/code.php?839195
بعدش اینکه همین لینکی هم که قرار دادم الان که میخوام تو کدی که دادید استفاده کنم با هر بار لود شدن لینک عکس captcha ، یه عکس جدید تولید میشه.

نه میشه مستقیم لینک عکس رو بزارم چون با هر لود شدن عکس عوض میشه. با هر لاود شدن صفحه ای که captcha داخلش هست کلا یه لینک جدید تولید میشه.

راه حلی هست. چون خودم چندین برنامه به این شکل دیدم. اما چه راهی نمیدونم.

HidDeN_OutX.Exe
دوشنبه 16 تیر 1393, 13:46 عصر
دوست عزیز ممنون بابت پاسختون. اما مشکل تو لینک هست.
برای مثال این لینک هستش که از captcha مورد نظر کپی کردم. http://ae1000.s.traaviaan.ir/code.php?627077
اما اگر صفحه ای که captcha در اون قرار داره رفرش کنم یه لینک رندم دیگه میده مثلا اینبار این لینک رو بعد از رفرش داد بهم. http://ae1000.s.traaviaan.ir/code.php?839195
بعدش اینکه همین لینکی هم که قرار دادم الان که میخوام تو کدی که دادید استفاده کنم با هر بار لود شدن لینک عکس captcha ، یه عکس جدید تولید میشه.

نه میشه مستقیم لینک عکس رو بزارم چون با هر لود شدن عکس عوض میشه. با هر لاود شدن صفحه ای که captcha داخلش هست کلا یه لینک جدید تولید میشه.

راه حلی هست. چون خودم چندین برنامه به این شکل دیدم. اما چه راهی نمیدونم.

مشکلی نداره بردار

شما ادرس کیچا رندوم شده رو از سورس کد صحفه لاگین بکش بیرون بعد به اخر ادرس سایت اضاقه که میشه ادرس کیچا رندوم شده

sajadf7
سه شنبه 17 تیر 1393, 09:35 صبح
نمیشه. ادرس کپچایی که طبق روش شما قرار میدم و مقدارش رو میفرستم نا معتبر هست.

باز هم خودم تونستمیدا کنم به کمک یه دوست.

ادرس کپچایی که تولید میشه برای اعتبار سنجیش اونو با کوکی مورد نظر یکی میکنن. یعنی فقط برای اون کوکی ایجاد شده معتبر هست.

حالا من اومدم CookieContainer cookiename= new CookieContainer(); رو به صورت عمومی تعریف کردم و بعد از ایجاد کپچا وقتی خواستم یه درخواست برا فرم لاگ این بفرستم از همون کوکی دخیره شده استفاده کردم.

امیدوارم به درد کس دیگه ای هم بخوره.

از شما هم متشکرم دوست من که وقت گذاشتید