PDA

View Full Version : ارسال اطلاعات با متد POST



samiasoft
یک شنبه 08 مرداد 1396, 00:44 صبح
سلام دوستان

شاید بگید موضوع تکراریه ولی باور کنید من یه نمونه مثال در این باره پیدا نکردم ! شاید مشکل از جستجوی من باشه!

ببینید من میخواستم در یک وب سایتی که یوزر پسورد میخواد با متد پست بهش لاگین بشم در واقع یک
Request ارسال کنم و سپس Response اونو بخونم که ایا لاگین شده یا نه خطا داده.

336699
یک شنبه 08 مرداد 1396, 15:31 عصر
سلام

برای سایت برنامه نویس ، یه نمونه نوشتم

samiasoft
یک شنبه 08 مرداد 1396, 16:43 عصر
سلام

برای سایت برنامه نویس ، یه نمونه نوشتم
با تشکر از شما

یه توضیحی در مورد دستور زیر میدید؟

Private Function TXT_MD5(ByVal txt As String) As String Dim m1 As MD5 = MD5.Create()
Dim m2 As Byte() = Encoding.UTF8.GetBytes(txt)
Dim m3 As Byte() = m1.ComputeHash(m2)
Dim m4 As New StringBuilder()
For i As Integer = 0 To m3.Length - 1
m4.Append(m3(i).ToString("X2"))
Next
Dim m5 As String = LCase(m4.ToString)
Return m5.ToString
End Function


قسمت های زیر رو از کجا بدست اوردید و در پست دیتا قرار دادید؟

do=login&vb_login_md5password=

&s=&securitytoken=guest&url=http%3A%2F%2Fbarnamenevis.org%2Fforum.php&vb_login_username=

336699
یک شنبه 08 مرداد 1396, 18:27 عصر
با تشکر از شما

یه توضیحی در مورد دستور زیر میدید؟

Private Function TXT_MD5(ByVal txt As String) As String Dim m1 As MD5 = MD5.Create()
Dim m2 As Byte() = Encoding.UTF8.GetBytes(txt)
Dim m3 As Byte() = m1.ComputeHash(m2)
Dim m4 As New StringBuilder()
For i As Integer = 0 To m3.Length - 1
m4.Append(m3(i).ToString("X2"))
Next
Dim m5 As String = LCase(m4.ToString)
Return m5.ToString
End Function


قسمت های زیر رو از کجا بدست اوردید و در پست دیتا قرار دادید؟

do=login&vb_login_md5password=

&s=&securitytoken=guest&url=http%3A%2F%2Fbarnamenevis.org%2Fforum.php&vb_login_username=

https://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5

samiasoft
یک شنبه 08 مرداد 1396, 19:12 عصر
https://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5

در مورد پست دیتا توضیحی نمیدید؟!

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

samiasoft
یک شنبه 08 مرداد 1396, 20:25 عصر
برای بلاگفا پست دیتا رو اینطوری زدم ولی مشکل داره


Dim postData As String = "_tt=154096&usrid=" & username & "&usrpass=" & password & "&btnSubmit=%D9%88%D8%B1%D9%88%D8%AF+%D8%A8%D9%87+%D 8%A8%D8%AE%D8%B4+%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8 %AA+%D9%88%D8%A8%D9%84%D8%A7%DA%AF: undefined"


حتی اینطور هم زدم ولی نشد
Dim postData As String = "_tt=154096&usrid=" & username & "&usrpass=" & password



پست دیتا رو با افزونه Live HTTP Headers بدست اوردم....به نظرتون راه بهتری هم برا بدست اوردنش بود؟

336699
یک شنبه 08 مرداد 1396, 22:14 عصر
برای بلاگفا ، این شکلی میشه

samiasoft
یک شنبه 08 مرداد 1396, 23:56 عصر
برای بلاگفا ، این شکلی میشه

ممنون از شما خیلی لطف کردید

اما یک نکته مبهم !

این قسمت پست دیتا رو ببینید :

شما عبارت _tt=154098&usrid= رو نوشتید در حالی که من این رو امتحان کردم برام ج نداد. با اون افزونه ای که گفتم پست دیتا رو بدست اوردم دیدم در سیستم من این عبارت باید _tt=154100&usrid= باشه. ینی عدد 154098 بایستی تبدیل به 154100 بشه.
حالا به نظرتون این مورد رو چطوری میشه حل کرد که در همه سیستم ها دوباره این مقدار رو تغییر ندیم!

336699
دوشنبه 09 مرداد 1396, 01:38 صبح
اون عدد با گذشت زمان تغییر میکنه :متفکر:

