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