ctf-party 1.3.5 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/ctf-party +94 -0
- data/lib/ctf_party/version.rb +1 -1
- metadata +23 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10a305673b24e2d87a3bfa4323788418ebae0df79afca8214e6b61144c521aa9
|
4
|
+
data.tar.gz: 26bd71e348d16938441a50f0e31cd9d27140b30dfa8eb47042166934a9334978
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff8243a49da5b97cbe1978a9c2243541ec5ede71ecaabdd9520fc38b59705506e98d3c3e9b5c1dc75ccfcbb41bc505c66424401c77873d5d08b762766f877ae8
|
7
|
+
data.tar.gz: d56fa0d1eba3673f3799a797582a809fddc86ea1a0b5e952db00aa7ac699be6760d0c4f275d903ef6c30a9d7659f29904c23a086e4c120fe4141e0133d4de10f
|
data/bin/ctf-party
ADDED
@@ -0,0 +1,94 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
# Ruby internal
|
5
|
+
require 'pp'
|
6
|
+
# Project internal
|
7
|
+
require 'ctf_party'
|
8
|
+
require 'ctf_party/version'
|
9
|
+
# External
|
10
|
+
require 'docopt'
|
11
|
+
|
12
|
+
cmd_whitelist = {
|
13
|
+
alternatecase: 'Change one characte on two upcase and the other downcase',
|
14
|
+
bin2hex: 'Encode an binary string to a hexadecimal string',
|
15
|
+
bin2str: 'Alias for from_bin',
|
16
|
+
dec2hex: 'Encode an decimal string to a hexadecimal string',
|
17
|
+
dec2str: 'Alias for from_dec',
|
18
|
+
from_b64: 'Decode the string from base64',
|
19
|
+
from_bin: 'Decode a binary string',
|
20
|
+
from_dec: 'Decode a decimal string (decimal to hexadecimal then hexadecimal to string)',
|
21
|
+
from_hex: 'Decode a hexadecimal string',
|
22
|
+
from_hexip: 'Decode a hexadecimal IP string into a dotted decimal one',
|
23
|
+
hex2bin: 'Encode an hexadecimal string to a binary string',
|
24
|
+
hex2dec: 'Encode an hexadecimal string to a decimal string',
|
25
|
+
hex2str: 'Alias for from_hex',
|
26
|
+
htmlescape: 'HTML escape the string',
|
27
|
+
htmlunescape: 'HTML unescape the string',
|
28
|
+
leet: 'Transform into leet speak (l337 5p34k)',
|
29
|
+
md5: 'Calculate the md5 hash of the string',
|
30
|
+
randomcase: 'Change the case of characters randomly',
|
31
|
+
rmd160: 'Calculate the RIPEMD-160 hash of the string',
|
32
|
+
rot13: 'Encrypt / Decrypt the string with Caesar cipher with a shift of 13',
|
33
|
+
sha1: 'Calculate the sha1 hash of the string',
|
34
|
+
sha2: 'Calculate the sha2 hash of the string',
|
35
|
+
sha2_256: 'Alias for sha2 with bitlen of 256',
|
36
|
+
sha2_384: 'Alias for sha2 with bitlen of 384',
|
37
|
+
sha2_512: 'Alias for sha2 with bitlen of 512',
|
38
|
+
str2bin: 'Alias for to_bin',
|
39
|
+
str2dec: 'Alias for to_dec',
|
40
|
+
str2hex: 'Alias for to_hex',
|
41
|
+
to_b64: 'Encode the string into base64',
|
42
|
+
to_bin: 'Encode a string into binary',
|
43
|
+
to_dec: 'Encode a string into decimal (string to hexadecimal then hexadecimal to decimal)',
|
44
|
+
to_hex: 'Encode a string into hexadecimal',
|
45
|
+
to_hexip: 'Encode a dotted decimal IP into a hexadecimal one',
|
46
|
+
urldecode: 'URL-decode the string',
|
47
|
+
urlencode: 'URL-encode the string'
|
48
|
+
}
|
49
|
+
|
50
|
+
doc = <<~DOCOPT
|
51
|
+
ctf-party by noraj
|
52
|
+
|
53
|
+
Usage:
|
54
|
+
ctf-party <string> <cmd>... [--debug]
|
55
|
+
ctf-party --list-commands [--debug]
|
56
|
+
ctf-party -h | --help
|
57
|
+
ctf-party --version
|
58
|
+
|
59
|
+
Options:
|
60
|
+
-l, --list-commands List available commands (see https://noraj.github.io/ctf-party/yard/String.html)
|
61
|
+
--debug Display arguments
|
62
|
+
-h, --help Show this screen
|
63
|
+
--version Show version
|
64
|
+
|
65
|
+
Examples:
|
66
|
+
ctf-party 'security' to_hex
|
67
|
+
ctf-party 'NzQ2Zjc0NmY=' from_b64 hex2str str2bin
|
68
|
+
DOCOPT
|
69
|
+
|
70
|
+
begin
|
71
|
+
args = Docopt.docopt(doc, version: Version::VERSION)
|
72
|
+
# use case 1, using the tool
|
73
|
+
pp args if args['--debug']
|
74
|
+
if args['<string>']
|
75
|
+
wrong_cmd = args['<cmd>'] - cmd_whitelist.keys.map(&:to_s)
|
76
|
+
if wrong_cmd.empty?
|
77
|
+
output = args['<string>']
|
78
|
+
args['<cmd>'].each do |cmd|
|
79
|
+
output = output.public_send(cmd)
|
80
|
+
end
|
81
|
+
puts output
|
82
|
+
else
|
83
|
+
abort "Those commands don't exist: #{wrong_cmd}"
|
84
|
+
end
|
85
|
+
elsif args['--list-commands']
|
86
|
+
cmd_whitelist.each do |k, v|
|
87
|
+
puts "#{k.to_s.ljust(15)}#{v}"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
# use case 2, help: already handled by docopt
|
91
|
+
# use case 3, version: already handled by docopt
|
92
|
+
rescue Docopt::Exit => e
|
93
|
+
puts e.message
|
94
|
+
end
|
data/lib/ctf_party/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ctf-party
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre ZANNI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-04-
|
11
|
+
date: 2021-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: docopt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.6'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,16 +150,18 @@ dependencies:
|
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
152
|
version: '0.9'
|
139
|
-
description: A library to enhance and speed up script/
|
140
|
-
(or security researchers, bug bountyhunters, pentesters but mostly focused
|
141
|
-
bypatching the String class to add a short syntax of
|
153
|
+
description: A CLI tool & library to enhance and speed up script/exploitwriting for
|
154
|
+
CTF players (or security researchers, bug bountyhunters, pentesters but mostly focused
|
155
|
+
on CTF) bypatching the String class to add a short syntax of usualcode patterns.
|
142
156
|
email: alexandre.zanni@engineer.com
|
143
157
|
executables:
|
158
|
+
- ctf-party
|
144
159
|
- ctf_party_console
|
145
160
|
extensions: []
|
146
161
|
extra_rdoc_files: []
|
147
162
|
files:
|
148
163
|
- LICENSE.txt
|
164
|
+
- bin/ctf-party
|
149
165
|
- bin/ctf_party_console
|
150
166
|
- lib/ctf_party.rb
|
151
167
|
- lib/ctf_party/base64.rb
|
@@ -187,5 +203,6 @@ requirements: []
|
|
187
203
|
rubygems_version: 3.1.4
|
188
204
|
signing_key:
|
189
205
|
specification_version: 4
|
190
|
-
summary: A library to enhance and speed up script/
|
206
|
+
summary: A CLI tool & library to enhance and speed up script/exploitwriting for CTF
|
207
|
+
players
|
191
208
|
test_files: []
|