vlambda博客
学习文章列表

SQL注入不仅仅是or 1=1(一)

SQL注入不仅仅是or 1=1(一)
SQL注入不仅仅是or 1=1(一)

SQL注入不仅仅是or 1=1(一)

1

注释符

Mysql:使用#、--空格、/**/进行注释

SqlServer:使用--、/**/进行注释

Oracle:使用--进行注释

2

字符串拼接

MySql:'test'空格'ing'、CONCAT('test','ing')

SqlServer:'test'+'ing'

Oracle:'test'||'ing'

3

Union联合查询

Mysql和SqlServer可使用information_schema进行库表查询

Oracle可使用all_tables、all_tab_columns进行库表查询

4

数据库版本查询

Mysql:select @@version

SqlServer:select @@version

Oracle:select banner from v$version

5

Oracle

Oracle select语句后需拼接from表名,内置表为dual

6

Mysql

不同版本mysql属性

SQL注入不仅仅是or 1=1(一)

Mysql单引号隐患

为规避单引号转义的场景,可通过 password like 0x4125、password like char(65,37)来替换password like ‘A%’

7

盲注也可以使用union select

Union select不仅应用于正常的SQL注入,还可应用于盲注类型,为避免substring字符比对的操作复杂性,可与dnslog夹带数据协同出现。例,ceye.io dns域名服务商。

Mysql可使用load_file

SQL注入不仅仅是or 1=1(一)


SQL注入不仅仅是or 1=1(一)


DNS夹带采用DNS隧道方式,通过子域名或TXT位置夹带敏感信息通信,查询A、cname、TXT等记录以绕过安全防护策略,以日志形式出现在受控域名解析服务器上,被attacker获取解析、信息重组。
Oracle可使用UTL_HTTP.request函数,http请求夹带类似dnslog,以GET资源请求形式拼接敏感信息,在web服务器请求日志中获取、重组敏感信息。