|
| |
精品推荐 |
 |
|
| |
|
|
|
|
脚本注入方式
|
日期:2007年12月15日 作者: 查看:[大字体
中字体 小字体]
|
在防火墙广泛地应用于网络之间执行访问控制策略的今天,以往被漠视的CGI安全悄然兴起,形形色色的脚本攻击在防火墙的“认同”下大行其道,看似简单的脚本实质上处处暗藏玄机。本文真实再现利用脚本缺陷善意侵入target的全过程,试图让您得到一点乐趣和启示。
Target.ORG(target网络安全小组)是国内较为知名的黑客/安全站点,偶然间,我们开始了对她的安全测试。
没有任何迟疑,我们直接从WEB下手。据了解:target整站程序由站主NetHero编写。基于代码规模和复杂度方面的考虑,我们把目光集中到了网站论坛。我们习惯首先查看用户信息,因为用户名和用户密码总是紧贴着保存在一起,在这里我们更容易接近我们渴求的信息。提交如下URL
查看NetHero用户信息:
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=nethero 正常返回用户信息
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=./nethero 出错提示:论坛系统出现问题!
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=nethero%00 返回用户信息的“发贴数量”出现了一个莫名其妙的字符串,其他的一部分信息也全乱了
看来这里有点问题,这个字符串到底是怎么回事?我们用以前申请的ID登陆上去后,看到每个URL的QUERY_STRING后面都有一个名为key的变量,而且其值和上述的字符串有些相似。难道这个是密码?我们接连登陆几次后,观察到这个key值每次都不一样,看来这个key是用来识别我们在论坛的身份,应该与用户密码没有直接关系...还是先不管这个key值了,继续用我们的ID做实验,提交了这个URL
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=envymask%00
出来的还是跟先前类似的字符串,这个时候我们大胆猜测这个字符串是我们的密码,通过验证,我们发现这的确是把我们密码经过标准DES加密后得到的字符串。这证明了我们的猜测是正确的,这个字符串中就是加密过后的用户密码。但为什么密码会溜出来?于是我们接着推测:在用户数据目录里面肯定有两个保存每个用户信息的文件,一个里面保存有密码,而另一个没有,只有一些一般的信息,如邮箱,生日之类的。这两个文件应该一个是username,另一个是username.xxx(加了一个后缀)。
userinfo.pl这个程序使用open函数打开文件的时候没有对user这个变量过滤完全,至少没有过滤掉 \0,这使得试图打开username.xxx文件的时候实质上打开的并不是username.xxx而是username。打开文件的代码可能是这样写的open(F,"$path/$username.xxx");所以当user=abcdef%00的时候相当于open(F,"$path/abcdef");而这个文件里正是保存用户密码的那个文件,所以部分用户信息变量直接到该文件中错误地取值,之后再反馈输出给用户,这样密码就出来了。惬意...我们随即找出了站长nethero的密码,暴力破解的念头一闪而过后,我们看还能不能进一步突破这个目录,于是提交
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=../../../../../../../etc/passwd%00
密码档文件出来了,看来这里有搞头,继续
http://www.target.org/cgi-bin/club/scripts/userinfo.pl?user=../../../../../../../etc/%00
受页面输出格式限制,我们只能查看到/etc目录中一部分文件和目录;于是试着打开一些文件,但也只能查看到文件的一些很小的片段,几乎没什么用,连续查看了很多文件过后,都没有新的突破,我们有点失望了。于是我们暂时把这个BUG放在一边,看看还有没有其他文件存在缺陷,继续找一些CGI程序如display.pl,show.pl等,都没有发现可以突破的地方,因为这些文件都做了一些过滤,看来这条路走不通了。
既然CGI方面不能突破,那就只有另想路子了。
上一篇:Flash初学者实用技巧
下一篇:火拼QQ泡泡龙常见问题和解决办法
|
| 相关文章: |
|
|
|
| 相关软件: |
|
|
|
|