ps:文章所引用知识点链接,如有侵权,请联系删除
[极客大挑战 2019]EasySQL
题目类型:简单SQL注入
发现是登录页面,用万能登录方法测试,两种语句均能解出flag
[极客大挑战 2019]Havefun
题目类型:代码审计
查看页面源代码
if($cat=='dog')
有一个cat变量,通过get方式传参,如果cat=dog输出flag,使用构造payload:/?cat=dog
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上,它的主要作用是用于查看和连接文件。
[HCTF 2018]WarmUp
题目类型:PHP代码审计
打开之后,发现只有一个表情,直接F12检查
索引里,发现有source.php文件,打开文件
发现hint.php文件,再查看
../../../ffff...解不出flag,就往后继续尝试../../../../../ffff...
[ACTF2020 新生赛]Include
题目类型:文件包含、PHP封装协议
点击链接
出现了flag.php文件,猜测文件包含漏洞
重要的知识点
PHP封装协议:
php://filter/read=convert.base64-encode/resource=xxx.php
php://filter 是php中独有的一个协议,可以作为一个中间流来处理其他流,可以进行任意文件的读取;根据名字filter(过滤),很容易想到这个协议可以用来过滤一些东西; 使用不同的参数可以达到不同的目的和效果:
resource=<要过滤的数据流> 指定了你要筛选过滤的数据流。 必选
read=<读链的筛选列表>可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
write=<写链的筛选列表> 可以设定一个或多个过滤器名称,以管道符(|)分隔。 可选
<;两个链的筛选列表> 任何没有以 read= 或write=作前缀的筛选器列表会视情况应用于读或写链。
php://filter与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行。从而导致任意文件读取。
read=convert.base64-encode,用base64编码输出,不然会直接当做php代码执行,看不到源代码内容。
payload:?file=php://filter/read=convert.base64-encode/resource=flag.php
[ACTF2020 新生赛]Exec
题目类型:命令执行、代码审计
ls(英文全拼:list files):用于显示指定工作目录下的内容(列出目前工作目录所含之文件及子目录)
cat(英文全拼:concatenate):用于链接文件并打印到标准输出设备上。
127.0.0.1是一个特殊的IP地址,被称为本地环回地址(loopback address)。这个地址用于让网络软件和计算机的操作系统能够发送数据给自己,主要用于测试和进程间通信。当你在自己的计算机上发送数据到127.0.0.1时,数据不会离开你的电脑,而是直接返回;这就像数据绕了一圈又回到了出发点,因此称为“环回”。
在网络测试中,使用ping 127.0.0.1可以验证本机的TCP/IP协议栈是否正常
需要输入地址,输入127.0.0.1;ls,发现确实存在命令执行漏洞, 但在此目录下只存在index.php
查看上级目录127.0.0.1;ls/
查看flag:127.0.0.1;cat /flag;