工具简介

  • SQLMAP: 一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多强大的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令。
  • 常见参数使用
--sql-shell 执行SQL命令
--OS-cmd 执行系统命令
--OS-shell 与系统Shell交互
-r 加载外部请求包
--data=DATA 通过POST发送数据字符串
--proxy=PROXY 使用HTTP代理链接到目标URL
--tamper=TAMPER 使用给定的脚本篡改注入数据
--current-user 获取当前用户名称
--current-db 获取当前数据库名称
--cookie 设置Cookie值
--dbs 列出所有数据库
--tables 列出数据库中的表

SQL注入的危害

  • 1.绕过登录验证:使用万能密码登录网站后台等。
  • 2.获取敏感数据:获取网站管理员帐号、密码等。
  • 3.文件系统操作:列目录,读取、写入文件等。
  • 4.注册表操作:读取、写入、删除注册表等。
  • 5.执行系统命令:远程执行命令。

解决方案

  • 1.过滤:通过对SQL关键字和关键符号的过滤来避免SQL注入漏洞的发生

    • 优点
      业务改动量小,部署方便,是安全防护软件/硬件常用的解决方案。
    • 缺点
      基于黑名单的工作原理,容易产生误报或被绕过。
  • 2.编码:基于各类数据库定义的关键字和符号的转义规则将用户输入进行转义后组成SQL语句
    • 优点
      不影响正常请求且不容易被绕过,OWASP ESAPI项目提供了这种解决方案。
    • 缺点
      整改需要一定的工作量,需要数据库自身的支持,且理论上仍存在的绕过风险。
  • 3.预编译:基于各种语言的预编译功能,先将SQL语句进行编译,用户输入的内容只会被当做参数传入,不会被编译为命令
    • 优点
      从根本上杜绝了SQL发生的可能性。
    • 缺点
      业务改动量大,建议新开发的项目均采用此种方式避免SQL注入攻击的产生。

实验一:通过sql注入获取当前数据库名和mysql登录名

若网站存在sql注入,且具有显示数据功能,那么我们可以通过拼接参数进行表的联合查询来盗取所需数据

构造sql查找回显位置:在url后面加上?id=-1' union select 1,2,3;--+得知回显位置为查询数据集的第二和第三列

构造sql查询当前数据库名和mysql登录名:在url后面加上?id=-1' union select 1,database(),user(); --+

实验二:使用万能密码登录具有sql注入漏洞的网站

万能密码1' or 1=1 limit 1; #(原理在于利用引号的闭合,or运算,以及注释#)登录

实验三:使用Sqlmap获取具有sql注入漏洞的网站的数据库信息(可进行拖库)

使用BurpSuite抓取报文

使用sqlmap -r /etc/test –dbs获取所有数据库名称

初级安全入门——SQL注入的原理与利用的更多相关文章

  1. 初级安全入门——XSS注入的原理与利用

    XSS的简单介绍 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者 ...

  2. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  3. SQL注入的原理以及危害

    SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符 ...

  4. 【渗透课程】第五篇-SQL注入的原理

    哈哈哈,讲到注入了.我想给大家讲注入的原理.这个我们前面的前言篇就说过,所谓的SQL注入就是,绕过数据库验证机制直接执行SQL语句.怎么说呢,我们先讲一个概念吧! 网站和网页的区别 单纯的网页是静态的 ...

  5. 简单说说mybatis是防止SQL注入的原理

    mybatis是如何防止SQL注入的 1.首先看一下下面两个sql语句的区别: <select id="selectByNameAndPassword" parameterT ...

  6. PHP代码审计入门(SQL注入漏洞挖掘基础)

    SQL注入漏洞 SQL注入经常出现在登陆页面.和获取HTTP头(user-agent/client-ip等).订单处理等地方,因为这几个地方是业务相对复杂的,登陆页面的注入现在来说大多数是发生在HTT ...

  7. SQL注入的原理及一般步骤

    原理 SQL注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后该字符串传递到SQL Server的实例以进行分析和执行.任何构成SQL语句的过程都应进行注入检查,因为SQL Serv ...

  8. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  9. Java学习笔记47(JDBC、SQL注入攻击原理以及解决)

    JDBC:java的数据库连接 JDBC本质是一套API,由开发公司定义的类和接口 这里使用mysql驱动,是一套类库,实现了接口 驱动程序类库,实现接口重写方法,由驱动程序操作数据库 JDBC操作步 ...

随机推荐

  1. eslint 知识点

    ESlint和webpack集成,在babel编译代码开始前,进行代码规范检测. eslint的配置方式.比较多元化: js注释 .eslintrc.*文件 package.json里面配置eslin ...

  2. 设计模式-责任链模式Chain of Responsibility)

    一.定义 职责链模式是一种对象的行为模式.在职责链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道链 ...

  3. R3注入的四种方式

    DLL注入 1.首先要获取想要注入的进程句柄(OpenProcess) 2.从要注入的进程的地址空间中分配一段内存(VirtualAllocEx) 3.往分配的内存位置写入要注入的DLL名称(Writ ...

  4. Kafka三款监控工具比较

    在之前的博客中,介绍了Kafka Web Console这个监控工具,在生产环境中使用,运行一段时间后,发现该工具会和Kafka生产者.消费者.ZooKeeper建立大量连接,从而导致网络阻塞.并且这 ...

  5. TCP加速锐速SS(ServerSpeeder)破解版一键安装

    速(serverspeeder),是一款TCP加速程序,能够增强VPS/服务器连接的稳定性,且有效的提高服务器的带宽利用率,进而提高访问速度.老左经常看到论坛.群里有用户提到锐速这款软件可以提高VPS ...

  6. 安装tensorflow,那叫一个坑啊

    最近,项目团队需要研究并应用AI的技术,在具体的产品实施环节中使用.之前的几个项目,是委托武汉大学给做的,基于keras框架,实现了一些图像识别的项目. 这不,上方希望自己能够掌握一些常用且成熟的AI ...

  7. MySQL Binlog解析

    https://yq.aliyun.com/articles/238364?spm=5176.8067842.tagmain.52.73PjU3 摘要: 概述 MySQL的安装可以参考:Linux(C ...

  8. Windows 消息【二】窗口函数

    前一篇文章讲到非队列消息会直接把消息Dispatch到窗口函数上,窗口函数长什么样? //就是一个大case分支 //要想拦截消息,override窗口函数是一个办法! procedure TCust ...

  9. ThinkPHP 3.1.2 CURD特性 -3

    一.ThinkPHP 3 的CURD介绍  (了解) 二.ThinkPHP 3 读取数据    (重点) 对数据的读取 Read $m=new Model('User'); $m=M('User'); ...

  10. VB编程插件AmicForVB插件

    VB编程插件AmicForVB插件下载地址http://www.vbgood.com/thread-32788-1-1.htmlhttp://www.vbgood.com/forum.php?mod= ...