首页 电脑 电脑学堂 查看内容

站内搜索写法SQL inject 漏洞分析

2004-10-28 01:29 771 0

摘要: 作者:阿酷  来自:酷客天空 刚才在黑基看到一文“站内搜索写法一个SQL inject 漏洞”,文中谈到了站内扫描的一个注入漏洞,其实原理还是寻找一个比较点,不过对作者的钻研精神...
关键词: nbsp 搜索 http search asp 华夏 www 呵呵 漏洞 代码

作者:阿酷  来自:酷客天空 刚才在黑基看到一文“站内搜索写法一个SQL inject 漏洞”,文中谈到了站内扫描的一个注入漏洞,其实原理还是寻找一个比较点,不过对作者的钻研精神深表钦佩!    原文如下:====================================================================================================    最近sql inject 可是说是红遍了整个中国,不知道多少网站在sql inject 面前轰然倒下,其实 Sql inject 在国外技术已经很成熟了,而国内则是在近一两年内慢慢走向成熟。     在一个个惨痛的实例面前,脚本工作者不得不重视起来,最好的例子就是动网了。然而今天脚本是不是就很安全的呢。请看我对几个安全站点的测试结果。     结果是令人吃惊的, 影子鹰, 华夏, 黑客动画吧 都存在着这个站内搜索的漏洞。     请看一段常见的站内搜索写法。     例一: <form name="form4" method="post" action="search.asp"> <tr> <td height="25"> <div align=center> <input type="text" name="txtfind" size="18" onMouseOver="javascript:this.select();" value="请输入待查信息" style="border:#333333 1px solid;"> </div></td> </tr> <tr> <td> <div align=center><img height=5 src="../images/left_2.webp" width=186></div></td> </tr> <tr> <td height="30"> <div align=center> <select name="s1"> <option selected value='0'>所有类别</option><option value='1'>网站新闻</option> <option value='2'>进阶教程</option> <option value='3'>安全漏洞</option> <option value='5'>系统防范</option> <option value='6'>原创作品</option> </select> /* 上面的这段来自影子鹰安全网*/     也许看了人说没什么的啊,我也是这么写的,这和sql inject 有什么关系啊。呵呵,,其实问题就出在这。     大家看,搜索类别的值是从客户端获得的,而且没有过滤。。呵呵,,聪明的你是否想到了什么。??     我们可以构造一个url http://www.cnhacker.cn/search.asp?s1=1 ;得到的结果是:页面返回正常,得到一大堆的搜索结果。     提交 http://www.cnhacker.cn/asp/search.asp?s1=1 ;and 1=1 返回正常     提交 http://www.cnhacker.cn/asp/search.asp?s1=1 ;and 1=2 没有搜索到任何相关文章 ,请重新搜索     哈哈。。可注。。。象这些安全站点密码一定n变态,还是用nb跑跑吧。。后面也证明了我的想法是正确的密码n变态,还好没手工猜。。呵呵。。拿到了管理员的密码,就是找不到后台郁闷。     例二: <a href='Soft_Class.asp?ClassID=11'>安全扫描</a></li><li><a href='Soft_Class.asp?ClassID=12'>嗅探监听</a></li><li><a href='Soft_Class.asp?ClassID=13'>分析检测</a></li><li><a href='Soft_Class.asp?ClassID=14'>字典文档</a></li><li><a href='Soft_Class.asp?ClassID=15'>加密破解</a></li><li><a href='Soft_Class.asp?ClassID=16'>木马类</a></li><li><a href='Soft_Class.asp?ClassID=17'>QQ类</a></li><li><a href='Soft_Class.asp?ClassID=18'>综合工具</a></li>     呵呵。。。以上代码来自黑客动画吧。。哈哈。。令人吃惊的直接就是classID= 根本就没有过滤。     分析完上面的代码,和其他的一些代码综合起来。。我们又可以构造这样的url     http://www.hack58.com/Soft_Search.asp?Fiel...tName&Class ;ID=8     结果返回也是一定堆的搜索结果。。。     提交 http://www.hack58.com/Soft_Search.asp?Fiel...tName&Class ;ID=8 and 1=1 返回正常     提交 http://www.hack58.com/Soft_Search.asp?Fiel...tName&Class ;ID=8 and 1=2 产生错误的可能原因.     HOO。。。漏洞又出来了。。     例三:     来个大家都知道的华夏黑客联盟。。呵呵。。前段时间还被黑了一次。。还是看代码吧。。听说华夏用的是动力的商业版。。     晕。。。华夏今天又上不去。。。反正原理是相同的。。不过这个我找了有点久,,     我把我构造好的url 给大家看 http://www.77169.org/soft1/search.asp?ss_name=winrar&sor=01 ;    接下来要怎么发挥就看你们的了。。。。====================================================================================================    先说句题外话,关于影子鹰的后台,我在一年多前就没找到,后来急了去问kawen,他也没告诉我,据说是秘密,呵呵!    接着来说一下这个漏洞,其实只是传递过程中对与搜索类型传递的变量没有审核,解决办法比较多,大概说一下,班门弄斧,各位见笑!    1、使用googl做站内搜索,google的搜索能力我想大家不会怀疑吧,只要在form的时候,加一个site:www.xxx.com就ok了!    具体的可以参考:    http://www.coolersky.com/web/art/20041025150801.asp    http://www.dffy.com/benzhandongtai/wl/200311/20031108215607.htm    如果想用百度也完全可以! 百度站内外搜索演示代码:摘自虎盟,略作修改!<SCRIPT language=javascript><!--function go(formname){  var url = "http://www.baidu.com/baidu";  formname.method = "get";  if (formname.mysite.checked) {    document.search_form1.word.value = document.search_form1.word.value+" site:www.coolersky.com";}  formname.action = url;  return true;}//--></SCRIPT><form name="search_form1" target="_blank" onSubmit="return go(this)"><tr>  <td align="center">     搜索:     <input name="word" size="20" value="酷客天堂" onMouseOver="this.focus()" onBlur="{if (this.value ==''){this.value='酷客天堂}}" onFocus="this.select()" onClick="{if(this.value=='酷客天堂') this.value=''}" class="bottonLine">     <input name="submit" type="submit" value="搜索" class="box">     <input name=myselect type=radio value=0>     互联网     <input name=myselect type=radio id=mysite value=1 checked>     站内  </td></tr></form>    2、对参数进行适当过滤,或通过搜索页进行一次跳转,也就是把不同的搜索对象跳转到不同的搜索页,再进行参数过滤。    3、在request参数的时候,使用完整的request.form;这样通过浏览器提交的类似于http://www.cnhacker.cn/asp/search.asp?s1=1 ;and 1=1的链接就无效了;当然可以本地提交form,那么我们只需要验证一下提交位置是否为服务器即可。    相关内容请参考:http://www.coolersky.com/web/art/20041007005127.asp
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部