我们可以利用sql报错帮助进行sql注入,这里以sql server 为例:

sql查询时,若用group by子句时,该子句中的字段必须跟select 条件中的字段(非聚合函数)完全匹配,如果是select * ,那就必须将该表中所有列名都包含在group by 中;若少了哪个,就会报错,报错中会提示如下;

选择列表中的列 '列名'无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

这个提示的列名是按该表中的顺序来的,这时我们可以利用这点进行sql注入中枚举所有列的工作;

先使用 select * from 表名, having 1=1

这时报错中提示的便是第一个列名,

然后 select * from 表名, group by 第一个列名

这时报错中提示的便是第二个列名,

以此类推,便枚举出所有列

类似的,同过报错提示,还可以知道许多信息,比如,查询条件中与列名实际类型不符合时,会有类型转换失败提示,如:

select * from Class
where name=3

会提示:在将 nvarchar 值 '高数' 转换成数据类型 int 时失败。

这样我们就能知道 name 列的第一行内容;(在我尝试时发现报错都是尝试将字符转int,所以列名本来为int的,就无法使用,不知对不对?)

或where name=11/USER

提示:在将 nvarchar 值 'dbo' 转换成数据类型 int 时失败。

这样得到user变量的值(这个可用在全局变量和内置函数上,如@@version等等,据说还可以知道任意列名的值,但我没成功)

等等。

当然,数据库的报错一般情况下不会直接显示在应用界面,出现在应用界面的提示完全由程序决定;(ps:想必这也是会有错误页面的原因)!

转载于:https://www.cnblogs.com/zjdyl/p/4248950.html

利用sql报错帮助进行sql注入相关推荐

  1. java代码中执行sql报错:java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字

    最近写了特别多的数据库同步接口,需要在java程序中拼接大段的sql,然后再提交执行,出现了很多次ORA-00923错误,都有点见怪不怪了. 比如下面这段代码,在执行 db.execute(inser ...

  2. php sql报错1054 in,sql语句拼接 报错

    1054:Unknown column 'a.first_letter' in 'where clause' 但数据表是有first_letter这个字段的 [ SQL语句 ] : SELECT a. ...

  3. beetlsql报错“请指定Sql类型“的解决方案

    解决 beetlsql使用dao自定义SQL语句时,有些情况下会报错"请指定Sql类型",这时需要在dao方法上加上@SqlStatement注解. 例如: @SqlResourc ...

  4. Xshell安装sql报错:The GPG keys listed for the “MySQL 8.0 Community Server“ repository are already instal

    文章目录 Xshell安装sql报错:The GPG keys listed for the "MySQL 8.0 Community Server" repository are ...

  5. Xshell安装sql报错:······ RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#3a79bd29)

    文章目录 Xshell安装sql报错:······ RSA sha1 ((MD5) PGP) md5 NOT OK (MISSING KEYS: (MD5) PGP#3a79bd29) 报错截图: 分 ...

  6. 数据库执行sql报错Got a packet bigger than 'max_allowed_packet' bytes及重启mysql

    准备在mysql上使用数据库A,但mysql5经过重装后,上面的数据库已丢失,只得通过之前备份的A.sql重新生成数据库A. 1.执行sql报错 在执行A.sql的过程中,出现如下错误:Got a p ...

  7. DB2 sql报错后查证原因与解决问题的方法

    DB2 sql报错后查证原因与解决问题的方法 参考文章: (1)DB2 sql报错后查证原因与解决问题的方法 (2)https://www.cnblogs.com/BradMiller/p/31978 ...

  8. mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法

    mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法 参考文章: (1)mybatis项目报错:java.sql.SQLException: ...

  9. 一篇文章让你解决sql报错check the manual that corresponds to your MySQL server version for the right syntax to

    一篇文章让你解决sql报错 反馈 因为这一个问题,找到了很多类似问题,你在看到这篇博客时,可能不是这个,但是一定是下面其中一个: Mysql错误:check the manual that corre ...

最新文章

  1. 利用Unity自带的合图切割功能将合图切割成子图
  2. django一个html先后两个form,django 一个页面两个表单 怎么提交
  3. 微信开发教程(4)——高级群发接口
  4. c语言去尾法和进一法的例子,《去尾法与进一法》教学案例与反思
  5. json反射java对象_Jackson通过反射将Json转化为java对象
  6. go语言io reader_go语言之IO操作(待补充)
  7. halcon中面到面的距离_halcon学习笔记——(8)由标定板得到测量平面位姿-阿里云开发者社区...
  8. html5 微格式,HTML5 微格式和相关的属性名称
  9. mysql 113_Centos 下 can't connect mysql server 113
  10. qt截图怎样实现橡皮擦_利用QT实现截屏的四种方法
  11. caffe---之eltwise层
  12. at shutdown 不起作用_at胎是什么胎
  13. Windows下编译DCMTK
  14. PyTorch中文教程 | (10) 对抗性示例生成
  15. 使用浏览器从网页下载音频文件
  16. 蛋白质降解技术中常用的蛋白酶(一)
  17. VUCA时代下,如何有效提高项目成功率?
  18. 计算机在语文教学中,计算机技术在语文教学中的运用
  19. wordcloud词云可视化
  20. android 单点跟长按的区别,单点触控和多点触控区别是什么?原理分析

热门文章

  1. 网站内链优化中有哪些常见的形式?
  2. 企业网站外链发布有技巧
  3. 网站建设注重用户体验尤为重要
  4. zeroc ice php,ZeroC ICE+PHP整合
  5. hive json解析_Spark 基础解析
  6. linux利用vi挂载磁盘,如何在linux环境上挂载磁盘
  7. android listview 不显示_ListView详细介绍与使用
  8. 使用机器学习检测TLS 恶意加密流——业界调研***有开源的数据集,包括恶意证书的,以及恶意tls pcap报文***...
  9. EvalAI使用——类似kaggle的开源平台,不过没有kernel fork功能,比较蛋疼
  10. Self Organizing Maps (SOM): 一种基于神经网络的聚类算法