服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

中国海 发表于 2006-7-10 01:26:02

PHP入侵大型站点手记

<P><FONT size=2>&nbsp;<BR>一:事出有因<BR>前几天朋友让我帮他拿某个网站的整站代码,一直都没有时间所以没去看这个网站<BR>今天正好空闲,于是便有了这入侵。</FONT></P>
<P><FONT size=2>二:采点<BR>和抢银行一样,咱在入侵前都要踩点。既然是入侵网站那就上那个网站去看看吧,<BR>网站做的还不错,使用的是PHP框架,不知道有没有注入,再看网页的最下面版权处,<BR>晕~~~还是商业站点这下要小心了,在其合作商中还有_blank"&gt;新浪网易,怕怕。<BR>为了自身的安全还是上肉鸡比较安全,首先还是PING 一下吧返回结果如图1:<BR>从结果上看可以可以猜测这台主机配置为:linux+Apache+PHP,再用superscan 3.0扫<BR>扫看,结果如图2:,经过手工检测发现所开放的服务并没有漏洞,看来想入侵 这个网站就 <BR>要从WEB上入手了。 <BR>三:入侵过程<BR>习惯性的在一条新闻后添加"'"看是否存在sql注入,返回结果如图3,晕,连路径<BR>都暴出来了,从返回的结果上看它确实是LINUX系统,再提交:"and 1=1","and 1=1"<BR>结果分别为图4,图5,这下可以确定这个页面存在SQQL注入了,目前大部分的PHP网站都<BR>存在SQL注入,其中还包括不少有名的安全站点。<BR>然后再确定字的个数,提交"<A href="http://www.abcdef.com/news/**il.php?newsid=13435" target=_blank>http://www.abcdef.com/news/**il.php?newsid=13435</A> union <BR>select 1"返回图3的出错页面,继续提交"<A href="http://www.abcdef.com/news/**il.php?new" target=_blank>http://www.abcdef.com/news/**il.php?new</A><BR>sid=13435 union select 1,2",依次类推直到提交"<A href="http://www.abcdef.com/news" target=_blank>http://www.abcdef.com/news</A><BR>/**il.php?newsid=13435 union select 1,2,3,4,5,6"时返回图4所似页<BR>面为止,注意有时候会返回正常页面。这时基本可以确定当前表中存在6个字段,当然你<BR>也可以使用工具来猜解,据我所知目前有两个工具可以猜解,安全天使的CASI和darkness<BR>的二娃。<BR>根据返回的信息可以知道字段2和字段5的类型为字符串,我们可以继续提交"<A href="http://ww" target=_blank>http://ww</A><BR>w.abcdef.com/news/**il.php?newsid=13435 and 1=2 union select 1,database(),3,4,<BR>version(),6"来获取MYSQL服务器的一些信息,但我对这个不感兴趣,所以没有继续提交。<BR>接下来是猜解表名,"<A href="http://www.******.com/news/**il.php?newsid=13435" target=_blank>http://www.******.com/news/**il.php?newsid=13435</A> and 1=1 <BR>union select 1,2,3,4,5,6 from *"("*"为要猜解的表名)在手工猜了N次后决定放弃<BR>改用工具,能猜解表名的好象只有二娃。当我打开二娃后才发现存放表名的数据库文件,还需要<BR>自己添加表名,没办法只好暂时放弃。用load_file()试试爆网页代码,不知道为什么总是不行。 <BR>再看看其它地方看能不能找到别的突破口,如果不行再来猜表吧。<BR>还是到它的论坛上转转吧,发现采用用的是discuz,不知道是什么版本的,据我所知DISCUZ<BR>在目前算是最好的论坛了,基本上没有出过重大的漏洞(PS:我写这篇时是10月份),接下来的事 <BR>会让大家~~~ 亲爱的读者,请保护好你们的眼镜,因为接下来的事会让大家跌破眼镜。<BR>这时,我不经意间发现一个好东东(如图6),注意IE地址栏中中的URL:<A href="http://www.abcdef.com/" target=_blank>http://www.abcdef.com/</A><BR>****page.php?url=/add/abcd.html根据经验如果在****page.php没有限制目录那么有可能拿到其他<BR>网页的源代码,说不定连密码文件都可以拿到呢。马上试试,在地址栏中输入"<A href="http://www.abcdef.com/" target=_blank>http://www.abcdef.com/</A><BR>****page.php?url=/****page.php",执行成功返回结果如图7,不过只显示了一部分代码,没关系<BR>这是网页框架的问题,右击鼠标查看源码,找到图8之处,这就是****page.php的源代码,看能不能拿到<BR>密码文件,输入:<A href="http://www.abcdef.com/****page.php?url=/../../../../etc/passwd" target=_blank>http://www.abcdef.com/****page.php?url=/../../../../etc/passwd</A>,返回错误<BR>看来不能查看,然后继续输入<A href="http://www.abcdef.com/****page.php?url=/index.php" target=_blank>http://www.abcdef.com/****page.php?url=/index.php</A>查看index.php的<BR>代码,根据它成功的找到网站的配置文件(如图9),很多好东西都会放在这个文件中的。<BR>晕,连数据库密码都加了密,看来它的安全意思还不错啊,搞不懂怎么会存在这种漏洞,有些人为了<BR>方便会将所有的密码设置成一样的,这样就方便了CREACKER入侵,这个网站的网管会不会也是这样呢,<BR>为了证实这个再查看discuz的配置文件,发现里面的数据库的加密后密码也是这个,嘿嘿,这下又有好<BR>玩的了,如果后台的密码也是这个那我就赚大了,拿出暴力破解MDB的工具挂上专门制作的字典开始跑了,<BR>熟话说时间就是金钱,为了抓紧时间,我开始找后台登陆文件。后台登陆的文件夹路径在配置文件中明明<BR>白白的写着,根本不用我操心去猜(图10),在IE中输入<A href="http://www.abcdef.com/admin_data/" target=_blank>http://www.abcdef.com/admin_data/</A>出现图11页面提示请登陆后进入,<BR>点击确定后自动返回到登陆页面(图12),嘿嘿,连登陆文件都不要猜,不过我现在还不知道它的帐号和<BR>密码,看看破解的进程,还有一段时间,先来猜猜吧,在用户名中都输入abcdef,密码中输入****(这个<BR>我也不记得了,当时我是乱猜的),<BR>竟然成功登陆了如图13,看来今天的运气,这样的密码我都能猜到。后来我又重新登陆发现输入的用户名只要是<BR>abcdef,密码随便添(只要不是空格)都能成功登陆,为什么会是这样呢?我在IE中输入view-source:http://<BR>_data/login.php查看登陆文件的代码发现了这样一段代码" rel=nofollow&gt;www.abcdef.com/****page.php?url=/admin_data/login.php查看登陆文件的代码发现了这样一段代码:<BR>if ($_POST["adminuser"] &lt;&gt; "abcdef" and $_POST["adminpass"] &lt;&gt; "abcdef2004-999")<BR>{<BR>echo " ";<BR>exit;<BR>}<BR>else<BR>{<BR>$_SESSION["loginadmin"] = 1;<BR>echo " ";<BR>} <BR>很显然,作者在这里犯了一个常识性的错误。在IF的条件语句中,如果是$_POST["adminuser"] = "abcdef" and<BR>$_POST["adminpass"] = "abcdef2004-999"那就需要输入的用户名和密码都与adminuser和adminpass设置的字符<BR>串相符才能成功登陆,否则失败。本来作者的意图是判断它们都相等才能登陆成功,但他改变了验证的方式,<BR>改为:$_POST["adminuser"] &lt;&gt; "abcdef" and $_POST["adminpass"] &lt;&gt; "abcdef2004-999",所以根据逻辑关系<BR>只要输入adminuser和adminpass中有一个是正确的,那就可以成功登陆了,真没想到,这样的站竟然漏洞这么多。<BR>好了,进入了后台,看有没有上传文件的地方,找了几分钟终于找到一处上传邮件文本的地方(图14),试试看能不能上传<BR>PHP文件,在安全天使上下了个PHP木马,然后再上传,返回结果如图15,上传成功,到了这一步说明离成功不远了,<BR>再接再厉(自我鼓励)。这时又有一个问题----上传后木马的URL是什么?试了常见的路径都是错误的,看来还是要靠网<BR>站的配置文件了,拿出它的代码,仔细的看了看终于找到邮件的文件夹(图16),输入<A href="http://www.abcdef.com/" target=_blank>http://www.abcdef.com/</A><BR>admin_data/mailtxt/20041019132110225.php,返回SaPHPShell的工作页面(如图17)。<BR>四: 后记 <BR>本来拿到了WEBSHELL,下步就要提升权限,不过我不想再入侵下去了,毕竟是商业站点嘛。还有就是个人认为<BR>在入侵中最重要的一步就是拿到SHELL了,只要拿到了SHELL,以后的入侵都会变得简单。<BR>本文没有什么高深的技术,写这篇文章的目的就是为了告诉初学者:入侵的方法很多,大多是各种技巧的组合,<BR>另外经验也很重要。<BR>&nbsp;<BR>  <BR></FONT></P>

songsong 发表于 2006-4-28 16:39:43

re:PHP入侵大型站点手记

<P>男女见解有别!海东清,如果爱国的话你就去去国家情报局啊,不是告诉过你很多次了么?呵呵</P>
页: [1]
查看完整版本: PHP入侵大型站点手记