samiasoft
دوشنبه 09 مرداد 1396, 13:20 عصر
اون عدد با گذشت زمان تغییر میکنه :متفکر:

احتمالا فقط در بلاگفا اینطوریه جهت امنیت سایت اینطور کردن...به هرحال ممنونم از شما در یه سایت دیگر که نیاز بود امتحان کردم و به درستی به هدفم رسیدم.

حال یک سوال دیگر
آیا با این متد پست میشه اطلاعاتی رو هم دریافت کرد ؟!

برای مثال ببینید در سایت زیر :

سایت ایساکو (https://www.isaco.ir/main/%d9%82%d8%b7%d8%b9%d8%a7%d8%aa-%d8%ae%d9%88%d8%af%d8%b1%d9%88/%d9%84%db%8c%d8%b3%d8%aa-%d9%82%d8%b7%d8%b9%d8%a7%d8%aa/)

در قسمت کد کالا عبارت 0010111803 رو بنویسید و روی نمایش قطعه که کلیک کنید شرح کالا و قیمتشو برایمان نمایش میده.

من میخواستم بدون استفاده از وب بروزر با همین HttpWebRequest این اطلاعات شرح کالا و قیمت رو استخراج کنم.

بعد این که اون عبارت رو نوشتم پست دیتا مقدار زیر بدست اومد.
pcode=0010111803&pdesc=&pkhodro=
اما در هردوسورسی که قرار داده بودید من اینارو اعمال کردم و سورس رو که بدست اوردم این اطلاعات رو داخلش پیدا نکردم!

Dim strSource As String = reader.ReadToEnd
TextBox3.Text = strSource

samiasoft
دوشنبه 09 مرداد 1396, 20:56 عصر
جواب سوال بالا رو تونستم پیداکنم سایت مربوطه خروجی یونیکد میداد.

اما اخرین سوالم در این زمینه این میتونه باشه که بعضی سایت ها دیدید که برای لاگین شدن کد کپچا دارن...در چنین سایت هایی چطوری پست دیتا رو بفرستیم؟

برای یک نمونه مثلا سایت پلیس راهور که میخواهیم با داشتن شماره خودرو تخلف اونو بدست بیاریم.

http://estelam.rahvar120.ir/index.jsp?siteid=1&fkeyid=&siteid=1&pageid=2371666

336699
دوشنبه 09 مرداد 1396, 21:53 عصر
جواب سوال بالا رو تونستم پیداکنم سایت مربوطه خروجی یونیکد میداد.

اما اخرین سوالم در این زمینه این میتونه باشه که بعضی سایت ها دیدید که برای لاگین شدن کد کپچا دارن...در چنین سایت هایی چطوری پست دیتا رو بفرستیم؟

برای یک نمونه مثلا سایت پلیس راهور که میخواهیم با داشتن شماره خودرو تخلف اونو بدست بیاریم.

http://estelam.rahvar120.ir/index.jsp?siteid=1&fkeyid=&siteid=1&pageid=2371666


کپچاش خیلی نافرم هست :گیج:

اجبارا کاربر خودش باید کد رو دستی وارد کنه.

راه های دورزدن هم همیشه وجود داره (باید روش کار بشه) ولی در مورد این سایت به دردسرش نمیارزه.

samiasoft
دوشنبه 09 مرداد 1396, 22:25 عصر
کپچاش خیلی نافرم هست :گیج:

اجبارا کاربر خودش باید کد رو دستی وارد کنه.

راه های دورزدن هم همیشه وجود داره (باید روش کار بشه) ولی در مورد این سایت به دردسرش نمیارزه.

پس میمونه 2 روش

حالت اول : کپچا رو بریزم داخل پیکچر باکس بعد با پست دیتا بفرستمش

حالت دوم : کپچا رو با ocr بخونم و با پست دیتا بفرستمش


برای حالت اول اومدم پیکچر رو لود کردم
PictureBox1.ImageLocation = "http://estelam.rahvar120.ir/includes/captcha.jpg?rand=0.263705773602392"

و مقداری که نمایش میداد رو داخل پست دیتا ارسال کردم اما باز خطا داد ! فک کنم اون کد کپچایی که من لود میکنم با اونی که وب ریکوست میخواد فرق داره !

samiasoft
دوشنبه 09 مرداد 1396, 22:52 عصر
الان که بیشتر دقت میکنم پست دیتای اینم هربار فرق میکنه !

واقعا این تغییر کردن پست دیتا مشکل درست میکنه !