山穷水尽的突破

文章作者:剑心 x-safe
信息来源:已发表于《黑客x档案》

以前的黑x中有对Php的注射的很多介绍,我等菜鸟也很是心痒,于是趁着有点时间就想练习练习在黑x里学的一些东西。
目标当时是选很经典的Php下载系统夜猫了,因为我没有Php和Mysql的测试环境,只有选这个结构比较熟悉的系统了,呵呵^_^。在google里搜索 /down/show.php?id=,有几个这样的系统,可是测试了很多,却少有可以union出预期的结果的,都是union到50多个字段都不出结果,应该是Mysql不支持union查询的结果。又不愿意去像access一样猜测管理员密码,理由很简单,有了强大的load_file函数为什么还有做这些无聊的事情呢?有了密码不一定知道后台,有了后台不一定有上传,有……郁闷,总之就是想找到一个支持union和load_file的系统好好看看,一睹传说中的php注入直接得到系统权限的强大威力。
呵呵,工夫不负有心人,还真让我找到了一个。直接在url的id后加'如图1。哈哈,知道了是windows主机,还有绝对路径,呵呵!再判断1=1与1=2返回的页面基本知道漏洞存在。可是不知道支不支持union啊,马上在后面依次递增提交and 1=2 union select到20的时候返回正常页面如图2。哈哈!高兴Ing!根据显示的字段显示,9那个地方是软件介绍一定是字符的了,可以用load_file ()替换了。由于已经知道这个下载系统的敏感文件globl.asp,config.inc.php,就分别读出来了。哈哈居然得到root的密码啊,如图3,顺利多了!还有默认的后台,可是表好象被改过了,不是默认的字段与表名了。可是我们有load_file()啊,读取那个 /admin/user.php(就是得到的后台登陆),仔细观察几个读取数据的地方,果然有了表名和字段!马上union查询出用户密码登陆,如图4。后台有点简陋,根本没有上传的地方。可是没有关系,我们有root数据库密码啊!我有Root我怕谁?
初步成功,整理思路先(好象很简单啊,就是以前高手所做的简单重复嘛!但是……当然没这么简单了,不然也不会有这篇文章了)。有了Root等数据库密码,可以试试远程连接mysql,导出个 webshell就不错了。也可以在浏览器提交,但是这里有个Php的设置问题,如果那个magic_qutoes_gpc=on为打开的话,浏览器提交给服务器的变量都会被处理的,备份webshell基本就不可能了(除非你浏览器里提交的路径不包含被过滤的字符,但好象是不可能的)。如果开了对管理员极为方便(当然也对我们)的Phpmyadmin,那也可以很简单的备份得到webshell!。
废话不说了,这么久还没有进行主机探测呢,现在该看看了。打开x-scan选择只扫开放服务,因为这些已经够了,不可能给你一些n年前的溢出吧,呵呵^_^。等了一会看结果,晕!只开了80,21端口。理想中的3306没有扫到,侥幸地telnet他的3306端口,(这台主机好象有措施防御扫描。)结果还是没有!郁闷!远程登陆不可能了!那就看看 Php.ini的设置吧,猜测了几次Php.ini的位置,最后发现是c:\winnt\php.ini,转换下用load_file()读出来,果然是 magic_qutoes_gpc=on如图5。那只有看看有没有Phpmyadmin了,于是找到他的ip,在后面加上Phpmyadmin/,这是 Phpmyadmin的默认目录,但是,最后一丝希望也被毁灭了!果然不存在,返回404!
基本上的经典招式都用完了,我也晕了。我们注入只是得到了敏感的密码信息,一些敏感文件信息,主机已经屏蔽了3306端口,也不存在Phpmyadmin,没有办法数据库备份得到webshell了!菜鸟的入侵也已经山穷水尽。郁闷Ing!
中间就这样停了一段时间,甚至忘记了这次入侵。但是最近把以前的黑x拿出来温习,忽然看到紫幻大哥提到的关于serveru的远程管理缺陷。只要 webshell读取ServUAdmin.ini加密密码就可以本地替换拿到serveru的远程管理权限。注意!是只要读到的权限就可以啊!想到什么没有,希望注入漏洞还在,哈哈,不用多说了,马上将C:\program files\Serv-U\ServUAdmin.ini转换成 67,58,92,112,114,111,103,114,97,109,32,102,105,108,101,115,92,83,101,114,118,45,85,92,83,101,114,118,85,65,100,109,105,110,46,105,110,105 放在load_file(char())函数里提交。可惜我们的运气不好啊,没有那个密码,不过注意到没有,我们本质上已经拿到了只读的系统权限的 webshell啊!(嘿嘿,有点奇怪吧!)因为是mysql函数所以只有读取的权限,他读取时用的mysql服务的权限,当然是系统权限了!毫不犹豫,马上找其他的敏感信息存在的文件,读取C:\program files\Serv-U\ServUDaemon.ini得到了好多东西,如图6!有用户的敏感信息啊!得到了所有的用户名,我们可不可以根据已经得到的数据库的密码信息和后台密码等信息找个字典挂上去猜那个对网站目录有权限的www帐户的密码啊,猜到了不就可以上传php木马了。但是我没有,人家有防范的,我猜了一次就被封IP了^_^。不过这里有已经加密的密码,正好最近Hak_Ban给我了一个暴力server-u工具,只能猜数字密码,很快的哦 ~马上弄到肉鸡上跑密码!(尽管偶不喜欢暴力,但是运气好的话也很方便的,为什么不试试呢?)
暴力的同时我也没有闲着,马上用我们得到的另类只读webshell尽情的刺探系统!首先提交
view-source:http://www.asianheros.com/down/show.php?id=105%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10,11,load_file(char(100,58,92,119,101,98,92,97,104,99,115,92,100,111,119,110,92,115,104,111,119,46,112,104,112)),13,14,15,16,17,18,19,20
也就是load_file()读取他的d:\web\ahcs\down\show.php,得到了一些好东西ftp://ahgame:[email protected]:33333/".$downurl;
ftp://ahlt:[email protected]:33333/".$downurl;
"update $down_table SET downnum=".$downnum." where id=$id";
等其他重要的信息。哈哈~~不过还有其他的啊,譬如那个flashftp的sites.dat的文件,不过目录很复杂,一般管理员也不会在网站上上传东西,有耐心的话可以找找,这些有安全缺陷的配置文件本身就是很大的突破口,这里提出来的意思就是不要局限于固定的思维,黑客不能缺乏想象力(不是我说的!)。呵呵,现在既然玩就要玩大啊!
现在看看站点本身,偶不玩单纯的Php注入了!前阵子旁注很流行,那我们也可以用load_file()这样玩玩啊!先进行一下信息的刺探!拿出域名查询工具(当时的黑站必备工具啊),得到了一些主机的信息,比较关心的是他有几个站点在上边!如图7,嘿嘿,域名很少啊!估计是自己的主机!有3个站,其他的站点里面也许有比较有意思的东东哦。随便找个,呵呵,又是Php的,马上找个有参数传递的页面进去,哈哈,又有个类似的下载系统,/show.php?id=305后加'暴出了路径,以为可以像前面一样union然后暴出内容呢,结果发现版本太低不支持union,一台主机怎么会两种结果?以前这时候会很郁闷,但是现在没关系了!我们有"只读webshell"呢,读出来他的配置文件发现数据库果然不在一个机器上!得到的敏感信息:
$dbhost = "61.241.x.31"; // 数据库主机名
$dbuser = "mxhah"; // 数据库用户名
$dbpasswd = "07448"; // 数据库密码
$dbname = "down"; // 数据库名
现在不想连上去,网站还有几个其他的模块呢!于是跑去读了一些文件的原代码,屡试不爽啊!已经没有敏感信息瞒得住我们的眼睛,整个主机上的文件因为这个注入点的存在而没有任何安全性可言了。如果是虚拟主机的话,不说大家也知道会怎么样了。
已经刺探出这么多的信息了,发现数据库密码等很有规律哦,有兴趣的可以社会工程学试下,serveru的密码暴力中,整个系统的缺陷也慢慢呈现,得到一个 shell什么的不是问题了!由于只是学习,入侵到这里也该结束了,因为是个大型站点,给管理员发了个邮件提示了一下走人了。
这次实践没有什么技术可言,若给你一点思路这文章就有存在的价值了。有大哥说过黑客不能缺乏想象力,有什么问题欢迎来x论坛讨论。(Su-Crack.exe暴力工具本文中有收录。)

相关日志

楼被抢了 2 层了... 抢座Rss 2.0或者 Trackback

  • xsafe

    哈哈!没想到,现在网上还有这篇文章,居然还在鬼仔这里!哈哈!

  • 鬼仔

    搜索下还能搜到不少,不过就是没图了,能否把图补齐?

发表评论