未加星标

PHP文件包含到远程代码执行【翻译】

字体大小 | |
[开发(php) 所属分类 开发(php) | 发布者 店小二04 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
一、原文部分翻译

web安全的都知道,黑客通常利用 /proc/self/environ 和 /var/log/apache2/error.log 从 LFI 漏洞getshell,但是极少数人知道利用临时文件名getshell这种方法。

它比其它方法技巧性更强,因为它只需要一个LFI漏洞。相反,其它可能需要访问 proc 或者 /var/log 或者需要一个可控的 $_SESSION 变量。此漏洞于2011年被研究人员发现,这篇文章是对这些技术的一个改进。

RFC-1867 中提到, 文件上传的时候临时文件默认会存储在服务器默认的一个临时目录中,如果最后文件没有被移动或者没有被重命名,该临时文件就会被删除 。

如果我们能够赢得竞争,利用 LFI 包含临时文件的话便可以getshell了。不幸的是,临时文件名是由6位混合大小写字母以及数字组成,所以我们不可能一次就猜到它的名字。

如果我们找到一种方法能够阻php删除临时文件?幸运的是,PHP就是PHP,当它无限递归包含一个文件的时候,就会导致 SIGSEGV 异常从而不能删除临时文件。

<?php # test.php include 'test.php'; ?>

$ gdb -q php Readingsymbolsfrom /usr/bin/php...(nodebuggingsymbolsfound)...done. (gdb) r -f test.php Startingprogram: /usr/bin/php -f test.php [Threaddebuggingusinglibthread_dbenabled] Usinghostlibthread_dblibrary "/lib/x86_64-linux-gnu/libthread_db.so.1". ProgramreceivedsignalSIGSEGV, Segmentationfault. 0x00005555557deb60 in ?? () (gdb) bt 24 #00x00005555557deb60 in ?? () #10x00005555557dfd31 in virtual_file_ex () #20x00005555557e120f in tsrm_realpath ()

本文开发(php)相关术语:php代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

主题: PHP服务器删除黑客变量
分页:12
转载请注明
本文标题:PHP文件包含到远程代码执行【翻译】
本站链接:http://www.codesec.net/view/480504.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(36)