Web 安全深度剖析(张炳帅)
第一章(WEB安全简介)
1.服务器是如何被入侵
入侵前提:已连通
入侵手段:参考知识技能树形图
2.如何更好地学习Web安全
渗透测试人员要走得更远,需要编程功底
第二章(HTTP协议)
1.HTTP协议解析
URL的构成:
协议://服务器IP[:端口]/路径/[?查询]
HTTP请求和响应构成:
请求行+请求头+消息正文
响应行+响应头+响应正文
HTTP请求方法:
get、post、head
HTTP状态码 和 HTTP头:
302重定向,400语法错误,401未授权,503稍后再试
HTTP消息又称HTTP头,分请求头、响应头、普通头、实体头
HTTP头,大致描述正文的内容
2.截取HTTP请求
Burp Suite设置代理截获包
Fiddler 设置代理HTTP截获包
WinSock Expert 抓包
3.HTTP应用:黑帽SEO之搜索引擎劫持
通过HTTP Referrer来判断用户是从哪里来的。如果是用户手动输入的,
则打开网站原来的index.asp页面;如果来自百度搜索,那就跳转到另一个文件。
第三章(信息收集)
1.Google Hacking
可以进行子域名搜索
可以收集Web信息 如 intext:Powered by Discuz
2.Nmap
用来扫描计算机的开发网络连接端,评估安全性,又称扫描之王
3.DirBuster
用来探测Web目录结构和隐藏文件夹,甚至源代码。
4.指纹识别
Nmap -O
用来针对网站CMS 指纹识别,
针对 操作系统、Web容器 指纹识别。
第四章(漏洞扫描)
1.Burp Suite
Target:站点地图显示目标信息
Spider:网络爬虫,枚举应用程序的内容和功能
Scanner:扫描发现Web应用程序的安全漏洞
Intruder:高度可配置的工具,对Web程序自动攻击
2.AWVS
自动化的Web应用程序安全测试工具
3.AppScan
自动化的Web应用程序安全测试工具第五章(SQL注入漏洞)
1.注入原理
用户输入的数据被SQL解释器执行
2.注入漏洞分类
攻击者的目的:绕过限制,使输入的数据带入数据库执行
数字型注入:最简单的一种,弱类型语言的特性
字符型注入:字符型需要使用单引号闭合,关键是闭合多余代码。
其他注入:POST注入、Cookie注入、延时注入、搜索注入、base64注入
3.常见数据库注入
SQL Server可以利用错误信息提取信息、利用视图获得元数据、利用Order by获得列数
MySQL 中的注释 /*!55555,username*/ 并非注释
Oracle 通过视图获得元数据、通过UTL_HTTP包操作文件完成注入
4.注入工具
SQLMap可以检测并利用SQL注入漏洞
Pangolin 简单的注入测试工具
Havij(外号小萝卜) 检测和利用SQL注入漏洞
5.防止注入
有输入的地方就存在风险,对用户输入过滤
严格的数据类型:对于弱类型的语言,要严格判断数据类型
特殊字符转义: 可以使用OWASP ESAPI转义。
使用预编译语句: Java、C#等语言提供了预编译语句,可有效防御SQL注入
框架技术: 使用主流框架往往具有较高的安全性
存储过程: SQL语句集经编译后存储在数据库中,有较高的安全性6.小结
如果对数据库不精通,注入工作可以交给工具,一般以工具为主,手工为辅。
开发团队要有自己的安全规范,遵循规范,把安全转移到代码规范问题上。