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