记录知识点,扫盲。

参考wp

https://www.wlhhlc.top/posts/14827/

信息收集:

探针,PHP探针

php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。是一个查看服务器信息的工具。
比如查看服务器支持什么,不支持什么,空间速度等等状况!

tz.php

mdb文件泄露

mdb文件是早期asp+access构架的数据库文件

于是我们访问/db/db.mdb

爆破

没看

命令执行

有的过滤的是中文的符号,看清楚

eval($c)

思路,嵌套——?c=eval($_GET[1]);&1=system(“ls”);

分号过滤——用?>代替

括号过滤——用include 函数(require等不带括号的函数)?c=include%0a$_POST[1]?>

结合伪协议,读取文件

短标签 会echo出来 不会echo出来

读取文件函数

无参数rce 待学

print_r(scandir(‘.’)); 查看当前目录下的所有文件名
localeconv() 函数返回一包含本地数字及货币格式信息的数组。
current() 函数返回数组中的当前元素(单元),默认取第一个值,pos是current的别名
运算符

41、

或、

include($c)
题目拼接

system($c.” >/dev/null 2>&1”);

1:> 代表重定向到哪里,例如:echo “123” > /home/123.txt
2:/dev/null 代表空设备文件
3:2> 表示stderr标准错误
4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 “1>/dev/null”
因此,>/dev/null 2>&1 也可以写成“1> /dev/null 2> &1”

那么本文标题的语句执行过程为:
1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,也就是不显示任何信息。
2>&1 : 接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

绕过:用;号或者||等等一些命令分隔符进行命令分隔

?c=tac flag.php;

无字母数字

56、57

$()

顺序

71 payload后面加上exit();

72 75 77 118 后面都没

文件包含

日志包含81后都没看