---------------------------------------------------------- 作者:唐不狐(http://blog.wang1.cn) 稿于:07年8月 转载请保留以上信息.谢谢! ---------------------------------------------------------- 1.情况探查: 检测目的:拿到数据库 先看下目标的环境:Unix+php+mysql IP:*.*.*.79 粗看了下端口开放情况:80,443 ,8080(8080没有东西) 扫了下1-254的web开放情况,有两个sa点,直接NBSI3里面执行命令:ping *.*.*.79,返回:Request timed out;arp -a:不在列表内,放弃! 继续分析:大约把IP定在70-90之间。 ---------------------------------------------------------- 2.目标站的尝试: A.注射 有个board:../fluzboard.php?s=view&id=notice&no=1 可以注射。出錯信息一闪而过,管理员设置出錯就回首页。于是我抢先按停止,记录路径!(把网速放慢,嘻嘻,别让页面那么快跳转,有时候慢也有用处的!) 先看注射:支持union查询,猜到member表,很舒坦的暴到一套帐号。用load_file()暴代码的时候出现问题,几个关键页面老是一暴就弹出警告窗口(script的,想是代码里面的某些脚本捣乱),然后就返回首页。 还是老办法,抢在跳转前面按停止,查看源代码,mysql口令到手。(这里发现目标有两个库,还调用77的一个库) 通过暴代码,慢慢对整个程序有了了解,猜出的表也多了,管理员口令也拿到了。
后台有两个:进去后很郁闷,看着干瞪眼。啥能利用的东东都没有。
B.毁坏的上传: 再说说fluzboard留言本,这玩意我google了下,没直接找到源码,不过使用这玩意的站倒有一些,发现可以guest发言上传的,能直接弄到webshell(我这里拿了几个shell用来分析源码)。目标站做了手脚,把流言、回复等隐藏掉了,通过查看源文件可以找到链接,不过上传被破坏掉了,所以无法得手。
C.郁闷的包含: 不能导出shell注射点的利用已经很难有所作为了,我于是想到文件包含。手里有了fluzboard的源码可以分析,倒是发现fluzboard.php存在一处包含,我在其他fluzboard下测试也可以,目标上却提示不能包含远程文件。日,又没有可以上传的地方。 ----------------------------------------------------------- 3.邻家姐姐: 本站行不通,咱只能把视野放大些,80也是unix+php+mysql,绑了几个米,我轻易弄到webshell。在shell里扫了下77,79的端口,发现果然处于同一局域网内,端口21,22,443,80,3306,8080都出來了。 前面我知道79调用77的一个库,也就是说77是支持远程连接的,于是80上连接试试,成功!(第一个库到手) 77的web结构跟79是一样的,我有了数据库的操作权限,于是很快想到在库里建表插入一句话马,导出到web可写目录拿shell。于是一次一次试:Unix变态的权限配置让我郁闷到死,计划再告搁浅。(注射点下不能导出,但在库里直接操作是可以的) 我分析这段的管理可能是同一个,管理习惯上应该会相似。于是在80上分析目录结构。我发现很多web目录都会有一个log目录,而该目录是777属性,嘿嘿,于是我猜出了77上的可写目录,成功获得webshell。
但是目标79还是没办法突破! ----------------------------------------------------------- 4.破解: phpshell下可以完成mysql+php口令的破解,我在黔驴技穷的境地下想到了这个。 于是整理了下手上的信息,做了个passwd.txt传到shell目录,尝试破解。皇天不负苦心人啊,几次尝试后弄到一个ftp口令。 于是用Nstview反弹一个shell回我的跳板机,ftp上去传个shell。(第二个库到手) 至此成功拿下目标数据,完美收工! |