目录

  • 1 实验环境
  • 2 准备工作
  • 3 判断是否存在SQL注入点及注入的类型
  • 4 结论:

1 实验环境

实验靶场——虚拟机(IP为172.16.1.1):本节实验靶场是在win2008系统上基于phpstudy搭建的一个简单网站,win2008及phpstudy的安装过程可以参考《【语言环境】WAMP环境部署及优化—以win2008R2SP1为操作系统》,网站的搭建过程可以参考《【(SQL+HTML+PHP)综合】一个简单论坛网站的综合开发案例》

注入工具——真实机:本实验利用火狐浏览器来实现union注入,为方便注入过程的编码,建议安装一个扩展插件harkbar,安装过程参考《HackBar免费版安装方法》由于该教程中的2.1.3harkbar我安装后无法正常使用,就安装了HackBar Quantum来代替。安装后出现下图左侧的东西。

2 准备工作

利用御剑后台扫描珍藏版扫描网站后台。
(1)下载御剑后台扫描珍藏版,并打开御剑后台扫描工具。

(2)按照如下要求填写。

(3)扫描完成后,如下所示。采用御剑进行扫描时,也是遵循爆破的原理,御剑有自己的字典。

3 判断是否存在SQL注入点及注入的类型

在该阶段主要是尝试不同的输入参数,根据网页反馈信息来判断是否存在SQL注入点以及注入类型,如是否是字符型还是数值型,是否有布尔状态,是否存在延迟注入等。首先用浏览器访问我们的留言论坛,并点击第一条留言进入测试界面。然后进行如下四步测试。


(1)将参数修改为?id=5,并刷新,看到页面变化如下,弹出第5条留言内容,由此可推测见后台是根据id参数的不同来反馈不同信息,因此推测留言内容极有可能是存在数据库中,可控参数id与数据库存在交互,很可能存在sql注入。

(2)判断注入类型为字符型还是数字型。将参数修改为?id=5'id=5",并刷新,看到页面变化如下。

  • 如果出现上述这种报错信息,错误发生在单引号附近,说明此注入点可能为数字型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为数字型,则sql语句为select * from table where id=5,当输入?id=5‘,时,sql语句变为select * from table where id=5',说明单引号之前都是正确的,说明单引号是多余的。
  • 如果出现类似下述这种报错信息,错误发生在数字附近,说明此注入点可能为字符型注入。具体分析如下:
    猜测原sql语句可能为:select * from table where id=$id。假如id为字符型,则sql语句为select * from table where id='5',当输入?id=5‘,时,sql语句变为select * from table where id='5'',显示出了数字,是字符型注入。

(3) 测试页面是否有布尔类型的状态。修改参数为①?id=5 and 1=1;②?id=5 and 1=2。这两者页面回显不一样,说明可能有布尔类型的状态。

  • 当参数为?id=5 and 1=1;返回页面与原页面一致 。通过该参数我们可以分析得到该注入数据类型为数值型,原因如下:
    ①猜测为数值型,则后台SQL语句为 select * from table where id=5 and 1=1,where语句判断条件为真且id=5,语句正常执行。
    ②猜测为字符型,则后台SQL语句为 select * from table where id=‘5 and 1=1’,where语句将找不到id为‘5 and 1=1’的参数,语句执行失败。
  • 当参数为 ?id=5 and 1=2,由于 and 1=2 为假 ,也就是查询条件[where id=5 and 1=2] 恒假,这样的sql语句在数据库中执行后,没有返回结果,如下图所示。也就是说是否能正常回显内容与语句的真假性有关。

(4) 判断参数是否存在延迟注入。按F12打开调试面板,修改参数为?id=5 and sleep(5),并刷新。可以看到sleep语句对网页的响应起到作用,也就是意味着存在延迟注入的可能。

4 结论:

(1)因为id参数是用户可控的,会随请求带入到数据库中执行并回显相应内容,可能是一个注入点。
(2)第一步当id变化时,页面回显响应变化,首先考虑联合注入
(3)第二步,加单引号或双引号,当有报错时,可考虑报错注入;
(4)当第二步没变化,进行第三步,当页面有布尔类型的状态,可考虑布尔盲注;
(5)若都不行,进行第四步,考虑延时注入。
(6)从联合注入到盲注以及延迟注入,其时间人力成本逐步增大,尽可能选择低成本方式进行注入。

