加入收藏 | 设为首页 | 会员中心 | 我要投稿 海洋资讯信息网 (https://www.haijunwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

mssql 运算符 网络安全基础——SQL注入问答

发布时间:2022-10-29 16:30:37 所属栏目:MsSql教程 来源:
导读:  SQL注入问答

  1、倘若空格过滤了,你知道有哪些可以绕过吗?或者说你知道哪些可以替代空格吗?这些是空字符。

  比如un%0aion会被当做union来处理。 假如空格被过滤了,可能的sql语句就会变成:sel
  SQL注入问答
 
  1、倘若空格过滤了,你知道有哪些可以绕过吗?或者说你知道哪些可以替代空格吗?这些是空字符。
 
  比如un%0aion会被当做union来处理。 假如空格被过滤了,可能的sql语句就会变成:select from messages where uid=45or1=1,我们可以使用//来替换空格: **/1=1 另外: %09 %0A %0D + /|–|/ /@–|/ /?–|/ /|%20–%20|/ 都可以替代空格。
 
  2、你知道mysql里有几种注释方式吗?
 
  三种:①.# 这个注释直到该行结束;②./注释多行/;③.–+ 这个注释直到该行结束。
 
  第三种需要解释一下,因为之前我不知道这个方法,说‘–’是注释符我还大概有印象,但是–+就懵。其实是– ,注意–的后面有一个空格。但是在url里你直接空格会被浏览器直接处理掉,就到不了数据库里。所以特意用加号代替。
 
  3、Windows下的Oracle数据库是什么权限?
 
  Windows下的Oracle数据库,必须以system权限运行。
 
  4、id-1,页面如果返回正确页面说明是有注入,那+1可以吗?(+1)
 
  不行,因为加号在url里面是空格的意思。
 
  5、SQL注入和SQL盲注有何差别?
 
  在常规的SQL注入中,应用返回数据库中的数据并呈现给你,而在SQL盲注漏洞中,你只能获取分别与注入中的真假条件相对应的两个不同响应,应用会针对真假条件返回不同的值,但是攻击者无法检索查询结果。
 
  移位运算 与运算 c语言_mssql 运算符_按字节运算和按字运算
 
  6、什么是引发SQL注入漏洞的主要原因?
 
  Web应用未对用户提供的数据进行充分审查和未对输出进行编码是产生问题的主要原因。
 
  7、如果注入语句中的‘=’被过滤?
 
  可以考虑使用like关键字替换:union select password from users where username like admin;
 
  8、什么是堆叠查询(stacked query)?
 
  在单个数据库连接中,执行多个查询序列,是否允许堆叠查询是影响能否利用SQL注入漏洞的重要因素之一。
 
  在MYSQL中,SELECT * FROM members; DROP members;是可以执行的,数据库是肯定支持堆叠查询的,但是让php来执行堆叠查询的sql语句就不一定行了。
 
  9、“select select * from admin”可以执行吗?倘若不可以请说明。
 
  不可以执行,在使用select双层的时候要把第二个括起来,否则无效。
 
  10、/*! ... */是啥意思?
 
  MYSQL数据库特有,如果在注释的开头部分添加一个感叹号并在后面跟上数据库版本编号,那么该注释将被解析成代码,只要数据库版本高于或者等于注释中包含的版本,代码就会被执行。
 
  select 1 /!40119 + 1/
 
  该查询结果:
 
  返回2(MySQL版本为4.01.19或者更高)
 
  返回1(其他情况)
 
  11、如果空格被过滤? 可以考虑使用‘/**/’替换:
 
  union/**/select/**/password/**/from/**/users/**/where/**/username/**/like/**/admin;
 
  注意,如果过滤了关键字,在MySQL中,还可以在关键字内部使用内联注释来绕过:
 
  uni//on//sel//ect//password//fr//om//users//wh//ere//username//like//admin;
 
  移位运算 与运算 c语言_按字节运算和按字运算_mssql 运算符
 
  12、注释符
 
  MSSQL:‘-- ’(注意后面的空格),‘/.../’
 
  MySQL:‘-- ’,‘# ’,‘/.../’,注意,--后面必须要有一个或者多个空格。
 
  Oracle:‘-- ’,‘/.../’
 
  三种数据库中,通用的注释符是‘-- ’
 
  13、SQL注入中的‘+’?
 
  MSSQL:在MSSQL中,“+”运算符被用于字符串连接和加法运算,‘1’+‘1’=‘11’,1+1=2;
 
  MySQL:在MySQL中,“+”运算符只被用于加法运算,‘1’+‘1’=‘2’,1+1=2;
 
  Oracle:在Oracle中,“+”运算符只被用于加法运算mssql 运算符,‘1’+‘1’=‘2’,1+1=2。
 
  14、数据库中字符串的连接符?
 
  MSSQL:‘a’+‘b’=‘ab’
 
  MYSQL:‘a’ ‘b’=‘ab’
 
  Oracle:‘a’||‘b’=‘ab’
 

(编辑:海洋资讯信息网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!