Initial commit

This commit is contained in:
Dionysus 2019-06-28 01:28:33 -04:00
commit 31ee5d3a52
No known key found for this signature in database
GPG Key ID: 05114B46832BDBDB
4 changed files with 386 additions and 0 deletions

15
LICENSE Normal file
View File

@ -0,0 +1,15 @@
ISC License
Copyright (c) 2019, acidvegas <acid.vegas@acid.vegas>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

11
README.md Normal file
View File

@ -0,0 +1,11 @@
###### Requirements
* [Python](https://www.python.org/downloads/) *(**Note:** This script was developed to be used with the latest version of Python.)*
###### API Documentation:
* [Pastebin API](https://pastebin.com/api)
###### Mirrors
- [acid.vegas](https://acid.vegas/pastebin) *(main)*
- [SuperNETs](https://git.supernets.org/acidvegas/pastebin)
- [GitHub](https://github.com/acidvegas/pastebin)
- [GitLab](https://gitlab.com/acidvegas/pastebin)

32
pastebin/example.py Normal file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env python
# PasteBin API Class - Developed by acidvegas in Python (https://acid.vegas/pastebin)
import getpass
import pastebin
# API Settings
api_dev_key = 'CHANGEME'
api_user_key = None
# Define API
if api_user_key:
api = pastebin.PasteBin(api_dev_key, api_user_key)
else:
api = pastebin.PasteBin(api_dev_key)
username = input('[?] - Username: ')
password = getpass.getpass('[?] - Password: ')
api_user_key = api.create_user_key(username, password)
if 'Bad API request' not in api_user_key:
print('[+] - You API user key is: ' + ap_user_key)
api = pastebin.PasteBin(api_dev_key, api_user_key)
else:
raise SystemExit('[!] - Failed to create API user key! ({0})'.format(api_user_key.split(', ')[1]))
# Create a Paste
data = open(__file__).read()
result = api.paste(data, guest=True, name='Example Script', format='Python', private='1', expire='10M')
if 'Bad API request' not in result:
print('[+] - PasteBin URL: ' + result)
else:
raise SystemExit('[!] - Failed to create paste! ({0})'.format(api_user_key.split(', ')[1]))

328
pastebin/pastebin.py Normal file
View File

@ -0,0 +1,328 @@
#!/usr/bin/env python
# PasteBin API Class - Developed by acidvegas in Python (https://acid.vegas/pastebin)
'''
API Documentation:
https://pastebin.com/api
'''
import urllib.parse
import urllib.request
# Values
format_values = {
'4cs' : '4CS',
'6502acme' : '6502 ACME Cross Assembler',
'6502kickass' : '6502 Kick Assembler',
'6502tasm' : '6502 TASM/64TASS',
'abap' : 'ABAP',
'actionscript' : 'ActionScript',
'actionscript3' : 'ActionScript 3',
'ada' : 'Ada',
'aimms' : 'AIMMS',
'algol68' : 'ALGOL 68',
'apache' : 'Apache Log',
'applescript' : 'AppleScript',
'apt_sources' : 'APT Sources',
'arm' : 'ARM',
'asm' : 'ASM (NASM)',
'asp' : 'ASP',
'asymptote' : 'Asymptote',
'autoconf' : 'autoconf',
'autohotkey' : 'Autohotkey',
'autoit' : 'AutoIt',
'avisynth' : 'Avisynth',
'awk' : 'Awk',
'bascomavr' : 'BASCOM AVR',
'bash' : 'Bash',
'basic4gl' : 'Basic4GL',
'dos' : 'Batch',
'bibtex' : 'BibTeX',
'blitzbasic' : 'Blitz Basic',
'b3d' : 'Blitz3D',
'bmx' : 'BlitzMax',
'bnf' : 'BNF',
'boo' : 'BOO',
'bf' : 'BrainFuck',
'c' : 'C',
'c_winapi' : 'C (WinAPI)',
'c_mac' : 'C for Macs',
'cil' : 'C Intermediate Language',
'csharp' : 'C#',
'cpp' : 'C++',
'cpp-winapi' : 'C++ (WinAPI)',
'cpp-qt' : 'C++ (with Qt extensions)',
'c_loadrunner' : 'C: Loadrunner',
'caddcl' : 'CAD DCL',
'cadlisp' : 'CAD Lisp',
'ceylon' : 'Ceylon',
'cfdg' : 'CFDG',
'chaiscript' : 'ChaiScript',
'chapel' : 'Chapel',
'clojure' : 'Clojure',
'klonec' : 'Clone C',
'klonecpp' : 'Clone C++',
'cmake' : 'CMake',
'cobol' : 'COBOL',
'coffeescript' : 'CoffeeScript',
'cfm' : 'ColdFusion',
'css' : 'CSS',
'cuesheet' : 'Cuesheet',
'd' : 'D',
'dart' : 'Dart',
'dcl' : 'DCL',
'dcpu16' : 'DCPU-16',
'dcs' : 'DCS',
'delphi' : 'Delphi',
'oxygene' : 'Delphi Prism (Oxygene)',
'diff' : 'Diff',
'div' : 'DIV',
'dot' : 'DOT',
'e' : 'E',
'ezt' : 'Easytrieve',
'ecmascript' : 'ECMAScript',
'eiffel' : 'Eiffel',
'email' : 'Email',
'epc' : 'EPC',
'erlang' : 'Erlang',
'euphoria' : 'Euphoria',
'fsharp' : 'F#',
'falcon' : 'Falcon',
'filemaker' : 'Filemaker',
'fo' : 'FO Language',
'f1' : 'Formula One',
'fortran' : 'Fortran',
'freebasic' : 'FreeBasic',
'freeswitch' : 'FreeSWITCH',
'gambas' : 'GAMBAS',
'gml' : 'Game Maker',
'gdb' : 'GDB',
'genero' : 'Genero',
'genie' : 'Genie',
'gettext' : 'GetText',
'go' : 'Go',
'groovy' : 'Groovy',
'gwbasic' : 'GwBasic',
'haskell' : 'Haskell',
'haxe' : 'Haxe',
'hicest' : 'HicEst',
'hq9plus' : 'HQ9 Plus',
'html4strict' : 'HTML',
'html5' : 'HTML 5',
'icon' : 'Icon',
'idl' : 'IDL',
'ini' : 'INI file',
'inno' : 'Inno Script',
'intercal' : 'INTERCAL',
'io' : 'IO',
'ispfpanel' : 'ISPF Panel Definition',
'j' : 'J',
'java' : 'Java',
'java5' : 'Java 5',
'javascript' : 'JavaScript',
'jcl' : 'JCL',
'jquery' : 'jQuery',
'json' : 'JSON',
'julia' : 'Julia',
'kixtart' : 'KiXtart',
'kotlin' : 'Kotlin',
'latex' : 'Latex',
'ldif' : 'LDIF',
'lb' : 'Liberty BASIC',
'lsl2' : 'Linden Scripting',
'lisp' : 'Lisp',
'llvm' : 'LLVM',
'locobasic' : 'Loco Basic',
'logtalk' : 'Logtalk',
'lolcode' : 'LOL Code',
'lotusformulas' : 'Lotus Formulas',
'lotusscript' : 'Lotus Script',
'lscript' : 'LScript',
'lua' : 'Lua',
'm68k' : 'M68000 Assembler',
'magiksf' : 'MagikSF',
'make' : 'Make',
'mapbasic' : 'MapBasic',
'markdown' : 'Markdown',
'matlab' : 'MatLab',
'mirc' : 'mIRC',
'mmix' : 'MIX Assembler',
'modula2' : 'Modula 2',
'modula3' : 'Modula 3',
'68000devpac' : 'Motorola 68000 HiSoft Dev',
'mpasm' : 'MPASM',
'mxml' : 'MXML',
'mysql' : 'MySQL',
'nagios' : 'Nagios',
'netrexx' : 'NetRexx',
'newlisp' : 'newLISP',
'nginx' : 'Nginx',
'nimrod' : 'Nimrod',
'text' : 'None',
'nsis' : 'NullSoft Installer',
'oberon2' : 'Oberon 2',
'objeck' : 'Objeck Programming Langua',
'objc' : 'Objective C',
'ocaml-brief' : 'OCalm Brief',
'ocaml' : 'OCaml',
'octave' : 'Octave',
'oorexx' : 'Open Object Rexx',
'pf' : 'OpenBSD PACKET FILTER',
'glsl' : 'OpenGL Shading',
'oobas' : 'Openoffice BASIC',
'oracle11' : 'Oracle 11',
'oracle8' : 'Oracle 8',
'oz' : 'Oz',
'parasail' : 'ParaSail',
'parigp' : 'PARI/GP',
'pascal' : 'Pascal',
'pawn' : 'Pawn',
'pcre' : 'PCRE',
'per' : 'Per',
'perl' : 'Perl',
'perl6' : 'Perl 6',
'php' : 'PHP',
'php-brief' : 'PHP Brief',
'pic16' : 'Pic 16',
'pike' : 'Pike',
'pixelbender' : 'Pixel Bender',
'pli' : 'PL/I',
'plsql' : 'PL/SQL',
'postgresql' : 'PostgreSQL',
'postscript' : 'PostScript',
'povray' : 'POV-Ray',
'powershell' : 'Power Shell',
'powerbuilder' : 'PowerBuilder',
'proftpd' : 'ProFTPd',
'progress' : 'Progress',
'prolog' : 'Prolog',
'properties' : 'Properties',
'providex' : 'ProvideX',
'puppet' : 'Puppet',
'purebasic' : 'PureBasic',
'pycon' : 'PyCon',
'python' : 'Python',
'pys60' : 'Python for S60',
'q' : 'q/kdb+',
'qbasic' : 'QBasic',
'qml' : 'QML',
'rsplus' : 'R',
'racket' : 'Racket',
'rails' : 'Rails',
'rbs' : 'RBScript',
'rebol' : 'REBOL',
'reg' : 'REG',
'rexx' : 'Rexx',
'robots' : 'Robots',
'rpmspec' : 'RPM Spec',
'ruby' : 'Ruby',
'gnuplot' : 'Ruby Gnuplot',
'rust' : 'Rust',
'sas' : 'SAS',
'scala' : 'Scala',
'scheme' : 'Scheme',
'scilab' : 'Scilab',
'scl' : 'SCL',
'sdlbasic' : 'SdlBasic',
'smalltalk' : 'Smalltalk',
'smarty' : 'Smarty',
'spark' : 'SPARK',
'sparql' : 'SPARQL',
'sqf' : 'SQF',
'sql' : 'SQL',
'standardml' : 'StandardML',
'stonescript' : 'StoneScript',
'sclang' : 'SuperCollider',
'swift' : 'Swift',
'systemverilog' : 'SystemVerilog',
'tsql' : 'T-SQL',
'tcl' : 'TCL',
'teraterm' : 'Tera Term',
'thinbasic' : 'thinBasic',
'typoscript' : 'TypoScript',
'unicon' : 'Unicon',
'uscript' : 'UnrealScript',
'upc' : 'UPC',
'urbi' : 'Urbi',
'vala' : 'Vala',
'vbnet' : 'VB.NET',
'vbscript' : 'VBScript',
'vedit' : 'Vedit',
'verilog' : 'VeriLog',
'vhdl' : 'VHDL',
'vim' : 'VIM',
'visualprolog' : 'Visual Pro Log',
'vb' : 'VisualBasic',
'visualfoxpro' : 'VisualFoxPro',
'whitespace' : 'WhiteSpace',
'whois' : 'WHOIS',
'winbatch' : 'Winbatch',
'xbasic' : 'XBasic',
'xml' : 'XML',
'xorg_conf' : 'Xorg Config',
'xpp' : 'XPP',
'yaml' : 'YAML',
'z80' : 'Z80 Assembler',
'zxbasic' : 'ZXBasic'
}
expire_values = {
'N' : 'Never',
'10M' : '10 Minutes',
'1H' : '1 Hour',
'1D' : '1 Day',
'1W' : '1 Week',
'2W' : '2 Weeks',
'1M' : '1 Month'
}
private_values = {
'0' : 'Public',
'1' : 'Unlisted',
'2' : 'Private'
}
class PasteBin:
def __init__(self, api_dev_key, api_user_key=None, timeout=10):
self.api_dev_key = api_dev_key
self.api_user_key = api_user_key
self.timeout = timeout
def api_call(self, method, params):
response = urllib.request.urlopen('https://pastebin.com/api/' + method, urllib.parse.urlencode(params).encode('utf-8'), timeout=self.timeout)
return response.read().decode()
def create_user_key(self, username, password):
params = {'api_dev_key':self.api_dev_key, 'api_user_name':username, 'api_user_password':password}
return api_call('api_login.php', params)
def paste(self, data, guest=False, name=None, format=None, private=None, expire=None):
params = {'api_dev_key':self.api_dev_key, 'api_option':'paste', 'api_paste_code':data}
if not guest : params['api_user_key'] = self.api_user_key
if name : params['api_paste_name'] = name
if format : params['api_paste_format'] = format
if private : params['api_paste_private'] = private
if expire : params['api_paste_expire_date'] = expire
return self.api_call('api_post.php', params)
def list_pastes(self, results_limit=None):
params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'list'}
if results_limit: # Default 50, Minimum 1, Maximum 1000
params['api_results_limit'] = results_limit
return self.api_call('api_post.php', params)
def trending_pastes(self):
params = {'api_dev_key':self.api_dev_key, 'api_option':'trends'}
return self.api_call('api_post.php', params)
def delete_paste(self, paste_key):
params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'delete'}
return self.api_call('api_post.php', params)
def user_info(self):
params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_option':'userdetails'}
return self.api_call('api_post.php', params)
def raw_pastes(self, paste_key):
params = {'api_dev_key':self.api_dev_key, 'api_user_key':self.api_user_key, 'api_paste_key':paste_key, 'api_option':'show_paste'}
return self.api_call('api_raw.php', params)