首页 » SEO优化 » php文件存在技巧_从本地文件包含到代码实行总结

php文件存在技巧_从本地文件包含到代码实行总结

访客 2024-12-19 0

扫一扫用手机浏览

文章目录 [+]

1、/proc/self/environ文件

/proc/self/environ文件记录着系统的一些变量,在有权限读取该文件的内容时可以结合本地文件包含达到代码实行的目的。
在/proc/self/enviro文件中记录着HTTP_USER_AGENT、HTTP_ACCEPT等信息

php文件存在技巧_从本地文件包含到代码实行总结

当访问时利用burpsuite抓包修正HTTP_USER_AGENT为一句话,此时/proc/self/environ会相应的记录下来,此时可以实行命令得到shell,修正HTTP_ACCEPT等几个变量效果相同。

php文件存在技巧_从本地文件包含到代码实行总结
(图片来自网络侵删)

2、Apache和SSH等日志文件

Apache的默认日志保存在/var/log/apache2/目录下,当前用户有访问该文件的权限时才会成功getshell,个中有access.log和error.log,正常的访问记录都会在access.log中

直接在url地址栏中输入php一句话时<、?等符号会被url编码,因此须要burpsuite来发送防止浏览器默认进行url编码

此时shell写入access.log中,反弹shell效果比较明显。

利用一句话作为用户名上岸ssh,上岸日志下会记录上岸情形

类似的还有ftp上岸日志情形。

3、电子邮件

文件包含电子邮件的日志和以上几种办法getshell相差无几,每个用户在/var/mail目录下以用户名存放着各自的日志记录,这里利用telnet的办法访问靶机,一句话写在/var/mail文件夹下的文件中

4、phpinfo+LFI(php5)

环境须要知足的条件为存在本地文件包含并且有phpinfo文件的存在,phpinfo会打印出上传缓存文件的路径,通过缓存的文件达到getshell的目的,每次缓存的文件名是不同的,以是须要通过phpinfo来获取

缓存文件被phpinfo页面全部加载之后就会被删除,韶光很短暂,phpinfo也会打印出包括要求头等数据,php默认的输出缓冲区大小为4096,可以理解为每次打印4096个字节,直到逐次4096个字节将phpinfo页面加载完毕,我们可以将脏数据写在要求头中,使得打印出缓存文件名时页面还没有加载完毕,这时就可以利用条件竞争来快速的访问到文件在tmp目录下天生shell,利用socket发送http要求可以完成攻击。

题目环境可从github获取https://github.com/vulhub/vulhub/tree/master/php/inclusion

5、LFI+php7崩溃

如果目标不存在phpinfo,也无法获取到缓存的文件名,这里如果能获取到文件名可以利用:

http://ip/index.php?file=php://filter/string.strip_tags=/etc/passwd这样的办法,使php实行过程中涌现Segment Fault,这样如果在此同时上传文件,那么临时文件就会被保存在/tmp目录,文件名是随机的6位大小写字符和数字的组合,不会被删除:

index.php

dir.php

利用dir.php可以将tmp目录下的缓存文件名打印出来,从而包含文件达到获取shell的目的。

来源网络,侵权联系删除

私信我或关注微旗子暗记:狮范儿,回答:学习,获取免费学习资源包。

标签:

相关文章