另外现特别需要注意的就是对cookies注入进行过滤,因为现在有特别多的网站程序员都习惯了依赖通用防注入系统,但是旧版本的通用防注入系统都存在一个问题,就是没有对cookies注入进行过滤。
也就是说当我们发现一个网站使用了通用防注入的话,就证明网站本身程序并没有对注入进行过滤,当这个网站恰好使用的是一个旧版本的通用防注入程序的话,那么相当于告诉我们“此地无银三百两”了。下面要做的事情就是构造简单的cookies注入语句就可以轻松拿下后台的帐号密码了。
所以程序员要特别注意对程序后台地址的验证或者隐藏,这里对程序员的后台提出以下几点意见:
1. 后台编写使用类似动易的管理验证码
2. 后台地址路径手工输入正确地址后转向正确管理后台
3. 用户可自定义后台文件夹名称和路径
4. 对于不开源的程序,数据库的表名和字段名使用非常规名称
(2) 上传功能导致的漏洞
1. 验证扩展名不严密导致上传任意或特殊文件
处理建议:
(1) 验证时使用放行符合格式的文件,而不对不匹配格式进行验证
也就是说当你的网站只需要用户上传jpg bmp gif rar zip 等格式的文件的时候,验证模块则只允许这几个格式的文件上传,而不是对不可上传的文件格式进行过滤和错误提示。这样可以最大程度的避免非法文件的上传。
(2)对上传文件的文件头标识进行验证,例如:动网等程序对图片的标识验证,从而避免如下图中的一句话木马的构造。
(4)上传目录不能动态生成,前端时间由于IIS6 的一个解析漏洞,导致动易等一系列的大型网站被黑。问题就出在他们的程序允许以注册用户的用户名生成一个目录,当用户注册一个1.php的用户名,然后上传一个改名为1.jpg后的php木马,就得到一个访问路径http://www.xxx.com/user/1.php/1.jpg。当我们访问这个jpg文件的时候IIS6的漏洞就提供了我们便利。因为这个jpg将以一个php程序的身份被运行。结果显而易见,我们顺利得到一个webshell,所以不只是对用户上传目录不允许动态生成,也建议不要提供设置上传目录的功能。因为windows有一个严重的Bug,就是目录不存在的时候则自动生成。
(5)上传验证格式不要在后台提供设置,很多网站允许在后台设置允许上传或者禁止上传的文件格式,这个功能是我完全不必要的,虽然提供了更完善更强大的功能,交互性加强了。但是带来的安全问题远超过他的使用性。所以建议程序员在开发网站程序的时候不要提供这个不必要的功能。