3 SQL注入漏洞利用与防御

  • SQL是访问Oracle、MSQL、 Sybase、 Microsoft
    SQL Server和 Informⅸ等数据库服务器的标准语言
  • 大多Web应用都要与数据库交互,
    • 大多数的Web编程语言也提供可编程的方法来与数据库交互,
    • 如果未对用户可控的键值过滤,就带入数据库运行,那么极有可能产生SQL注入
  • 自SQL数据库应用于Web应用时,
    • SQL注入就已存在,
    • SQL注入是影响互联网企业运营且最破坏性的漏洞之一,
    • 泄露应用程序数据库中的敏感数据,
      • 用户姓名、密码、地址和电话等易被利用的私人信息。
  • 本章重点SQL注入的发展、成因、利用及其防御。

3.1发展历史

  • SOL注入流行前,溢出是最有效的渗透方法。
  • 但经历了数次严重的病毒事件后,管理员的安全意识普遍增强,大部分管理员开始及时安装补丁。
  • 安装补丁之后,溢出程序便没有了用武之地。

  • Web应用程序愈加被黑客关注,因为这些代码一般开发周期比较短,存在缺陷的概率大。
  • 由此,Web开始成为了突破点。

  • 至今Web渗透已经成为渗透测试中很重要的一部分。
  • Web渗透測试中,SQL注入是一种危险系数很高且很常见的
    • 因为Web程序用数据库来存储信息。
  • SQL命令是前台与后合交互的窗口,使数据可传输到Web应用程序。
  • 很多网站会利用用户输入的参数动态形成SQL查询。
  • 攻击者在URL、表单,或者HTP请求头部输入恶意的SQL命令,
    • 使攻击者可不受限制地访问目标站点的数据,如图3-1

3 SQL注入漏洞利用与防御

3.3利用方式

  • 目标网站可能存在注入URL
    • http://www.test.com/showdetail.asp?id=49,
    • 分别在URL后面添加and 1=1或and 1=2
    • http://www.test.com/showdetail.asp?id=49 and1=1
    • http://www.test.com/showdetail.asp?id=49 and1=2
  • 如果这个站点存在注入的话,加上and 1=1,这个页面会返回正常,
  • and 1=2会返错误,由此可判断这是一个注入点。

  • 该URL存在SQL注入漏洞,可通过很多工具快速测试,
  • Sql map和 Pangolin(穿山甲

3.3.1 Sqlmap的使用

1.简介

  • 开源的SQL注入漏洞检测与利用工具,可进行多种数据库的注入检测,
  • 能识别目标系统版本
  • Sqlmap的常用命令

-u URL:检测URL是否存在基本的GET注入
– cookie:在发送请求时一并发送Cookie的值。
要检测的网站需Cookie信息才能访问或想对Cookie信息进行SQL注入检测时,都需用该参数提交相应Cookie数据。
–level(1-5):值越高检测的项目越多,–level3检测 Cookie是否存在注入
–risk:检测风险程度,越高风险越大,成功概率在某些情况下更高。
-p:指定注入参数。
-r:POST注入时指定存储POST请求的文件。
–dbs:列出网站的数据库。
–tables:列出网站数据库中的表。
–columns:列出网站数据库中的列。
–dump:输出数据。
-D(-T-C):指定数据库(表或列)。
–current-db:列出当前数据库。
–current-user:列出数据库用户。
–passwords:列出数据库密码Hash。

2.使用

  • Kali Linux是基于Debian的 Linux发行版,
  • 用于数字取证、渗透测试和黑客攻防的操作系统。
  • Kali Linux中的 Sqlmap为例
  • 打开终端输入: SQLmap-h,如图3-2

3 SQL注入漏洞利用与防御

  • 基本流程
  • 终端输入sqlmap -u http://www.test.com/test.php?id=4,
  • 检测是否存在注入。
  • 经检测此URL可能存在的注入,如图3-3

3 SQL注入漏洞利用与防御

3.3.2 Pangolin

1.简介

  • 帮助渗透测试人员进行SQL注入测试的安全工具,如图3-10。
  • 支持国内外主流的数据库,
    • Access、DB2、 Informix、
    • Microsoft SQL Server2000、2005、 2008、
    • MYSQL、 Oracle、 Postgresql
    • Sqlite3、 Sybase

3 SQL注入漏洞利用与防御

  • 全面的数据库支持。
  • 独创的自动关键字分析能够减少人为操作,且判断结果准确。
  • 独创的内容大小判断方法能够减少网络数据流量
  • 最大化的 union操作能够极大地提高SQL注入速度。
  • 预登录功能,在需要验证的情况下照样注入。
  • 支持代理服务。
  • 支持HTPS。
  • 自定义HTTP标题头功能。
  • 多种方法绕过防火墙过澽。
  • 注入站(点)管理功能。
  • 数据导出