网络安全 频道

Web网站程序编写中的安全软肋

    另外现特别需要注意的就是对cookies注入进行过滤,因为现在有特别多的网站程序员都习惯了依赖通用防注入系统,但是旧版本的通用防注入系统都存在一个问题,就是没有对cookies注入进行过滤。

    也就是说当我们发现一个网站使用了通用防注入的话,就证明网站本身程序并没有对注入进行过滤,当这个网站恰好使用的是一个旧版本的通用防注入程序的话,那么相当于告诉我们“此地无银三百两”了。下面要做的事情就是构造简单的cookies注入语句就可以轻松拿下后台的帐号密码了。

    所以程序员要特别注意对程序后台地址的验证或者隐藏,这里对程序员的后台提出以下几点意见:

    1. 后台编写使用类似动易的管理验证码
    2. 后台地址路径手工输入正确地址后转向正确管理后台
    3. 用户可自定义后台文件夹名称和路径
    4. 对于不开源的程序,数据库的表名和字段名使用非常规名称

    (2) 上传功能导致的漏洞
    1. 验证扩展名不严密导致上传任意或特殊文件
    处理建议:
    (1) 验证时使用放行符合格式的文件,而不对不匹配格式进行验证
 也就是说当你的网站只需要用户上传jpg bmp gif rar zip 等格式的文件的时候,验证模块则只允许这几个格式的文件上传,而不是对不可上传的文件格式进行过滤和错误提示。这样可以最大程度的避免非法文件的上传。
    (2)对上传文件的文件头标识进行验证,例如:动网等程序对图片的标识验证,从而避免如下图中的一句话木马的构造。


    (3)对附加文件进行检测有一种技术叫“文件隐藏技术”,其实就是利用windows的命令行下的一条命令 copy 1.gif /a + 1.asp /b 1.gif将2个文件进行合并,这个办法可以用来合并木马进mdb数据库,然后通过备份将文件保存为一个指定的木马文件,所以程序员在程序编写过程中也要特别注意这点,动网论坛的程序可以作为一个参考。
    (4)上传目录不能动态生成,前端时间由于IIS6 的一个解析漏洞,导致动易等一系列的大型网站被黑。问题就出在他们的程序允许以注册用户的用户名生成一个目录,当用户注册一个1.php的用户名,然后上传一个改名为1.jpg后的php木马,就得到一个访问路径http://www.xxx.com/user/1.php/1.jpg。当我们访问这个jpg文件的时候IIS6的漏洞就提供了我们便利。因为这个jpg将以一个php程序的身份被运行。结果显而易见,我们顺利得到一个webshell,所以不只是对用户上传目录不允许动态生成,也建议不要提供设置上传目录的功能。因为windows有一个严重的Bug,就是目录不存在的时候则自动生成。
    (5)上传验证格式不要在后台提供设置,很多网站允许在后台设置允许上传或者禁止上传的文件格式,这个功能是我完全不必要的,虽然提供了更完善更强大的功能,交互性加强了。但是带来的安全问题远超过他的使用性。所以建议程序员在开发网站程序的时候不要提供这个不必要的功能。

0
相关文章