Hola Me gustaría hablar sobre la vulnerabilidad de spam del foro Pikabu.
Creo que el foro no es el mejor, así que lo estoy probando todo.
Cual es el punto?
La vulnerabilidad radica en el aumento de la actividad, el número de clasificaciones, comentarios por el tiempo mínimo usando un script Python.
Muéstrame
Operación de script dentro de las 24 horas:

¿Crees que edité el HTML? Y no!
¿Cómo hiciste eso?
Muy facil!
Primero, cree un archivo .py:

A continuación, importemos módulos con los que realizaremos solicitudes de acciones, así como un módulo para multiprocesar nuestro script:
import requests from threading import Thread
Ahora creemos una función con un bucle infinito que envía nuestras solicitudes:
def spam(): while True: req = requests.post('')
¿Pero cómo averiguar los datos de la solicitud?
Abre Firefox, ve a Pikabu.
Elige cualquier tema. Desplácese sobre la flecha hacia arriba:

Ahora presione la combinación de teclas: cntr + shift + i.
La barra de herramientas del desarrollador apareció en la pantalla:
Para preservar la visión de los usuarios caros del foro, tuve que cortar el tema de AdBlock (ohm):

Vayamos a la pestaña "red".
Ahora vemos todas las solicitudes salientes en este navegador.
Haga clic en la flecha "calificar el tema" y mire rápidamente el panel de consulta.
Presione el botón "método" hasta que la primera solicitud sea de tipo "POST":

Entre las primeras consultas, encuentre esta:

Haga clic derecho sobre él, y desplace el mouse sobre el botón Copiar, seleccione Copiar datos POST. A continuación, inserte los datos en la consulta de esta manera:
req = requests.post('https://pikabu.ru/ajax/vote_story.php', data = { 'story_id':story, 'vote':'1' }, )
¡Pero luego evaluaremos la misma publicación!
Para solucionar esto, agregue el módulo "aleatorio" a los módulos ya importados utilizando el código:
import random
Y agregue la línea al bucle while:
story = random.randint(1000000, 6865568)
¡Sigamos creando una solicitud! Esto es lo que ya hemos hecho:
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' }, )
Agregue a la solicitud lo más importante: los encabezados. Volvamos a FireFox, simplemente haga clic derecho en la solicitud, seleccione "Copiar" pero esta vez - "Encabezados de solicitud".
Del mismo modo, a través de los dos puntos y las comillas, insértelos en el código:
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': ' ' })
En el campo "sus datos", inserte sus valores.
Mostrar el estado de la solicitud:
print(req)
si se muestra "responder <200>", se ha enviado la solicitud y se ha calificado el tema.
A continuación, haremos el guión un poco más rápido (exactamente 55 veces).
Crear subprocesos para nuestras solicitudes:
for i in range(55): thr = Thread(target = spam) thr.start()
Bueno, eso es todo! Puedes correr
Y aquí está el código completo:
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()
De la misma manera se hacen comentarios de trucos. No lo explicaré en detalle, solo diseñe el código:
Bueno, eso es todo. Puede asaltar publicaciones y comentarios.
Buena suerte
Amor Habr.
Las acciones anteriores son completamente legales, no violan más de un artículo del Código Penal de la Federación Rusa el 10/02/2019.