站内搜索写法的一个 SQL inject 漏洞

最近sql inject 可是说是红遍了整个中国,不知道多少网站在sql inject 面前轰然倒下,其实 Sql inject 在国外技术已经很成熟了,而国内则是在近一两年内慢慢走向成熟。在一个个惨痛的实例面前,脚本工作者不得不重视起来,最好的例子就是动网了。然而今天脚本是不是就很安全的呢。请看我对几个安全站点的测试结果。结果是令人吃惊的, 影子鹰, 华夏, 黑客动画吧 都存在着这个站内搜索的漏洞。

请看一段常见的站内搜索写法。

例一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<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.gif" 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/search.asp?s1=1 and 1=1 返回正常
提交 http://www.cnhacker.cn/search.asp?s1=1 and 1=2 没有搜索到任何相关文章 ,请重新搜索

哈哈,可以注入!像这些安全站点密码一定n变态,还是用nb跑跑吧。后面也证明了我的想法是正确的密码n变态,还好没手工猜。拿到了管理员的密码,就是找不到后台郁闷。

例二:

1
<a href='Soft_Class.asp?ClassID=11'>安全扫描</a></li><br><li><a href='Soft_Class.asp?ClassID=12'>嗅探监听</a></li><br><li><a href='Soft_Class.asp?ClassID=13'>分析检测</a></li><br><li><a href='Soft_Class.asp?ClassID=14'>字典文档</a></li><br><li><a href='Soft_Class.asp?ClassID=15'>加密破解</a></li><br><li><a href='Soft_Class.asp?ClassID=16'>木马类</a></li><br><li><a href='Soft_Class.asp?ClassID=17'>QQ类</a></li><br><li><a href='Soft_Class.asp?ClassID=18'>综合工具</a></li>

上面代码来自黑客动画吧,令人吃惊的直接就是classID= 根本就没有过滤。分析完上面的代码,和其他的一些代码综合起来, 我们又可以构造这样的url:

http://www.hack58.com/Soft_Search.asp?Field=SoftName&ClassID=8

结果返回也是一定堆的搜索结果。。。

提交 http://www.hack58.com/Soft_Search.asp?Field=SoftName&ClassID=8 and 1=1 返回正常
提交 http://www.hack58.com/Soft_Search.asp?Field=SoftName&ClassID=8 and 1=2 产生错误的可能原因:

HOO,漏洞又出来了!

例三:

来个大家都知道的华夏黑客联盟,前段时间还被黑了一次。还是看代码吧,听说华夏用的是动力的商业版。可以华夏今天又上不去,反正原理是相同的。我把我构造好的url 给大家看

http://www.77169.org/soft1/search.asp?ss_name=winrar&sor=01

接下来要怎么发挥就看你们的了。

总结:这个漏洞应该有一定的普遍性,黑窝里安全站点都有这个问题,更别说是其他站点了。或许有些大虾早就发现了,
小弟就在这献丑一下了,第一次写文章,有所差错在所难免,欢迎和我联系。


站内搜索写法的一个 SQL inject 漏洞
https://usmacd.com/cn/search_sql_injection/
作者
henices
发布于
2004年10月13日
许可协议