- 题目:web 78
- 题目:
- 解题思路:分析代码,发现没有过滤于是就先尝试一下flag.php,发现没有回显但是成功,于是说明给你文件包含成功,又因为是php文件,于是就用:file=php://filter/convert.base64-encode/resource=flag.php,base64加密方法获取:
得到一串base64加密的文本:解谜可得:
- 知识点:
php://filter/read=convert.base64-encode/resource=[文件名]
读取文件源码(针对php文件需要base64编码)
- 题目:
- 题目:web 79
- 题目:
- 解题思路:分析代码可以知道,这里过滤了php,文件包含中可以利用data:协议写入php文件,从而执行对应的php代码,过滤了php,那么就可以使用base64加密形式的密文,从而执行PHP代码:
可以得到目录:
进一步查看文件内容:
得到flag:
- 知识点:
- 题目:
php
data协议使用条件:
allow_url_fopen:on
allow_url_include :on
12
2. 作用:
自PHP>=5.2.0起,可以使用data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码。
3. 用法:
data://text/plain,
data://text/plain;base64,
注意:php代码后面的?>不用写,否则会报错
- 题目:web 80
- 题目:
- 解题思路:分析代码可以知道过滤了php data,但是这种可以通过大小写绕过,于是可以使用
- 题目:
php
php://input + [POST DATA] 执行php代码
3. file=Php://input,然后抓包,在写入命令,执行命令就可以看到结果:<?php system('ls');?>:可以看到目录:进一步查看文件内容:
4. 知识点:str_replace()由于只匹配文本,可以通过大小写绕过,php的input协议使用,这里也可以通过hackbar写入命令执行。
- 题目:web 81
- 题目:
- 解题思路:看到题目中过滤了php data :于是input,data不再受用,之后再看一下消息头:发现服务器为nginx,查看其日志文件,一般在/var/log/nginx/access.log这个目录下,查看一下发现可以访问:
于是就可以通过抓包,修改ua头,注入php代码,完成命令执行
- 题目:
php
当 Nginx 处理请求并记录日志时,注入的内容会被写入日志文件。攻击者可以利用这一点来:
伪造日志条目:通过注入特定内容,攻击者可以在日志中创建虚假的请求记录。
插入敏感信息:如果日志记录了敏感信息,攻击者可以通过注入来获取这些信息。
3. 抓包并修改UA头:得到目录:fl0g.php index.php
4. 进一步查看:得到flag
5. 知识点:nginx日志注入