sql注入之order by猜列数问题
环境: 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猜列数问题相关推荐
- SQL注入之order by注入与limit注入
SQL注入之order by注入与limit注入 order by注入 什么是order by 判断注入类型 注入方式 1.和union查询一块使用 2.基于if语句盲注(数字型) 3.基于时间的盲注 ...
- 如何在SQL Server中导入具有不同列数的平面文件
Ever been as frustrated as I have when importing flat files to a SQL Server and the format suddenly ...
- WEB渗透之SQL 注入
SQL 注入 文章目录 SQL 注入 前言 1. SQL 注入分类 2. 按照数据库类型 1. 数据库相关知识 1. MYSQL 1. information_schema 2. 常用的函数 2. 判 ...
- sql注入详解 一文了解sql注入所有常见方法
前言 刷完了sqli-labs 对sql注入有了些许认识 在此做个小结与记录 1.什么是sql注入 sql,Structured Query Language,叫做结构化查询语言,管理数据库时用到的一 ...
- sql注入(最简单的注入)
1.加了引号报错,提示多了个引号,判断出是数字型,加了引号没出错,可判断出是字符型 2.and 1=1正确,1=2错误,说明我们添加的语句可被执行,结合第一步可判断出存在数字型注入 3.order b ...
- sql注入——day01
基本的 查库:select schema_name from information_schema.schemata 查表:select table_name from information_sch ...
- SQL防注入大全——史上最全的 SQL 注入资料
什么是 SQL 注入速查表? SQL注入速查表是可以为你提供关于不同种类 SQL注入漏洞 的详细信息的一个资源.这份速查表对于经验丰富的渗透测试人员,或者刚开始接触 Web应用安全 的初学者,都是一份 ...
- SQL注入:SQL注入类型(手动)SQL注入的检测
一.SQL注入流程 1.判断是否有SQL注入漏洞(检测) 2.判断操作系统.数据库和web应用类型 3.获取数据库信息,包括管理员信息及拖库 4.加密信息破解,sqlmap可自动破解 5.提升权限,获 ...
- supersqli(SQL注入流程及常用SQL语句)
目录 一.SQL注入知识学习 1.判断注入类型 (1)数字型注入判断 (2)字符型注入判断 2.猜解sql查询语句中的字段数(order by 的使用) 3.判断显示位爆数据库的名字 4.注释(--+ ...
最新文章
- 《Flowable基础二 Flowable是什么》
- linux下nano修改并保存
- FreeBSD的功能特点
- seasar一般性配置
- RabbitAdmin 实战
- 男女择偶基本心理类型
- laravel中Blade模板继承
- (转)(c#)数据结构与算法分析 --递归
- 输出100-1000之间的水仙花数 是三位数 水仙花数就是 每个位上的数字的三次方的和仍然为原数字 例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方;
- curviloft插件怎么用_Curviloft插件|SketchUp草图大师曲线放样插件(Curviloft)下载 v1.7d 免费版 - 比克尔下载...
- spline: 计算机曲线简史(转载)
- keras-yolo3-master使用记录
- 蚌埠学院计算机基础,蚌埠学院电子教务登录
- 翟菜花:《完美世界》手游大火,大文娱的卡路里能释放多少热量?
- 调用win api将指定名称的打印机设置为默认打印机
- 【小程序源码】视频壁纸支持多种分类短视频另外也有静态壁纸
- 文件File 的使用
- pytorch中Parameter()介绍
- 小恐龙游戏挑战:第11天-简单画好小恐龙并上色
- 经纬恒润_软件开发实习生_面试经历(电话面试)
热门文章
- android sqlitelog,android-Room-SQLiteLog:(1)SQL变量过多
- 嵌入式CGI开发之旅——CGI环境变量
- Linux虚拟文件系统解析
- Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
- Vagrant 管理部署 VirtualBox (推荐使用)
- SSM(springMVC-spring-mybatis)环境搭建-01-建立Maven-web项目
- 看职场老人教你如何平稳度过职场“更年期”
- MYSQL内置函数总结
- NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红
- vi/vim 命令手册(初级篇)