Advertisement
Joelg4dea

Pastebin | editar PASTES con POWERSHELL (en pocas líneas)

Oct 21st, 2024 (edited)
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PowerShell 6.04 KB | Source Code | 0 0
  1. # LA COOKIE DE SESIÓN DE PASTEBIN!!!
  2. # ES SUPER NECESARIA Y OBLIGATORIA
  3. # SE PUEDE ENCONTRAREN EL NAVEGADOR CON EL ID: 'PASTEBIN-FRONTEND'
  4. $PASTEBIN_SESSION = ""
  5.  
  6. # PASTE
  7. $PASTEBIN_PASTE_ID = "Q3PWwwLk" # el ID del paste, ej: https://pastebin.com/Y3Vp5RQH TOMAR SOLO LA PARTE 'Y3Vp5RQH'
  8. $TEXTO_NUEVO = "EDITADO MEDIANTE POWERSHELL GUIA BY joelg4dea"
  9.  
  10.  
  11. # OPCIONES DE EDICIÓN (CAMPOS) (MODIFICAR A GUSTO)
  12. # campos de la petición para editar el PASTE
  13. $peticion_campos = @(
  14.     @{
  15.         'PostForm' = 'text' # texto del paste
  16.         'value' = $TEXTO_NUEVO # valor del texto, ej: 'MI MAMA ME MIMAAAA' (cambiar la variable {TEXTO_NUEVO})
  17.     }
  18.     <# CAMPOS ALTERNATIVOS QUE PUEDEN CAMBIARSE MEDIANTE LA PETICIÓN (DES-COMENTAR PARA HABILITARLOS):
  19.     @{
  20.         'PostForm' = 'category_id' # categoría del paste
  21.         'valor' = '0' # valor de la categoría. '4' = Cybersecurity
  22.     }
  23.     @{
  24.         'PostForm' = 'tag' # tags del paste
  25.         'valor' = '' # lista de tags (separados por , y sin espacios) ej: 'html,css,js,php'
  26.     }
  27.     @{
  28.         'PostForm' = 'expiration' # expiración de paste
  29.         'valor' = 'PREV' # 'PREV' = copiar la expiración del paste. 'N' = NUNCA , '1Y' = 1 año... (te encargo la tarea de investigar más XD)
  30.     }
  31.     @{
  32.         'PostForm' = 'format' # lenguaje del paste
  33.         'valor' = '1' # tambien conocido como 'Syntax Highlighting'. '1' = NINGUNO, '117' = PowerShell...
  34.     }
  35.     @{
  36.         'PostForm' = 'status' # privacidad del paste
  37.         'valor' = '1' # estados: '0' = publico, '1' = no listado, '2' = privado
  38.     }
  39.     @{
  40.         'PostForm' = 'folder_key' # carpeta del paste
  41.         'valor' = '' # no sé la key de tus carpetas, investigalo por tu cuenta...
  42.     }
  43.     @{
  44.         'PostForm' = 'folder_name' # nombre de la carpeta (este campo es inutil)
  45.         'valor' = '' # no sirve de nada, para guardar el paste en una carpeta solo es necesario {folder_key}.
  46.     }
  47.     @{
  48.         'PostForm' = 'is_password_enabled' # proteger el paste con contraseña?
  49.         'valor' = '0' # cambiarlo a '1' para establecer una contraseña y des-comentar 'PostForm' = 'password' (campo de abajo)
  50.     }
  51.     @{
  52.         'PostForm' = 'password' # contraseña del paste
  53.         'valor' = '' # establecer is_password_enabled en '1' (campo de arriba), y después ingresar el texto de la contraseña, ej: 'MICONTRASENIA'
  54.     }
  55.     @{
  56.         'PostForm' = 'is_burn' # eliminar despues de leerlo
  57.         'valor' = '0' # '0' = no borrar, '1' = borrar después de leer
  58.     }
  59.     @{
  60.         'PostForm' = 'name' # nombre del paste
  61.         'valor' = '' # es un texto sin más, ej: 'Pastebin | editar PASTES con POWERSHELL (en pocas líneas)'
  62.     }
  63.     #>
  64. )
  65.  
  66.  
  67.  
  68. # OTRAS COSAS
  69. $pb = '---------------------------117' # separador de campos de la petición. modificar a gusto... aunque no es necesario modificarlo.
  70. $nl = [char]10 # carácter de nueva línea v:
  71. #
  72. #
  73. #
  74. #
  75. #
  76. #
  77. #
  78. #
  79. #
  80. #
  81. #
  82. #
  83. #
  84. #
  85. #
  86. #
  87. #
  88. #
  89. #
  90. #
  91. #
  92. #
  93. #
  94. #
  95. #
  96. #
  97. #
  98. #
  99. #
  100. #
  101. #
  102. #
  103. #
  104. #
  105. #
  106. #
  107. #
  108. #
  109. #
  110. #
  111. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  112. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  113. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  114. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  115. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  116. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  117. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  118. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  119. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  120. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  121. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  122. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  123. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  124. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  125. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  126. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  127. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  128. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  129. #   NO MODIFICAAAAAAAAAAAARRRRRRRRRRRR
  130. #
  131. #
  132. #
  133. #
  134. #
  135. #
  136. #
  137. #
  138. # creación de la sesión
  139. $p_sesion = $NULL # vaciado de la sessssion (por si las moscas)
  140. $p_sesion = New-Object Microsoft.PowerShell.Commands.WebRequestSession
  141. # cookie de sesión de pastebin (tomarla desde el navegador y pegarla en {PASTEBIN_SESSION})
  142. # importante no compartir con nadie este dato jkasjdkaljwdkajwdlkawd
  143. $p_sesion.Cookies.Add((New-Object System.Net.Cookie("pastebin-frontend", $PASTEBIN_SESSION, "/", "pastebin.com")))
  144. $user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0"
  145.  
  146.  
  147.  
  148.  
  149. # llamada para editar el post (y actualizar {p_sesion})
  150. $WR = $NULL # vaciado de la wr (por si ya estaba llena) [si la petición tira una excepción $A NO ES VACIADA]
  151. $WR = Invoke-WebRequest -UseBasicParsing -Uri "https://pastebin.com/edit/$($PASTEBIN_PASTE_ID)" -WebSession $p_sesion -UserAgent $user_agent
  152.  
  153.  
  154. # obtención del csrf que genera pastebin para la petición de edición del PASTE
  155. [String]$csrf = ""
  156. [String]$csrf = ($WR.RawContent -split '\r?\n' | Select-String '^.*input.*?name="_csrf' -Raw) -replace '^.*value *= *"(.*?)".*$', '$1'
  157.  
  158.  
  159.  
  160.  
  161. # creación de la petición (en modo hashtable para mejor redacción :v)
  162. $peticion = @(
  163.     @{
  164.         'campo' = 'Content-Disposition: form-data; name="_csrf-frontend"' # campo de la petición (como los campos de arriba jaja)
  165.         'valor' = $csrf # csrf obtenido para que no nos rechace la petición
  166.     }
  167. )
  168. # agregado de los campos DE ARRIBA en la petición (posiblemente hayan sido modificados)
  169. $peticion_campos | ForEach-Object {
  170.     $peticion += @{
  171.         'campo' = 'Content-Disposition: form-data; name="PostForm['+ $_.PostForm + ']"'
  172.         'valor' = $_.value
  173.     }
  174. }
  175.  
  176. # conversión del hashtable a STRING (y algunos detalles que la petición necesita para funcionar...)
  177. [String]$peticion_string = "--$pb" + (($peticion | ForEach-Object { $nl + $_.campo + $nl + $nl + $_.valor + $nl }) -join "--$pb") + "--$pb--"
  178. [Byte[]]$peticion_bytes = ([System.Text.Encoding]::UTF8.GetBytes($peticion_string))
  179.  
  180.  
  181.  
  182.  
  183.  
  184. # envío de la petición de edición
  185. $WR = $NULL
  186. $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
  187.  
  188.  
  189.  
  190.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement