1、WEB安全培训,更多软件测试资料尽在road软件测试论坛 http:/ 一半以上的程序安全问题源于缺乏对用户可控数据的处理 程序员如果本着人之初性本善的想法,那么写的程序难免出问题,用户输入,直接输入 GET POST Cookie HTTP头环境变量 间接输入 数据库取出的数据 编码的用户数据,WEB程序安全问题,SQL注入 跨站脚本 Url Redirect跳转 Access Control 越权访问,SQL注入,SQL注入简介 拼接的SQL字符串改变了设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库服务器 拼接SQL字符串灵活方便,但是容易导致安全问题,SQL注入,SQL注
2、入原理,http:/victim/news.php?id=3721,select * from news where id=$id,select * from news where id=3721,SQL注入利用,利用示例,http:/victim/news.php?id=0 union select name,pw from users,select * from news where id=$id,select * from news where id=0 union select name,pw from users,SQL注入的危害,泄露敏感信息 攻击者可以获取后台数据库的种类、版本,
3、操作系统信息,数据库名、表名、字段名以及数据库中的数据信息 泄露敏感信息 无需知道口令就能以用户身份登陆应用系统 篡改敏感数据 对数据库进行增加、删除、篡改的操作 执行任意系统命令 利用数据库支持的特定功能,执行任意命令,SQL注入的危害,不同的数据库,不同的数据库配置,危害程度不一样 SQL Server默认配置并且使用sa帐号 MySQL版本、数据库root帐号、系统root用户启动服务,SQL注入,避免SQL注入 过滤拼接字符串中的用户数据,尤其不能忽视间接输入数据的SQL语句拼接 如果可能,使用其他方法代替SQL语句拼接 使用WEB应用扫描器检测程序相对比较明显的SQL注入问题,跨站脚
4、本,跨站脚本简介 跨站脚本(Cross-Site Scripting)是指远程WEB页面的html代码可以插入具有恶意目的的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害。简称CSS或XSS 不影响服务端程序,但影响客户端,跨站脚本,请求: http:/ 展现:Hello alert(/XSS/),跨站脚本危害,窃取Cookie document.cookie 页面内容被篡改 Js代码改写/跳转页面 蠕虫 Myspace 新浪微博 恶意代码,跨站脚本防御,显示用户数据时对 “&”等HTML符号进行编码转换 htmlspecialchars 过滤必要的XHTM
5、L属性及各种编码,尤其在WEB提供样式功能的时候 设计时要考虑到关键内容不能由用户的直接数据显示,要有转换或后台间接审核的过程 用WEB应用扫描器对程序进行检测,Url Redirect跳转,Url Redirect钓鱼攻击原理 redirect.htm?target=http:/,URL跳转攻击,QQ,QQ用户,URL跳转攻击,Url Redirect策略 目标地址应限制跳转到当前域内 如果需要跳转到外部链接需要有url的白名单,Access Control,Access Control攻击例子(前台代码),Access Control,Access Control攻击例子(后台代码),pu
6、blic boolean canManageMssage()if (isAdmin() return true; ,检查了角色 但是短消息属于用户,不属于角色,Access Control,Access Control安全策略 权限框架 SQL语句条件,Cookie的安全,简介 Cookie是Netscape的一个重大发明,当用户访问网站时,它能够在访问者的机器保存一段信息,可以用来标识各种属性。当用户再次访问这个网站的时候,它又能够读出这些信息,这样WEB程序就能知道该用户上次的操作 Cookie大大提高了用户体验,被广泛使用,Cookie的安全,Cookie的欺骗 Cookie是纯客户端数
7、据,非常容易伪造 文件型的Cookie可以直接改浏览器的Cookie文件 通过curl或firefox的LiveHTTPHeaders插件可以轻松伪造各种类型的Cookie数据,Cookie的安全,使用Cookie时应注意的问题 尽量不要用Cookie明文存储敏感信息 数据加密后保存到客户端的Cookie 为Cookie设置适当的有效时间,WEB服务器端安全问题,合理的文件权限设置 取消WEB用户对apache日志的读权限 nobody有写权限的WEB目录取消解析权限,WEB服务器端安全问题,信息泄露 服务器版本信息泄露 运行环境遗留测试文件 phpinfo.php conn.asp.bak 程序出错泄露物理路径 程序查询出错返回SQL语句 过于详细的用户验证返回信息,WEB应用扫描器,AppScan 非常专业的商业WEB应用扫描器 功能强大,准确率高,尤其是跨站脚本和SQL注入的检测 扫描速度较慢,WEB应用扫描器,WebInspect 相比AppScan,功能毫不逊色,抓URL的能力更强 安装需要SQL Server,比较麻烦,WEB应用扫描器,Acunetix Web Vulerability Scanner 轻量级 速度快 自由度大,,Thank You !,