Phpwind 注入以及利用之二:文件上传拿shell -电脑资料

上传漏洞现在很难会出现的,更别说强大的pw了,所以很多朋友是不是认为我这个标题唬人了?不过还确实是上传漏洞,不过呢,这个漏洞的利用需要两个条件,所以说其实很鸡肋,但之前还是蛮好用的,只要满足条件,屡试不爽的,

Phpwind 注入以及利用之二:文件上传拿shell

。好了,先说条件:

1.必须存在注入,可以注入出$db_siteid,因为前面那里发布的注入(以及其他某些地方的注入),可以轻松得到;

2.必须是IIS6,这个是致命的鸡肋点,漏洞利用的是IIS6的文件解析漏洞(其实不用想也知道,无论dz、pw或者其他cms不会有允许上传php之类后缀文件的)。

由于官方已经在我上报不久一起补丁了,所以我相信应该有人已经通过分析补丁知道漏洞在哪儿了,好了,先看代码(文件是job.php,也很可能在其他可上传的文件中):

...

} elseif ($action == 'uploadicon') {

if (empty($_GET['step'])) {

list($db_upload,$db_imglen,$db_imgwidth,$db_imgsize) = explode("\t",$db_upload);

InitGP(array('uid','verify'));//可以控制的两个参数

$swfhash = GetVerify($uid);

checkVerify('swfhash');//这里很有趣

require_once(R_P . 'lib/upload/faceupl

oad.class.php');

$face = new FaceUpload($uid);

PwUpload::upload($face);

$uploaddb = $face->getAttachs();

echo $db_bbsurl.'/'.$attachpath.'/'.$uploaddb['fileuploadurl'].'?'.$timestamp;exit;

} else {

...

先来看看代码中我标注的有趣的地方,看能否绕过checkVerify('swfhash')。找找checkVerify函数:

function checkVerify($hash = 'verifyhash') {

GetGP('verify') <> $GLOBALS[$hash] && Showmsg('illegal_request');//看参数是啥了

}

于是checkVerify('swfhash')其实就是检查$swfhash了,而$swfhash是通过GetVerify函数获得的,于是看看GetVerify函数:

function GetVerify($str,$app = null) {

empty($app) && $app = $GLOBALS['db_siteid'];//关键就是db_siteid了,而db_siteid可以通过注入获得

return substr(md5($str.$app.$GLOBALS['pwServer']['HTTP_USER_AGENT']),8,8);

}

于是好办了,先通过注入获得db_siteid,然后获取自己的'HTTP_USER_AGENT'(直接构造也行),可以轻松绕过前面的限制,接着就直接看上传类了,$uid可以控制就可以自定义上传文件名了:

<?php

!defined('P_W') && exit('Forbidden');

require_once(R_P . 'lib/upload.class.php');

class FaceUpload extends uploadBehavior. {

var $db;

var $uid;

var $attachs;

function FaceUpload($uid) {

global $db,$db_imgsize;

parent::uploadBehavior();

$this->uid = $uid;//这里没有int就悲剧了...

$this->db =& $db;

$this->ifftp = 0;

!$db_imgsize && $db_imgsize = 1000;

$this->ftype = array(

'gif'=> $db_imgsize,'jpg'=> $db_imgsize,

'jpeg' => $db_imgsize,'bmp'=> $db_imgsize,

'png'=> $db_imgsize

);

}

function allowType($key) {

return true;

}

function getFilePath($currUpload) {

$filename = $this->uid . '_tmp.' . $currUpload['ext'];

$savedir = 'upload/' . str_pad(substr($this->uid,-2),2,'0',STR_PAD_LEFT) . '/';

return array($filename, $savedir, '', '');

}

function update($uploaddb) {

$this->attachs = $uploaddb;

}

function getAttachs() {

return current($this->attachs);

[1][2][3]下一页

相关文章

项目投资协议书

甲方:_________ 乙方:_________身份证:__________________身份证:__________________以上双方共同投资人(以下简称“共同投资人&...
资料大全2016-04-03
项目投资协议书

美国出国留学费用

美国留学费用是比较高的,但是具体需要多少钱呢?下面是小编搜集给大家的美国出国留学费用相关资料,欢迎参考!学费对于高中而言,中国留学生赴美读高中是读私立高中,美国的学制为四年。美国私立高中分住读生和走读...
资料大全2016-08-04
美国出国留学费用

小学二年级数学教学计划

时间过得真快,总在不经意间流逝,我们迎来了新的学习生活,需要好好的对接下来的教学进行计划了。想必许多人都在为如何写好教学计划而烦恼吧,下面是小编帮大家整理的小学二年级数学教学计划,欢迎阅读,希望大家能...
资料大全2018-08-07
小学二年级数学教学计划

中秋放假通知范文怎么写

2015年中秋节放假时间安排:2015年中秋节是9月27日,9月27日放假,不补休。中秋节简介中秋节又称月夕、秋节、仲秋节、八月节、八月会、追月节、玩月节、拜月节、女儿节或团圆节,是流行于中国众多民族...
资料大全2016-06-08
中秋放假通知范文怎么写

数学教学计划

时光飞逝,时间在慢慢推演,我们的教学工作又将翻开新的一页,让我们一起来学习写教学计划吧。为了让您不再为做教学计划头疼,以下是小编帮大家整理的数学教学计划9篇,仅供参考,欢迎大家阅读。数学教学计划 篇1...
资料大全2012-05-07
数学教学计划

青黛丸的功效与作用 药用价值 用法用量

中药方剂可以说是有很多的种类,青黛丸就是其中的一种,那么青黛丸的功效与作用有哪些呢?下面就一起来看看吧。【处方】青黛15克(细研)干蝎5枚(微炒)白附子(炮裂)天竺黄(细研)胡黄连 芦荟(细研)牛黄(...
资料大全2014-06-02
青黛丸的功效与作用 药用价值 用法用量