Web应用手工渗透测试—用SQLMap进行SQL盲注测试

发表于:2014-10-21 13:18

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Linsa.Liu    来源:51Testing软件测试网采编

  简介
  本文主要关注SQL注入,假设读者已经了解一般的SQL注入技术,在我之前的文章中有过介绍,即通过输入不同的参数,等待服务器的反应,之后通过不同的前缀和后缀(suffix and prefix )注入到数据库。本文将更进一步,讨论SQL盲注,如果读者没有任何相关知识储备,建议先去wikipedia学习一下。在继续之前需要提醒一下,如果读者也想要按本文的步骤进行,需要在NOWASP Mutillidae环境搭建好之后先注册一个NOWASP Mutillidae帐号。
  SQL注入前言
  本文演示从web界面注入SQL命令的方法,但不会直接连接到数据库,而是想办法使后端数据库处理程序将我们的查询语句当作SQL命令去执行。本文先描述一些注入基础知识,之后讲解盲注的相关内容。
  Show Time
  这里我以用户名“jonnybravo”和密码“momma”登录,之后进入用户查看页面,位于OWASP 2013 > A1 SQL Injection > Extract data > User Info。要查看用户信息,需要输入用户ID与密码登录,之后就可以看到当前用户的信息了。
  如我之前的文章所提到的那样,这个页面包含SQL注入漏洞,所以我会尝试各种注入方法来操纵数据库,需要使用我之前文章提到的后缀(suffix)与前缀(prefix)的混合。这里我使用的注入语句如下:
  Username: jonnybravo’ or 1=1; –
  该注入语句要做的就是从数据库查询用户jonnybravo,获取数据后立刻终止查询(利用单引号),之后紧接着一条OR语句,由于这是一条“if状态”查询语句,而且这里给出 “or 1=1”,表示该查询永远为真。1=1表示获取数据库中的所有记录,之后的;–表示结束查询,告诉数据库当前语句后面没有其它查询语句了。
  
图1 正常方式查看用户信息
  将payload注入后,服务器泄露了数据库中的所有用户信息。如图2所示:
  
图2 注入payload导致数据库中所有数据泄露
  至此,本文向读者演示了一种基本SQL注入,下面笔者用BackTrack和Samurai 等渗透测试发行版中自带的SQLmap工具向读者演示。要使用SQLmap,只需要打开终端,输入SQLmap并回车,如下图所示:
  如果读者首次使用SQLmap,不需要什么预先操作。如果已经使用过该工具,需要使用—purge-output选项将之前的输出文件删除,如下图所示:
  
图3 将SQLmap output目录中的原输出文件删除
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号