环境: xampp-win32-5.6.3-0-VC11  dvwa-1.0.8

前言

有幸在网上搜到一款非常不错的渗透测试演练系统 — dvwa ,作为学习,演练真的非常强大啊! 在学习的过程中也遇到一些问题,所以这里做学习分享记录。

问题简述

在用dvwa做sql 注入检测时,遇到一个小小的问题 — order by 猜出来的列数跟数据库表中的列数不匹配。(注入时猜出来两个字段,但是实际数据库的表中却有6个字段)。在未了解之前,我一直想当然的以为 order by就是获取数据库表中的列数,在两次实际检测过程中,确实发现这个是我所不能理解的。

问题详情

在发现注入点后,进行猜列数时,用了如下语句:


故此我们猜出有两列,但是我去数据库查看相应的表时,发现字段比这个多

搞定问题

在别人的指导下作了如下分析:

将猜列数语句直接在sql数据库执行,发现他们的结果跟在web页面注入时都是不一致的

而在数据库执行得到的6列则是跟数据库匹配的,难道order by 猜的列数有问题?

最后去注入代码看到源码一下豁然开朗:

$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";

你也看到了,我在mysql执行的语句是 select * ,而 注入代码则是 select first_name, last_name。

小结

网上大多资料说的order by来猜列数,实际是猜查询出的列数,而不是表实际的列数。order by本来就是指定的结果如何order,针对的就是查询结果而不是原表。所以order by猜解得到的列数还跟在后端的逻辑有关。

实用

这个有什么用?我用一个例子来简述。

在注入时,用order by 猜出结果集有两个字段,且两字段名分别为:user pwd (实际数据库表中还有id一字段)

在爆字段值时:当注入语句这样时可能什么也得不到,甚至直接报错:

代码:

and 1=2 union select user, 2 from admin

error:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /usr/local/webroot/cw/about/index.php on line 95

这时我们需要对注入语句进行转换下:

and 1=2 union select concat(id,0x232323,user,0x232323,pwd),2 from admin

这样就能到两字段的值了

sql注入之order by猜列数问题相关推荐

  1. SQL注入之order by注入与limit注入

    SQL注入之order by注入与limit注入 order by注入 什么是order by 判断注入类型 注入方式 1.和union查询一块使用 2.基于if语句盲注(数字型) 3.基于时间的盲注 ...

  2. 如何在SQL Server中导入具有不同列数的平面文件

    Ever been as frustrated as I have when importing flat files to a SQL Server and the format suddenly ...

  3. WEB渗透之SQL 注入

    SQL 注入 文章目录 SQL 注入 前言 1. SQL 注入分类 2. 按照数据库类型 1. 数据库相关知识 1. MYSQL 1. information_schema 2. 常用的函数 2. 判 ...

  4. sql注入详解 一文了解sql注入所有常见方法

    前言 刷完了sqli-labs 对sql注入有了些许认识 在此做个小结与记录 1.什么是sql注入 sql,Structured Query Language,叫做结构化查询语言,管理数据库时用到的一 ...

  5. sql注入(最简单的注入)

    1.加了引号报错,提示多了个引号,判断出是数字型,加了引号没出错,可判断出是字符型 2.and 1=1正确,1=2错误,说明我们添加的语句可被执行,结合第一步可判断出存在数字型注入 3.order b ...

  6. sql注入——day01

    基本的 查库:select schema_name from information_schema.schemata 查表:select table_name from information_sch ...

  7. SQL防注入大全——史上最全的 SQL 注入资料

    什么是 SQL 注入速查表? SQL注入速查表是可以为你提供关于不同种类 SQL注入漏洞 的详细信息的一个资源.这份速查表对于经验丰富的渗透测试人员,或者刚开始接触 Web应用安全 的初学者,都是一份 ...

  8. SQL注入:SQL注入类型(手动)SQL注入的检测

    一.SQL注入流程 1.判断是否有SQL注入漏洞(检测) 2.判断操作系统.数据库和web应用类型 3.获取数据库信息,包括管理员信息及拖库 4.加密信息破解,sqlmap可自动破解 5.提升权限,获 ...

  9. supersqli(SQL注入流程及常用SQL语句)

    目录 一.SQL注入知识学习 1.判断注入类型 (1)数字型注入判断 (2)字符型注入判断 2.猜解sql查询语句中的字段数(order by 的使用) 3.判断显示位爆数据库的名字 4.注释(--+ ...

最新文章

  1. 《Flowable基础二 Flowable是什么》
  2. linux下nano修改并保存
  3. FreeBSD的功能特点
  4. seasar一般性配置
  5. RabbitAdmin 实战
  6. 男女择偶基本心理类型
  7. laravel中Blade模板继承
  8. (转)(c#)数据结构与算法分析 --递归
  9. 输出100-1000之间的水仙花数 是三位数 水仙花数就是 每个位上的数字的三次方的和仍然为原数字 例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方;
  10. curviloft插件怎么用_Curviloft插件|SketchUp草图大师曲线放样插件(Curviloft)下载 v1.7d 免费版 - 比克尔下载...
  11. spline: 计算机曲线简史(转载)
  12. keras-yolo3-master使用记录
  13. 蚌埠学院计算机基础,蚌埠学院电子教务登录
  14. 翟菜花:《完美世界》手游大火,大文娱的卡路里能释放多少热量?
  15. 调用win api将指定名称的打印机设置为默认打印机
  16. 【小程序源码】视频壁纸支持多种分类短视频另外也有静态壁纸
  17. 文件File 的使用
  18. pytorch中Parameter()介绍
  19. 小恐龙游戏挑战:第11天-简单画好小恐龙并上色
  20. 经纬恒润_软件开发实习生_面试经历(电话面试)

热门文章

  1. android sqlitelog,android-Room-SQLiteLog:(1)SQL变量过多
  2. 嵌入式CGI开发之旅——CGI环境变量
  3. Linux虚拟文件系统解析
  4. Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
  5. Vagrant 管理部署 VirtualBox (推荐使用)
  6. SSM(springMVC-spring-mybatis)环境搭建-01-建立Maven-web项目
  7. 看职场老人教你如何平稳度过职场“更年期”
  8. MYSQL内置函数总结
  9. NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红
  10. vi/vim 命令手册(初级篇)