Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # LA COOKIE DE SESIÓN DE PASTEBIN!!!
- # ES SUPER NECESARIA Y OBLIGATORIA
- # SE PUEDE ENCONTRAREN EL NAVEGADOR CON EL ID: 'PASTEBIN-FRONTEND'
- $PASTEBIN_SESSION = ""
- # PASTE
- $PASTEBIN_PASTE_ID = "Q3PWwwLk" # el ID del paste, ej: https://pastebin.com/Y3Vp5RQH TOMAR SOLO LA PARTE 'Y3Vp5RQH'
- $TEXTO_NUEVO = "EDITADO MEDIANTE POWERSHELL GUIA BY joelg4dea"
- # OPCIONES DE EDICIÓN (CAMPOS) (MODIFICAR A GUSTO)
- # campos de la petición para editar el PASTE
- $peticion_campos = @(
- @{
- 'PostForm' = 'text' # texto del paste
- 'value' = $TEXTO_NUEVO # valor del texto, ej: 'MI MAMA ME MIMAAAA' (cambiar la variable {TEXTO_NUEVO})
- }
- <# CAMPOS ALTERNATIVOS QUE PUEDEN CAMBIARSE MEDIANTE LA PETICIÓN (DES-COMENTAR PARA HABILITARLOS):
- @{
- 'PostForm' = 'category_id' # categoría del paste
- 'valor' = '0' # valor de la categoría. '4' = Cybersecurity
- }
- @{
- 'PostForm' = 'tag' # tags del paste
- 'valor' = '' # lista de tags (separados por , y sin espacios) ej: 'html,css,js,php'
- }
- @{
- 'PostForm' = 'expiration' # expiración de paste
- 'valor' = 'PREV' # 'PREV' = copiar la expiración del paste. 'N' = NUNCA , '1Y' = 1 año... (te encargo la tarea de investigar más XD)
- }
- @{
- 'PostForm' = 'format' # lenguaje del paste
- 'valor' = '1' # tambien conocido como 'Syntax Highlighting'. '1' = NINGUNO, '117' = PowerShell...
- }
- @{
- 'PostForm' = 'status' # privacidad del paste
- 'valor' = '1' # estados: '0' = publico, '1' = no listado, '2' = privado
- }
- @{
- 'PostForm' = 'folder_key' # carpeta del paste
- 'valor' = '' # no sé la key de tus carpetas, investigalo por tu cuenta...
- }
- @{
- 'PostForm' = 'folder_name' # nombre de la carpeta (este campo es inutil)
- 'valor' = '' # no sirve de nada, para guardar el paste en una carpeta solo es necesario {folder_key}.
- }
- @{
- 'PostForm' = 'is_password_enabled' # proteger el paste con contraseña?
- 'valor' = '0' # cambiarlo a '1' para establecer una contraseña y des-comentar 'PostForm' = 'password' (campo de abajo)
- }
- @{
- 'PostForm' = 'password' # contraseña del paste
- 'valor' = '' # establecer is_password_enabled en '1' (campo de arriba), y después ingresar el texto de la contraseña, ej: 'MICONTRASENIA'
- }
- @{
- 'PostForm' = 'is_burn' # eliminar despues de leerlo
- 'valor' = '0' # '0' = no borrar, '1' = borrar después de leer
- }
- @{
- 'PostForm' = 'name' # nombre del paste
- 'valor' = '' # es un texto sin más, ej: 'Pastebin | editar PASTES con POWERSHELL (en pocas líneas)'
- }
- #>
- )
- # OTRAS COSAS
- $pb = '---------------------------117' # separador de campos de la petición. modificar a gusto... aunque no es necesario modificarlo.
- $nl = [char]10 # carácter de nueva línea v:
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- # NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
- #
- #
- #
- #
- #
- #
- #
- #
- # creación de la sesión
- $p_sesion = $NULL # vaciado de la sessssion (por si las moscas)
- $p_sesion = New-Object Microsoft.PowerShell.Commands.WebRequestSession
- # cookie de sesión de pastebin (tomarla desde el navegador y pegarla en {PASTEBIN_SESSION})
- # importante no compartir con nadie este dato jkasjdkaljwdkajwdlkawd
- $p_sesion.Cookies.Add((New-Object System.Net.Cookie("pastebin-frontend", $PASTEBIN_SESSION, "/", "pastebin.com")))
- $user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0"
- # llamada para editar el post (y actualizar {p_sesion})
- $WR = $NULL # vaciado de la wr (por si ya estaba llena) [si la petición tira una excepción $A NO ES VACIADA]
- $WR = Invoke-WebRequest -UseBasicParsing -Uri "https://pastebin.com/edit/$($PASTEBIN_PASTE_ID)" -WebSession $p_sesion -UserAgent $user_agent
- # obtención del csrf que genera pastebin para la petición de edición del PASTE
- [String]$csrf = ""
- [String]$csrf = ($WR.RawContent -split '\r?\n' | Select-String '^.*input.*?name="_csrf' -Raw) -replace '^.*value *= *"(.*?)".*$', '$1'
- # creación de la petición (en modo hashtable para mejor redacción :v)
- $peticion = @(
- @{
- 'campo' = 'Content-Disposition: form-data; name="_csrf-frontend"' # campo de la petición (como los campos de arriba jaja)
- 'valor' = $csrf # csrf obtenido para que no nos rechace la petición
- }
- )
- # agregado de los campos DE ARRIBA en la petición (posiblemente hayan sido modificados)
- $peticion_campos | ForEach-Object {
- $peticion += @{
- 'campo' = 'Content-Disposition: form-data; name="PostForm['+ $_.PostForm + ']"'
- 'valor' = $_.value
- }
- }
- # conversión del hashtable a STRING (y algunos detalles que la petición necesita para funcionar...)
- [String]$peticion_string = "--$pb" + (($peticion | ForEach-Object { $nl + $_.campo + $nl + $nl + $_.valor + $nl }) -join "--$pb") + "--$pb--"
- [Byte[]]$peticion_bytes = ([System.Text.Encoding]::UTF8.GetBytes($peticion_string))
- # envío de la petición de edición
- $WR = $NULL
- $WR = Invoke-WebRequest -Method Post -UseBasicParsing -Uri "https://pastebin.com/edit/$($PASTEBIN_PASTE_ID)" -UserAgent $user_agent -WebSession $p_sesion -ContentType "multipart/form-data; boundary=$($pb)" -Body $peticion_bytes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement