兔源码网 - 专注DZ模版分享、DZ插件分享!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)皆为提供免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需充值兔币购买会员组方可下载),用户仅需手动前往【申请下载权限】申请用户组下载权限即可,如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

完美解决阿里云服务器出现的漏洞,在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑

[复制链接]
tuyuanma 发表于 2018-2-11 08:40:51 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


问题详情描述:
) o3 D/ \% k/ t6 }  H& ~在Discuz中,uc_key是UC客户端与服务端通信的通信密钥,discuz中的/api/uc.php存在代码写入漏洞,导致黑客可写入恶意代码获取uckey,最终进入网站后台,造成数据泄漏。您也可以登录官方网站更新到最新版本解决。, \) l. r- L6 I: D0 ]; |- C9 z
5 R, p/ V- J4 e! U1 R
解决方法:2 B! q* X! l. y8 S: W
打开/api/uc.php6 J8 o* s7 Q0 F, Z6 u
找到
  1.                 if(!API_UPDATEBADWORDS) {/ M8 M; K- f# j/ J) h2 ^8 u
  2.                         return API_RETURN_FORBIDDEN;$ v" Q* {" ^4 i) O# W" M
  3.                 }
    * E( U$ B: [/ F1 G4 |3 F
  4. 6 b, L, [+ H# Q' d+ C' M% b
  5.                 $data = array();
    . n2 N5 e8 }  o- ~+ y, b% ^, [
  6.                 if(is_array($post)) {
    ) U" ?+ G( q% W, Y
  7.                         foreach($post as $k => $v) {
    3 |# b( f1 X* l* j( _6 K, S' e
  8.                                 if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {
    + z0 n* E6 u2 g
  9.                                         $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';, v. w$ e; a6 z" ~
  10.                                 }* t' }% ^! \2 ?- D. g
  11.                                 $data['findpattern'][$k] = $v['findpattern'];2 F4 E# K  z3 A; g* R
  12.                                 $data['replace'][$k] = $v['replacement'];( ^. x1 |8 p% D- I' ?
  13.                         }
    - z8 c% ~' S3 h) J
  14.                 }
复制代码
修改为. ~+ z$ e3 w% ?( z0 @5 V$ v
  1. if(!API_UPDATEBADWORDS) {  " x* d9 }4 X; r* c. A+ b1 c
  2.     return API_RETURN_FORBIDDEN;  
    ; [- j+ ^4 `: Z2 O, l% Y3 i! f
  3. }  
    $ j% A0 \+ t7 i" K  Q  W3 C' |$ ~* g
  4. $data = array();  $ A5 \% c" J- L
  5. if(is_array($post)) {  
    ; U8 O' K# o$ ]) i. O
  6.     foreach($post as $k => $v) {         
    ' l4 B/ K' S1 n& H
  7.         //dz uc-key修改开始  
    . `3 A9 ?$ X, a& |. \5 G
  8.         if(substr($v['findpattern'], 0, 1) != '/' || substr($v['findpattern'], -3) != '/is') {  
    6 w1 d: l9 i9 H  B; f
  9.             $v['findpattern'] = '/' . preg_quote($v['findpattern'], '/') . '/is';  
    : }8 c0 ~! ]7 S# B+ `  P) \4 e
  10.         }  # T3 N/ }! v9 b
  11.         //end  修改结束            9 J4 ?  D6 x& p! ?2 A
  12.         $data['findpattern'][$k] = $v['findpattern'];  1 n4 d  a$ E& a) h; M4 U/ Y+ @0 s& I
  13.         $data['replace'][$k] = $v['replacement'];  
    ; X  ?. k# r" }4 l) V8 l
  14.     }    Y( q7 |" w! t' l  C7 w  R. }+ Q
  15. }  
复制代码
第二处修改
2 v& U- g0 |+ Z" |找到
  1.         function updateapps($get, $post) {
    + G% ~2 @1 y$ R/ f$ L) {* F( x, f
  2.                 global $_G;
    * n6 n* j, f/ C3 p1 d5 Y
  3. 9 ?6 m% j# d% t' r/ P
  4.                 if(!API_UPDATEAPPS) {  ~) q( u, t* H5 T# L) @
  5.                         return API_RETURN_FORBIDDEN;$ E' ^+ A$ E6 P* c/ |
  6.                 }4 q8 O3 Z" ]3 Y5 `& w  A
  7. & I/ X: b* L' R
  8.                 $UC_API = '';% p* c; m: Q4 o
  9.                 if($post['UC_API']) {7 j4 ~0 _! {. {/ ^
  10.                         $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);
    % g4 s- i1 L; ^7 x+ f& ?: B
  11.                         unset($post['UC_API']);
    8 Q7 k/ G7 m  X) |9 k
  12.                 }/ l% h& N  _9 D" Y. q
  13. $ k( X# Q& O, ?9 i: [& a- \
  14.                 $cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';
复制代码
修改为
; ^. W. S* [" p8 E
  1. function updateapps($get, $post) {  ( Y/ i6 {. y: }
  2.     global $_G;  
    , S; L, q8 E: O# d' V
  3.     if(!API_UPDATEAPPS) {  % x5 U% {0 |& N: G$ j2 ^
  4.         return API_RETURN_FORBIDDEN;  
    3 [2 u  T, d; T9 V
  5.     }   
    6 `0 S# a% A0 q  G) |4 s4 C1 E
  6.     //$UC_API = $post['UC_API'];  
    5 ?, b9 e' w% M
  7.     //dz uc-key修改开始  
    7 a& y2 h8 u+ @6 _: Y
  8.     $UC_API = '';  
    4 v/ @3 ?) H* z2 K
  9.     if($post['UC_API']) {  
    $ y& D, \5 v6 g1 i
  10.         $UC_API = str_replace(array('\'', '"', '\\', "\0", "\n", "\r"), '', $post['UC_API']);  
    # K' X) _1 _: P
  11.         unset($post['UC_API']);  
    3 i# b$ n( Q) a, S" J' L
  12.     }  
    # K8 K; A8 v* K4 y' a& V8 b
  13.     //end修改结束  6 O, o5 N" t9 b7 W  B. v
  14.     $cachefile = DISCUZ_ROOT.'./uc_client/data/cache/apps.php';  
复制代码
第三处修改
! F% t  j! Q( u/ X
找到
- F5 L6 R5 S% b. y% j
  1. $configfile = preg_replace
复制代码
修改为
  1. $configfile = preg_replace("/define\('UC_API',\s*'.*?'\);/i", "define('UC_API', '".addslashes($UC_API)."');", $configfile);   
复制代码

$ ]: l0 ?% H3 ?- u8 g; d

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 ( 赣ICP备17001544号 公网安备36112102000036号 )

兔源码 QQ交流群:493651246  GMT+8, 2019-6-18 03:46
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

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