Upload
others
View
20
Download
0
Embed Size (px)
Citation preview
络安全
第七章 WEB应用漏洞攻防
黄 玮
WEB应用程序漏洞原理基于Web应用程序服务模型
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序服务模型
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输有关的安全问题
切罪恶都是源于恶意输数据
bull 不要相信任何来自客户端的提交数据 mdash客户端的任何数据校验都是纸老虎
ndash客户端的数据校验机制防君不防客
bull 数据和指令代码必须严格区分 mdash缓冲区溢出时的机器指令运在可执堆栈上
mdashSQL注时执任意SQL语句
mdashXSS时执任何客户端脚本代码(JSFlash AS) mdash件上传时上传服务端脚本代码在服务器端执
任意代码
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
WEB应用程序漏洞原理基于Web应用程序服务模型
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序服务模型
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输有关的安全问题
切罪恶都是源于恶意输数据
bull 不要相信任何来自客户端的提交数据 mdash客户端的任何数据校验都是纸老虎
ndash客户端的数据校验机制防君不防客
bull 数据和指令代码必须严格区分 mdash缓冲区溢出时的机器指令运在可执堆栈上
mdashSQL注时执任意SQL语句
mdashXSS时执任何客户端脚本代码(JSFlash AS) mdash件上传时上传服务端脚本代码在服务器端执
任意代码
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序服务模型
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输有关的安全问题
切罪恶都是源于恶意输数据
bull 不要相信任何来自客户端的提交数据 mdash客户端的任何数据校验都是纸老虎
ndash客户端的数据校验机制防君不防客
bull 数据和指令代码必须严格区分 mdash缓冲区溢出时的机器指令运在可执堆栈上
mdashSQL注时执任意SQL语句
mdashXSS时执任何客户端脚本代码(JSFlash AS) mdash件上传时上传服务端脚本代码在服务器端执
任意代码
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输有关的安全问题
切罪恶都是源于恶意输数据
bull 不要相信任何来自客户端的提交数据 mdash客户端的任何数据校验都是纸老虎
ndash客户端的数据校验机制防君不防客
bull 数据和指令代码必须严格区分 mdash缓冲区溢出时的机器指令运在可执堆栈上
mdashSQL注时执任意SQL语句
mdashXSS时执任何客户端脚本代码(JSFlash AS) mdash件上传时上传服务端脚本代码在服务器端执
任意代码
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
切罪恶都是源于恶意输数据
bull 不要相信任何来自客户端的提交数据 mdash客户端的任何数据校验都是纸老虎
ndash客户端的数据校验机制防君不防客
bull 数据和指令代码必须严格区分 mdash缓冲区溢出时的机器指令运在可执堆栈上
mdashSQL注时执任意SQL语句
mdashXSS时执任何客户端脚本代码(JSFlash AS) mdash件上传时上传服务端脚本代码在服务器端执
任意代码
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-示例
bull 设计输 mdashViewServleturl=httpbackendhostimagesbggif
bull 恶意输 mdashViewServleturl=httpweblogicconsole
mdashViewServleturl=fileetcpasswd mdashViewServleturl=etcpasswd
bull 通过这个简单的应用程序可以间接实现件枚举和后台程序扫描
6
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-描述(12)
bull 攻击者可以篡改HTTP request的任何个部分 mdashurl
mdash请求字符串 mdashHTTP头
mdashCookies
mdash表单域 mdash隐藏域
7
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-描述(22)
bull 常见的输篡改攻击包括 mdash强制浏览 mdash命令注
mdash跨站点脚本攻击
mdash缓冲区溢出攻击 mdash格式化字符串攻击
mdashSQL注 mdashCookie毒化
mdash隐藏域控制
8
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输篡改攻击的成因
bull 可能的原因 mdash只在客户端进输验证
mdash过滤时未进规范化 ndash 过滤后引新漏洞
bull 导致其他的漏洞
9
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-具演示
10
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-解决案(13)
bull 所有的用户输需要在服务器端进集中的统验证 mdash请求参数
mdashCookies mdashHTTP请求头
bull 代码复查
bull 不要ldquo滥用rdquo隐藏域 mdash存储在Session中或从每次请求中获取参数值
11
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-解决案(23)
bull 请求参数需要严格的验证其类型 mdash数据类型(string integer real etchellip)
mdash最小和最长度 mdash是否允许null
mdash参数是否是必需的
mdash数字的取值范围 mdash特定模式(正则表达式)
ndash 白名单机制
12
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
1未验证的用户输-解决案(33)
bull 服务器返回给客户端的重要参数赋值使用HMAC进参数签名
bull 千万不要使用MD5SHA-XXX之类的摘要算法对参数进摘要计算也不要使用基于ldquo秘密盐值rdquo的MD5SHA-XXX之类的摘要算法对参数进摘要计算
bull 对客户端提交的请求校验关键逻辑代码中的参数旦消息完整性签名校验失败说明客户端尝试篡改请求参数攻击代码逻辑直接跳过后续业务逻辑代码给客户端返回统的错误信息
13
Hash长度扩展攻击
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
2缓冲区溢出-描述(12)
bull 应用程序的缓冲区中存在过量的输数据溢出的数据中包含恶意指令且恶意指令被精确填充到可执堆栈(内存)中进导致恶意代码被执
bull 般情况下Web应用程序不存在缓冲区溢出漏洞
bull Java Web应用程序不存在缓冲区溢出风险 ndash OutOfMemoryError
ndash CVE-2011-0311
ndash CVE-2009-109914
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
2缓冲区溢出-描述(22)
bull PHP Web应用程序不存在缓冲区溢出风险 mdash CVE-2011-3268
mdash CVE-2008-5557
mdash CVE-2008-2050
mdash CVE-2007-1399
mdash CVE-2007-1381
mdash PHP的缓冲区溢出相关漏洞历史1997~20118 共计76个
bull 其他语编写的Web应用程序呢 mdash后台应用系统
mdash本地代码
15
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
2缓冲区溢出-解决措施
bull 避免使用本地代码
bull 避免直接调用本地应用程序
bull 及时更新应用运环境 mdashJava虚拟机的安全更新补丁 mdashPHP语的安全更新补丁
bull 限制Web应用程序的运权限 mdash沙盒技术
16
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
后台相关的安全问题
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
3注缺陷-示例
bull 登录模块使用了如下的SQL查询语句 mdashselect from users where user= + username +
and password= + hashedPassword +
bull 很容易被以下的用户输破解登录功能 mdashusernamelt任何存在的用户名gt or 1=1 mdashpassword任何可以通过验证规则的密码
bull 拼接后形成的SQL查询语句 mdashselect from users where user=admin or 1=1 and
password=secret
18
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
3注缺陷-描述
bull 在任何存在解释器的地都可能存在 mdash脚本语例如PerlPython和JavaScript mdashShell脚本语(执系统应用程序) mdash通过系统调用访问操作系统
mdash数据库系统SQL注
mdash目录遍历(eg etcpasswd)
bull 典型缺陷 mdashRuntimeexec() system() exec()
mdash拼接字符串的SQL mdash件输和输出流操作
19
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
3注缺陷-操作提示
bull SQL注提示 mdash必须先确定目标数据库类型版本 mdash边准备好相应数据库的ldquo册rdquo
ndash 通常cheatsheet以
bull 操作系统命令注提示 mdash必须先确定目标操作系统类型版本应用软件配
置信息 mdash边准备好相应操作系统的ldquo册rdquo
ndash 操作系统命令 ndash 敏感件路径全
20
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
创意所不在的SQL注(13)
bull 史上最车牌
21
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
创意所不在的SQL注(23)
bull 维条形码
bull 维条形码
22
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
创意所不在的SQL注(33)
23
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
3注缺陷-解决案(12)
bull 在任何时候避免直接使用外部的解释器使用编程语提供的API库 mdash避免使用Runtimeexec()通过JavaMail API来发
邮件
bull 在将数据发送给后台程序时对数据进编码 mdashSQL语句中的单引号 注释符 mdashLDAP语句中的逗号括号等
24
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
3注缺陷-解决案(22)
bull 更好的解决办法 mdashJava 使用JDBC驱动的PreparedStatements
mdashPHP 使用预编译SQL语句
bull 以受限制的系统权限运Web应用程序 mdash沙盒技术
bull 所有的外部调用的输出返回代码值和错误代码值都需要检查
25
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
输出相关的安全问题
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-示例
bull Web应用程序直接将请求中的参数ldquo回显rdquo在用户的浏览器中
bull URL中请求参数的回显 mdash正常的URL httpvictimorgvictimjspkind=simple
mdash被注JS代码后的URLhttpvictimorgvictimjspkind=simple name=kindgtltscriptgtalert(test)ltscriptgtltinput type=hidden
27
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4著名公司的XSS漏洞
bull IBM mdashXSS演示代码(2007年6月首次发现目前IBM已
修复该漏洞) ndash httpwww-1ibmcomsupportdocviewwss
uid=swg21233077amploc=gtltbody20onload=alert(IbmIsNotPerfect)locationreplace(httpwwwyahoocn)20x=en_US
28
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4著名公司的XSS漏洞
bull TOM mdashXSS演示代码
ndash httpsearchtomcommphpw=3Cscript3Eeval(StringfromCharCode(971081011141164034847977256283203428431279346529250311862151833258211603633936716210408997104111111256283203434415911510111684105109101111117116401021171109911610511111040411231081119997116105111110461141011121089799101403410411611611258474711911911946121971041111114699110344112541))3Cscript3Eampmimetype=wma
29
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4著名公司的XSS漏洞
bull Sogou mdashXSS演示代码
ndash httpwwwsogoucomwebquery=3CIFRAME+WIDTH3D400+HEIGHT3D400+SRC3D22HTTP3A2F2FWWWYAHOOCN22223E3C2FIFRAME3Eampnum=10amppid=58009401ampduppid=1
30
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-描述
bull 攻击者将恶意脚本代码发送到终端用户的浏览器 mdashWeb应用程序的输出直接回显到用户的浏览器
未经过检查 mdash浏览器信任Web应用程序的代码
bull 恶意脚本可以 mdash访问cookie会话令牌或其他通过用户浏览器获
得的敏感信息 mdash重写HTML页面
31
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-描述
bull 2种基本策略 mdash持久化的(可自动触发)例如恶意代码存储到
数据库中通过论坛发帖访客留等
mdash反射型(诱骗点击型)例如错误消息搜索引擎
bull 危害示例 mdash会话劫持 mdash钓鱼攻击 mdashDDoS攻击 mdash远程信息获取如端扫描用户浏览历史信息枚举
32
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-操作提示
bull 确定好攻击向量的目标浏览器 mdash很多XSS攻击只能在特定浏览器平台上触发
bull 边准备好 mdashJavascript语法册 mdashHTML册
mdashCSS册
mdashFlash ActionScript册 mdash浏览器技术档
ndash 浏览器相关特性速查
33
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
创意所不在的XSS
bull 维码
34
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-解决案
bull 输校验
bull 编码所有的展现层输出(HTMLEncode或JSTL的coutStruts的ltbeanwritegt标签等)
bull 对输进长度限制或截短
35
lt amplt gt ampgt
( amp40 ) amp41
amp35 amp amp38
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
4跨站点脚本(XSS)-解决案
bull 如果你的应用程序需要显示用户提交HTML内容你应该过滤ltscriptgt标签要确保用户不能提交恶意脚本代码
36
以上解决案是远远不够的可以参考MySpace的Samy蠕的攻击代码
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
5不恰当的错误处理-示例
bull 错误的用户名
bull 错误的用户令
37
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
5不恰当的错误处理-描述
bull 程序的错误消息会暴露程序的些实现细节
bull 示例 mdash堆栈调试信息数据库错误消息错误代码
mdashJSP编译错误信息包含物理路径信息
mdash不致的错误消息(例如拒绝访问或没有找到) mdash错误导致的服务器宕机(DoS)
bull 用户错误输回显到页面时没有进过滤或转义导致的XSS攻击
38
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
5不恰当的错误处理-解决案
bull 定义套清晰和致的错误处理机制 mdash简明扼要的易于用户理解的错误消息(例如不同的错误
消息对应个错误代码id)
mdash为系统管理员记录重要信息(关联错误代码id)
mdash不要暴露出任何对攻击者有用的信息(程序的调试信息和异常时堆栈信息等)
bull 当需要显示用户的错误输时定要编码(过滤或转义)用户的错误输
bull 修改默认的错误页面(404401等)
bull 执代码复查39
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
Web应用程序设计实现的安全问题
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-示例
bull 档软件的下载链接地址保护 mdashhttpvictimorgdocs1doc mdashhttpvictimorgdocsdownloaddoid=1
bull Web应用程序的后台管理地址 mdashhttpvictimorgadmin mdashhttpvictimorgconsolelogin
bull 后台操作未执用户身份认证 mdashhttpvictimorgusersdeleteUserdouserid=001 mdashhttpvictimorgusersaddUserdouserid=001
41
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-描述
bull 内容或程序功能未能有效的保护以限制只允许合法用户的访问
bull 典型案例 mdash不安全的id mdash强制浏览(直接在浏览器的地址栏中输URL)
mdash目录遍历 mdash件访问权限
mdash客户端缓存
42
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-描述
bull 可能的原因 mdash认证只发在用户登录时
mdash仅对URL进鉴权不是对内容进鉴权 mdash未采取集中式的授权管理是分散授权管理
43
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-解决案
bull 对每个需要保护的请求进检查不仅是在用户第次请求时进检查
bull 避免使用自开发的访问控制是使用J2EE提供的CMS或者其他的些安全框架如Acegi mdash采用声明式非硬编码的访问控制
mdash集中化访问控制非分散访问控制
44
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-解决案(13)
bull 注意J2EE容器默认允许所有URL的访问
bull (可选)扩展基于实例的访问控制
bull 防客户端缓存重要内容设置HTTP请求头和meta标签
bull 在服务器端使用操作系统提供的访问控制保护件的未经授权的访问
45
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-解决案(23)
bull 业务模型的访问控制授权建模 mdash访问控制权限划分的三角形基本法则
bull 平权限访问 mdash属主权限检查
bull 提升权限访问 mdash使用ACL
46
Alice Bob
administrator
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
6脆弱的访问控制-解决案(33)
bull 属主权限检查
bull 使用ACL
47
主体 客体
alice srvwwwupload1docbob srvwwwupload2doc
主体 客体
alice useraliceviewphp useraliceaddphp
bob userbobviewphp
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
7脆弱认证和会话管理-示例
bull 未采用Session cookie是在URL中编码已通过认证的用户名和密码 mdashhttpshostadminlistjsp
password=0c6ccf51b817885eampusername=11335984ea80882d
bull 上面的这个URL很容易被次XSS攻击截获到
48
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
7脆弱认证和会话管理-描述
bull 脆弱的认证和会话管理
bull 典型案例 mdash简单易猜解的用户名和用户令
mdash存在缺陷的身份管理功能例如密码修改功能忘记密码和账户更新功能
mdash主动会话劫持假冒已通过身份认证的合法用户
bull HTTP协议的会话管理依赖于应用程序的实现 mdash使用jsessionid的URL重写
mdash(Session) cookies
49
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
7脆弱认证和会话管理-解决案
bull 使用强认证机制 mdash密码策略(密码强度使用更改存储控制)
mdash安全传输(SSL) mdash小实现ldquo找回密码rdquo功能
mdash移除默认用户
bull Session机制需要注意的问题 mdashcookie必须是ldquo安全rdquo的(例如readonly机制)
mdashSession id必须是ldquo不可预测rdquo的
bull 尽量使用应用程序服务器提供的安全机制不是实现自的安全机制
50
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
基础平台的安全问题
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
8不安全的存储-示例
bull 日常备份策略 mdash程序的备份采用可擦写的设备如移动硬盘U
盘等
mdash使用UltraEdit等编辑器编辑件后未删除编辑器自动成的bak备份件导致源代码泄露
bull 数据未加密存储 mdash用户令等机密数据以明形式存储在数据库中
52
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
8不安全的存储-描述
bull 敏感重要的数据应该采取安全的存储式
bull 典型案例 mdash没有加密存储关键数据
mdash密钥证书和密码等采用了不安全的存储介质
mdash弱随机数字发器 mdash弱加密算法
mdash未采用安全的密钥交换机制
53
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
8不安全的存储-解决案
bull 仅存储那些必须存储的数据 mdash要求用户每次重新输
mdash存储Hash值不是加密值
bull 不允许对后台应用程序的直接访问 mdash数据库访问 mdash件系统访问
bull 不要在Web应用程序服务器所在的根目录存储重要件
bull 不要使用自的加密算法使用原库54
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
9不安全的配置管理-描述
bull Web应用程序的运环境包括 mdash 应用程序服务器(如TomcatWebSphere和WebLogic等)和Web服务
器(如IISApache等)
mdash 后台系统(数据库服务器目录服务器邮件服务器等) mdash 操作系统和基础络架构
bull 最常见的配置漏洞 mdash 未及时更新安全补丁(操作系统应用程序等) mdash 不必要的默认备份示例件
mdash 开放具有管理权限的服务
mdash 默认的用户账户和默认令
mdash 配置不当的SSL证书
bull 开发者和管理者(部署员)之间缺乏沟通55
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
9不安全的配置管理-解决案
bull 为每个服务器配置创建个安全基准 mdash 配置所有的安全机制(补丁更新策略访问控制策略密码策略等)
mdash 关闭所有不使用的服务
mdash 创建用户角权限和账户包括禁用所有默认账户或修改默认令
mdash 日志和警告系统
bull (半)自动化配置过程 mdash使用项目批量构建具(如Ant)和Ghost
bull 保持更新 mdash保持Web应用程序的运环境的安全补丁的更新 mdash更新安全配置基准
mdash定期执内部和外部的漏洞扫描具
56
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
10拒绝服务攻击-示例
bull 应用程序从后台的内容管理系统获取了量的信息
bull 次前台的请求导致了对后台数据库的多次操作请求
57
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
10拒绝服务攻击-描述
bull Web应用程序非常容易遭受拒绝服务攻击这是由于Web应用程序本身法区分正常的请求通信和恶意的通信数据
bull 容易产量的攻击负载
58
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
10拒绝服务攻击-典型案例
bull 有限的资源特别容易成为DoS攻击的目标 mdash带宽
mdash数据库连接
mdash磁盘容量
mdashCPU资源 mdash内存
mdash最并发线程数 可用件句柄
bull 特定于用户的DoS mdash用户并发访问控制锁
mdash用户密码更改
bull 未处理的程序异常59
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
10拒绝服务攻击-解决案
bull 避免可能会导致资源密集性消耗的请求 mdashCPU频繁的请求JDBC连接
mdash内存或磁盘容量数据量的POST和过量的HttpSession数据
mdash匿名用户访问的限制
bull 在负载的情况下测试应用程序的性能
bull 利用缓存服务器或限制数据库连接
bull 小使用ldquo锁rdquo机制
60
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
输
Web应用程序 进后台
平台 应用程序服务器
操作系统 络
输出
又是输相关的问题
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-示例(12)
bull 利用站点已验证通过的用户会话(需获取用户的登录凭证) mdashhttpvictimorgaddFrienddo
friend=attackergmailcom
bull 当个已经登录victimorg的用户打开个包含有XSS攻击代码的页面(或者通过个隐藏的iframe)并且该XSS代码执上述的URL请求则该用户就会执addFriend这个操作
bull 结果用户在不知情的情况下添加了攻击者作为自的好友
62
教育博客CSRF漏洞演示
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-示例(22)
bull 新浪微博2011年6月28日晚间的规模XSS+CSRF蠕事件 mdash事件时间线16分钟
ndash 2014开始有量带V的认证用户中招转发蠕 ndash 20302ktcn中的病毒页面法访问 ndash 2032新浪微博中hellosamy用户法访问 ndash 2102新浪漏洞修补完毕
mdash感染数32961
bull 病毒作者使用的用户名是为了向世界上第个XSS+CSRF蠕作者samy致敬
63
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-描述
bull 从名称上来看类似跨站点攻击但实质上完全不同 mdashXSS是滥用用户对Web站点的信任
mdashCSRF是滥用Web站点对其授权用户的信任
bull 伪装成来自受信任站点的合法用户 mdash有时也被称为会话劫持攻击
bull 典型案例 mdash 诱骗用户访问个图片源标记为恶意请求链接的页面从触发个
异步的恶意远程调用
mdash 接受受信任并且通过验证的用户的输但并不检查数据的来源地址
64
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-与XSS的联系
bull 跨站点请求伪造通常伴随XSS漏洞利用过程
bull 先有XSS再有CSRF mdash借助XSS漏洞获得在用户浏览器执脚本的机会
bull 没有XSS样可以有CSRF mdash借助已通过站认证和获得授权的用户浏览器会
话
ndash 假借用户的合法cookie mdash个URL即可触发次CSRF
ndash httpvictimorgdeluserphpid=admin
65
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-解决案
bull 使用GET法进查询操作 mdash便用户加收藏夹 mdash可以通过电邮件的式发送链接地址给其他用
户
bull 使用POST法进更新操作 mdash不能被用户加收藏夹或通过电邮件告知
mdash不能被随意的重新提交 mdash增加XSS攻击的难度
66
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
11跨站点请求伪造-解决案
bull 在链接中使用时间戳和加密(防简单重放)
bull 在关键应用处使用CAPTCHA机制 mdash次性令
mdash图片验证码
bull 构造不可预测性
67
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
12 PHP的件包含漏洞(14)
bull 漏洞代码实例
mdash当phpini中register_globals =on时 ndash 攻击者通过构造 $server_root 作为请求参数
动态控制件包含指令
bull 漏洞代码实例
mdash攻击者通过构造URL请求参数中的filename字段动态控制件包含指令 ndash httptestcomtestphpfilename=etcpasswd
68
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
12 PHP的件包含漏洞(24)
bull 原理 mdashPHP代码的件包含指令中含有动态变量参数
该参数会被攻击者恶意控制实现动态包含任意件
mdash当动态包含服务器的本地件时导致本地件包含漏洞
mdash当动态包含远程第三件时导致远程件包含漏洞
69
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
12 PHP的件包含漏洞(34)
70
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
12 PHP的件包含漏洞(44)
bull 解决案建议 mdash严格检查变量是否已经初始化 mdash输参数过滤
ndash 服务器端验证 mdash严格检查include类的件包含函数中的参数是否外
界可控 ndash 源代码检查
71
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
13 件上传漏洞
bull 允许用户上传件可能会让客 mdash在页中嵌恶意代码
ndash 页马控制客户端(站用户)
ndash XSS漏洞 CSRF漏洞 构造钓鱼页面hellip
mdash上传webshell ndash 控制服务器
bull 件上传漏洞原理 mdash接下来会通过PHP代码实例进讲解
72
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
件上传过程抓包截图
73
$contentType = $_FILES[userfile][type]$filename = $_FILES[userfile][name]
客户端提交的任何变量都可能被伪造
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
件上传漏洞PHP代码剖析
74
如果上传件名为 testphpdoc呢如果是testphp00doc呢
根据PHP官的档说明该值完全可以被伪造客只需修改浏览器的post请求头即可绕过这段代码检查进上传任意类型的件
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
有意思的NULL字符截断问题
bull 何为NULL字符 mdash00
mdashASCII码为0
bull PHP官在2010年12月9日PHP 534版本正式修复了该漏洞 mdashCVE-2006-7243
mdash用了4年时间修补个漏洞 mdashPHP 534之前版本仍然受此漏洞影响
bull 不仅仅是PHP语受此漏洞影响
75
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
判断件类型的安全实践(13)
bull 读取件头标识 mdashPNG(8 bytes)89 50 4E 47 0D 0A 1A 0A
mdashGIF(6 bytes)47 49 46 38 39 61 (GIF89a)
76
JPGJPEG
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
判断件类型的安全实践(23)
bull 件头标识指纹匹配够安全吗
mdashNo
bull 对于GIF图片 mdash补充使用getimagesize()
ndash 限制上传的GIF图片分辨率
77
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
判断件类型的安全实践(33)
bull 对于其他类型件 mdash禁用上传目录的脚本执权限
ndash 例如apache可以使用htaccess ltDirectory uploadgt Allowoverride All ltDirectorygt ltLocation uploadgt Options None Options +IncludesNoExec -ExecCGI RemoveHandler php phtml php3 php4 php5 RemoveType php phtml php3 php4 php5 php_flag engine off php_admin_flag engine off AddType textplain html htm shtml php ltLocationgt
78
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
继续件上传漏洞
bull 即使 mdash检查是否判断了上传件类型及后缀
mdash定义上传件类型白名单 mdash件上传目录禁脚本解析
bull 仍然推荐 mdash定义件名白名单
mdash上传后件统重命名
ndash 杜绝XSS漏洞 件包含漏洞 字符编码漏洞 hellip
79
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
14 字符编码漏洞mdashmdash为什么要了解字符编码漏洞
bull 在某些东国家里这种攻击越来越普遍
bull 很多程序员对这种攻击还不了解
bull 通过分析受字符集漏洞影响的各类Web应用程序我们可以更深的了解和修正此类安全问题
80
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字节流和数据的本质
81
UTF-8编码
Unicode编码 (little-endian)
Unicode编码 (big-endian)
GBK编码
GBK编码
BOMByte Order MarkmdashmdashWindows记事本惹的祸
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
常见的字符编码式
bull SBCS (Single Byte Character Set) mdashiso8859-1
bull MBCS (Multi Byte Character Set) mdashvariable-width encoding (GBKGB2312UTF-8) mdashGBK编码表
bull DBCS (Double Byte Character Set) mdashfixed-width encoding (很少见)
bull Unicode (Wide Character Set) mdashhttpenwikipediaorgwikiUnicode mdashUTF-8是针对Unicode的种可变长度字符编码
82
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字符集处理过程中可能出现的安全问题(13)
bull 上下层使用的字符集不致导致数据的意义出现问题 mdashWeb应用各层之间都需要对数据做出适当的解释
mdash理解不致就会出现问题
bull IE字符集自动识别导致XSS mdashIE会采用ldquo智能rdquo识别技术去识别字符集编码
ndash 根据HTTP Header头里的指定 ndash 根据HTML头部数据自选择
ndash Meta头里指定的Charset
ndash IE 8 Strip-meta tag攻击
83
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字符集处理过程中可能出现的安全问题(23)
bull 错误的进UTF-8解码
bull 对于非法数据的处理理解上不致 mdash替换成或者其他的字符
mdash直接抛弃
mdash截断 mdash这种处理式都可能带来安全问题
84
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字符集处理过程中可能出现的安全问题(33)
bull 某些字符集天的缺陷 mdash如GB2312BIG5等字符集低位包含某些元字符 mdash [ | lt gt ` hellip mdash这样程序即使对字符集完全处理正确在处理字节流时
很可能吃掉上面的这些元字符从造成元字符过滤的匹配失败(bypass filter )
85
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
个MBCS处理的漏洞list
bull Hotmail XSS httpwwwsecurityfocuscomarchive1450723
bull Yahoo webmail xss mdash Yahoo修复过在html属性里出现的字符集问题 mdash 字符集问题不只出现在html属性同样存在于cssjs等地 mdash Yahoo的Filter基于语法分析语法分析的时候为非MBCS字符集 mdash Filter没有处理好在css里的非法字符导致MBCS环境下的xss mdash Exploit
ndash ltstylegt x background url(httpwwwgooglecnchr)background
url(httpcolorredwwwgooglecn) ltstylegt ltdiv id=xgtcodzltdivgt
86
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
个UTF-7处理的漏洞list
bull Microsoft Internet Information Services UTF-7 XSS Vulnerability [MS06-053]
bull Apache2 Undefined Charset UTF-7 XSS Vulnerability
bull XSS with UTF-7 in Google
87
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字符集处理过程漏洞的利用
bull 钓鱼
bull 逃避杀毒软件查杀
bull 规避各种过滤规则 mdashXSS过滤绕过 mdashSQL Injection过滤绕过
mdashPHP magic_code机制绕过
88
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
字符集问题的安全防护
bull 用正确的字符集编码理解数据
bull 理解上下层之间处理数据的式
bull 尽量使用相对安全的编码UTF-8
bull 处理好非法数据
89
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
UTF-8就安全了吗
bull Apache Tomcat Directory Traversal Vulnerability mdash类似于2000年IIS 50的Unicode漏洞 mdashc0aec0ae被解析成
mdashCVE-2008-2938 mdash影响Tomcat 6018之前所有版本
bull 应用程序解析不当样导致漏洞
90
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
15 第三程序漏洞
bull 2009年discuz站点批量被事件中的教训 mdashWeb内容引用代码包含需谨慎
ndash 第三站告链接 ltimg src= httpmalware-script gt
ndash 第三站脚本API ltscript src= httpmalware-scriptgtltscriptgt
ndash 第三站页面嵌 ltiframegtltdivgtltscriptgt
bull Java的Struts 2x框架漏洞 mdashHTTP GET参数中的同名参数处理缺陷
91
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
2009年discuz站点批量被事件(12)
bull 事件过程还原 mdash2009年1月8日1138分 部分使用Discuz搭建论坛的站长发现
论坛首页出现 Hacked by ring04h just for fun 的提示 mdash2009年1月8日1154分 官安全部门发现站点 http
customerdiscuznet 域名被劫持 mdash2009年1月8日1155分 被劫持域名的重新定向作完成 mdash2009年1月8日1215分 官论坛已经发放代码清除产品包
92
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
2009年discuz站点批量被事件(22)
bull 事件原因分析 mdash站长登录Discuz后台首页后 Discuz系统将自动
输出类似如下的代码
mdash攻击者挟持Discuz后台信息通知系统域名并在newsphp里面写恶意代码
93
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Java的Struts 2x框架漏洞分析(14)
bull HTTP Parameter Pollution处理缺陷 mdashhttpwwwexamplecomapptestaaaction
id=cccampid=aaa mdashAction中定义了
ndash private String id public String getid() return id public void setid(String id) thisid = id
94
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Java的Struts 2x框架漏洞分析(24)
bull Action会取到id的值为ldquoccc aaardquo注意中间是有空格的
bull 这种数据是由struts2把两个参数合并成的但是如果我们requestgetParameter(id)拿到的值却只是第个(值为ccc)
95
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Java的Struts 2x框架漏洞分析(34)
bull 以下是问题代码的片段
bull String id = requestgetParameter(ldquoid) if(id=nullampamp idindexOf()gt-1)
hellipSQL注检测代码
业务逻辑代码
String sql = select book_namebook_content from books if (id = null) sql += where book_id like + id +
96
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Java的Struts 2x框架漏洞分析(44)
bull 漏洞利用代码 mdashhttpwwwexamplecomapptest
findUserByIdaction id=aaaaaampid=a union select namepass from user where ltgt
bull 解释 mdash上述代码直接绕过了拦截器的判断因为拦截器
获取的requestgetParameter(id)是第个参数的值aaaaa单引号成功逃避检测
97
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Web应用程序漏洞Top 10 in 2010
98
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Web应用程序漏洞Top 10 in 2013
99
httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
再谈谈平台相关的漏洞
bull Tomcat 4x泄漏件源代码漏洞
bull nginx件类型错误解析漏洞
bull 平台相关弱令空令 mdashFTP SSH 远程桌面 hellip
bull PHP语和解析器漏洞
bull 特定浏览器上的ldquo诡异rdquo漏洞
100
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Tomcat 4x泄漏件源代码漏洞演示
bull 源代码泄漏缺陷
101
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
nginx件类型错误解析漏洞(13)
bull nginx默认以CGI的式支持PHP执 mdash配置件中支持正则表达式
bull CGI式的PHP解释执环境核是环境变量的正确配置
102
[HTTP_HOST][HTTP_CONNECTION][HTTP_USER_AGENT][HTTP_ACCEPT][PATH][SERVER_SIGNATURE][SERVER_SOFTWARE]
[SERVER_NAME][SERVER_ADDR][SERVER_PORT][REMOTE_ADDR][DOCUMENT_ROOT][SERVER_ADMIN][REMOTE_PORT]
[GATEWAY_INTERFACE][SERVER_PROTOCOL][REQUEST_METHOD][QUERY_STRING][REQUEST_URI]
[SCRIPT_NAME][SCRIPT_FILENAME][PATH_INFO][PATH_TRANSLATED][PHP_SELF]
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
nginx件类型错误解析漏洞(23)
bull 假设目标站点存在以下资源 mdashhttpvictimorgcnssjpg
bull 攻击者通过以下URL进访问 mdashhttpvictimorgcnssjpgcnssphp
bull 如果nginx配置件中 mdashcgifix_pathinfo=1 (默认配置)
bull 此时的nginx CGI环境变量设置情况为
103
[SCRIPT_FILENAME]=scriptscnssjpg[PATH_INFO]=cnssphp
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
nginx件类型错误解析漏洞(33)
bull httpvictimorgcnssjpg HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100530 GMT Content-Type imagejpg Content-Length 18Last-Modified Thu 20 May 2010 062634 GMT Connection keep-aliveKeep-Alive timeout=20 Accept-Ranges bytes
bull httpvictimorgcnssjpgcnssphp HTTP11 200 OKServer nginx0632 Date Thu 20 May 2010 100649 GMT Content-Type texthtmlTransfer-Encoding chunked Connection keep-aliveKeep-Alive timeout=20 X-Powered-By PHP526
104
成功实现以PHP来解析任意类型件
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
平台相关弱令空令
bull防御森严的络和系统往往都是被弱令空令轻易击溃
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
PHP语和解析器漏洞
bull PHP官的bug统计
bull CVE的漏洞数据统计
106
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
特定浏览器上的诡异漏洞(12)
bull 你能读懂下面这个URL吗 mdashhttplightlztaobaocom
r=687474703A6E3576312E636F6D5Cttaobaocomaaspid=30760
mdashhttplightlztaobaocomr=httpn5v1comttaobaocomaaspid=30760
bull httpn5v1comttaobaocomaaspid=30760
107
解码之
用户点击后跳转到这个址
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
特定浏览器上的诡异漏洞(22)
bull httpn5v1comttaobaocomaaspid=30760
108
智能纠错
遵循标准
bull httpn5v1comttaobaocomaaspid=30760
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
优秀的程序员
兴趣时刻充满好奇要学习
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
蹩脚的程序员
110
不能以计算机和程序设计为乐
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
111
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
案例讲解
bull 案例某型门户站的渗透纪实
bull 案例某个电脑的渗透纪实
112
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
案例某型门户站的渗透纪实
bull 零扫描 mdashGoogle Hacking
bull 拓扑扫描 mdash域名扫描 主机扫描 服务扫描 hellip
bull 确定渗透发点
bull 渗透过程中的细节问题
bull 总结报告
113
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
案例某个电脑的渗透纪实
bull 社会程学钓鱼案例 mdash邮箱的SMTP认证漏洞
mdash用户安全意识弱
mdash所有应用和络服务都使用单令
ndash 单个令泄露整个身份认证防护体系瘫痪
114
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
案例启示
bull 如果没有漏洞(弱点)攻击法得
bull 安全防护的桶原理 mdash任何个络与系统的安全短板都能成为渗透的跳板和
点
bull 永远不要忽视的因素
115
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
本章内容提要
bull 络与系统渗透基本原理
bull 络与系统渗透案例讲解
bull 渗透测试具
bull 实验讲解
116
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
渗透测试具简介
bull 具分类 mdash自动化程度 ndash 全自动化 ndash 半自动化 ndash 测试
mdash攻击性 ndash 漏洞扫描 ndash 漏洞利用
mdash测试法 ndash 主动测试 ndash 被动测试
117
mdash测试对象 mdash络应用服务
mdashWEB应用SMTPIMAPhelliphellip
mdash操作系统 mdash本地应用服务
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
自动化具or测试
bull 自动化具 mdash优势通用性节省测试时间保证测试的覆盖率 mdash不针对性不强误检率通常较容易触发安全设备
(防墙IDS等)的报警
bull 测试 mdash优势针对性强准确性欺骗性更强 mdash不检测效率低费时费
118
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
再次重申知法守法
119
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
再次重申知法守法
120
刑法修正案(七)在刑法第285条中增加两款(第款第三款)
违反国家规定侵前款规定以外的计算机信息系统或者采其他技术段获取该计算机信息系统中存储处理或者传输的数据或者对该计算机信息系统实施法控制情节严重的处三年以下有期徒刑或者拘役并处或者单处罚情节特别严重的处三年以上七年以下有期徒刑并处罚
提供专门于侵法控制计算机信息系统的程序具或者明知他实施侵法控制计算机信息系统的违法犯罪为为其提供程序具情节严重的依照前款的规定处罚
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Web渗透具mdashmdash测试
bull Firefox的渗透测试相关扩展 mdashFirebug mdashTamperData mdashFireForce mdashHackBar mdashLive HTTP Headers mdashGroundSpeed mdashXHTML Mobile Profile + wml browser + Modify Headers
121
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Firebug
bull 调试具 mdashHTML CSS Javascript mdash络通信数据
bull 编辑具 mdash所见即所得编辑 mdash编辑效果即时效
bull 逆向具 mdash反查页面元素对应代码
ndash HTMLXPATHCSS PATH
122
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
TamperData
bull 实时拦截HTTP请求数据
bull 实时编辑HTTP请求数据 mdash编辑
mdash基于规则的自动替换
bull 内置常用渗透测试攻击向量 mdash可以自编辑维护
123
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Fireforce
bull 基于字典的Web表单认证暴破解 mdashGET
mdashPOST
mdash不支持CAPTCHA机制
124
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
HackBar
bull SQL注 mdash内置多种编码式支持
ndash 数据库编码相关函数 ndash 攻击向量混淆相关函数
bull XSS mdash内置多种编码式支持
ndash 攻击向量混淆相关函数
125
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
Live HTTP Headers
bull HTTP通信数据抓包 mdash支持自定义过滤规则
bull HTTP通信抓包数据重放 mdash支持编辑后重放
mdashGET POST
126
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
GroundSpeed
bull Web表单认证傻瓜破解辅助 mdash自动显示所有表单元素
mdash快速编辑任意表单元素
ndash 节点元素属性的编辑删除
127
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
移动Web应用渗透
bull XHTML Mobile Profile mdash增加桌面版Firefox的移动站点页面支持
ndash 增加applicationvndwapxhtml+xml识别和支持 bull wml browser
mdash告诉Web站点当前浏览器支持WML页面渲染 bull Modify Headers
mdash自定义规则自动替换HTTP请求头 ndash 篡改User-Agent伪装任意浏览器客户端
128
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
实验讲解
bull 实验Web漏洞利用 mdash基于WebGoat
mdash基于定制开发的弱点应用程序
bull 实验系统漏洞利用 mdash基于Metasploit(观看录像)
129
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
参考献(13)
bull 件类型头标识指纹库 httpwwwgarykesslernetlibraryfile_sigshtml
bull Web漏洞知识库 by 扫啊科技 httpwwwsaoatechcomknowledgehtml
bull Advanced SQL Injection httpwwwowasporgimages774Advanced_SQL_Injectionppt
bull OWASP Testing Guide v3 httpswwwowasporgimages556OWASP_Testing_Guide_v3pdf
bull OWASP Top Ten Project httpswwwowasporgindexphpCategoryOWASP_Top_Ten_Project
130
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
参考献(23)
bull Web安全思维导图 httphuangweimeworksWebSecInDepth20html
bull nginx件类型错误解析漏洞 httpwww80seccomnginx-securithtml
bull CVE漏洞统计信息 httpwwwcvedetailscom
bull MySpace Samy蠕技术分析 httpnamblapopulartechhtml
bull 社会程学案例剖析 by 冷漠 httpwwwlengmonetpost404
bull 新浪微博被攻击完整技术分析 httpsitedoubancomwidgetnotes2313210note158756925
131
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
参考献(33)
bull 关于 Discuz 后台信息通知系统域名被劫持 部分站点受到影响的说明 httpwwwdiscuznetthread-1184256-1-1html
bull 渗透测试标执准PTES httpwwwpentest-standardorgindexphpMain_Page
bull How Hackers Target and Hack Your Site httpresourcesinfosecinstitutecomhacking-a-wordpress-site
132
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133
课后思考题
bull XSS与CSRF有什么区别与联系
bull SQL注的全面防御案应如何设计
bull 件上传漏洞如何测试全面防御案应如何设计
bull 调研主流WEB应用开发框架在代码层面做了哪些常见漏洞类型的防御具体是如何实现的历史版本中出现过哪些防御机制被突破的例
133