【SQL注入-02】SQL注入点的简单判断相关推荐

  1. 【SQL注入】联合查询(最简单的注入方法)

    目录 一.介绍: 二.原理: 三.前提条件 四.利用过程 一.介绍: 是最简单的一种注入方法 联合查询注入  报错查询注入  布尔型注入  延时注入  堆叠查询注入 二.原理: 就是可合并多个查询的结 ...

  2. java sql inj_Java防止SQL注入的几个途径

    java防SQL注入,最简单的办法是杜绝SQL拼接,SQL注入攻击能得逞是因为在原有SQL语句中加入了新的逻辑,如果使用PreparedStatement来代替Statement来执行SQL语句,其后 ...

  3. SQL注入之MYSQL注入总结

    简介 information_schema是用于存储数据库元数据的表,它保存了数据库名,表名,列名等信息. 让我们从爆破表名到了可以直接查询. information_schema是MySQL5.0以 ...

  4. 关于sql注入之cookie注入

    小知识:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后 ...

  5. SQL注入天书-ASP注入漏洞全接触

    引     言                 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当大一部分程序 ...

  6. sql注入利用_SQL注入:这是什么? 原因和利用

    sql注入利用 摘要 (Summary) Many security vulnerabilities are discovered, patched, and go away forever. Som ...

  7. sql server注入_SQL注入:SQL Server中的介绍和预防方法

    sql server注入 A SQL injection attack is one of the most commonly used hacking techniques. It allows h ...

  8. 注入攻击-SQL注入和代码注入

    注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...

  9. sql 注入 预防_SQL注入:检测和预防

    sql 注入 预防 摘要 (Summary) With an understanding of what SQL injection is and why it is important to an ...

  10. WEB攻防-通用漏洞SQL读写注入ACCESS偏移注入MYSQLMSSQLPostgreSQL

    目录 知识点 详细 ACCESS偏移注入 读取路径 案例演示 MYSQL-root高权限读写注入 PostgreSQL-高权限读写注入 MSSQL-sa高权限读写执行注入 知识点 1.Access偏移 ...

最新文章

  1. 清华计算机系上热搜!近 9 成优秀毕业生放弃留学,前 50 名 41 人留校深造......
  2. LoadRunner系统架构简介与运行原理
  3. tomcat源码研究
  4. 哈罗单车怎么关锁还车_记者体验临沂共享单车定点还车 停错地方关不上锁
  5. 矩阵快速幂 HDU3483
  6. Nginx + PHP(php-fpm)遇到的502 Bad Gateway错误
  7. C#LeetCode刷题之#674-最长连续递增序列( Longest Continuous Increasing Subsequence)
  8. [C++]Linux之C编程异常[true未定义解决方案]
  9. oracle crs 0184,ORACLE-RAC启动失败:CRS-0184: Cannot communicate with the CRS daem
  10. DOM和Events
  11. 台式计算机进入安全模式蓝屏,电脑进安全模式蓝屏怎么办
  12. 戴尔将为奔驰多款车型设计专业的车载智能系统
  13. 做量化交易需要了解的国外在线量化平台有哪些?
  14. Android GridView实现自定义日程表课表
  15. 打造全栈安全防护体系,华为云等保合规解决方案帮企业30天过等保
  16. 写封信给2010年的自己
  17. 某东 appck 转pt_pin 转wq_skey
  18. 使用HTML+CSS制作加载动画
  19. oracle表空间一般建多大,Oracle表空间创建参数解析
  20. HTML的绝对布局和相对布局的区别

热门文章

  1. lg2用计算机怎么算,lg计算器(log计算器在线)
  2. 前端基础语言HTML、CSS 和 JavaScript 学习指南
  3. matlab yalmip cplex,关于 cplex+matlab+yalmip问题
  4. 集体智慧编程第二章之提供推荐
  5. jQuery源码下载和编译
  6. URLDecoder解码异常 URLDecoder: Illegal hex characters in escape (%) pattern - For input string: “xxx“
  7. 基于PHP+MySQL图书管理系统的设计与实现
  8. idea在mac版怎么配置svn_Mac安装svn客户端
  9. VS2010-MFC(常用控件:标签控件Tab Control 下)
  10. 网关支付、银联代扣通道、快捷支付、银行卡支付分别是怎么样进行支付的?