当前位置:文档之家› web安全培训

web安全培训


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