Git Product home page Git Product logo

ratproxy's Introduction

===========================================================
ratproxy - passive web application security assessment tool
===========================================================

  http://code.google.com/p/ratproxy

  * Written and maintained by Michal Zalewski <[email protected]>.
  * Copyright 2007, 2008 Google Inc, rights reserved.
  * Released under terms and conditions of the Apache License, version 2.0. 

-----------------
What is ratproxy?
-----------------

Ratproxy is a semi-automated, largely passive web application security audit 
tool. It is meant to complement active crawlers and manual proxies more 
commonly used for this task, and is optimized specifically for an accurate and 
sensitive detection, and automatic annotation, of potential problems and 
security-relevant design patterns based on the observation of existing, 
user-initiated traffic in complex web 2.0 environments. The approach taken with 
ratproxy offers several important advantages over more traditional methods:

  * No risk of disruptions. In the default operating mode, tool does not 
    generate a high volume of attack-simulating traffic, and as such may be 
    safely employed against production systems at will, for all types of ad hoc,
    post-release audits. Active scanners may trigger DoS conditions or persistent
    XSSes, and hence are poorly suited for live platforms. 

  * Low effort, high yield. Compared to active scanners or fully manual 
    proxy-based testing, ratproxy assessments take very little time or bandwidth
    to run, and proceed in an intuitive, distraction-free manner - yet provide a
    good insight into the inner workings of a product, and the potential security
    vulnerabilities therein. They also afford a consistent and predictable 
    coverage of user-accessible features. 

  * Preserved control flow of human interaction. By silently following the 
    browser, the coverage in locations protected by nonces, during other 
    operations valid only under certain circumstances, or during dynamic events 
    such as cross-domain Referer data disclosure, is greatly enhanced. 
    Brute-force crawlers and fuzzers usually have no way to explore these areas
    in a reliable manner. 

  * WYSIWYG data on script behavior. Javascript interfaces and event handlers 
    are explored precisely to a degree they are used in the browser, with no need
    for complex guesswork or simulations. Active scanners often have a 
    significant difficulty exploring JSON responses, XMLHttpRequest() behavior, 
    UI-triggered event data flow, and the like. 

  * Easy process integration. The proxy can be transparently integrated into 
    an existing manual security testing or interface QA processes without 
    introducing a significant setup or operator training overhead. 

-----------------------
Is it worth trying out?
-----------------------

There are numerous alternative proxy tools meant to aid security auditors - 
most notably WebScarab, Paros, Burp, and ProxMon. Stick with whatever suits 
your needs, as long as you get the data you need in the format you like.

That said, ratproxy is there for a reason. It is designed specifically to 
deliver concise reports that focus on prioritized issues of clear relevance to 
contemporary web 2.0 applications, and to do so in a hands-off, repeatable 
manner. It should not overwhelm you with raw HTTP traffic dumps, and it goes 
far beyond simply providing a framework to tamper with the application by hand.

Ratproxy implements a number of fairly advanced and unique checks based on our 
experience with these applications, as well as all the related browser quirks 
and content handling oddities. It features a sophisticated content-sniffing 
functionality capable of distinguishing between stylesheets and Javascript code 
snippets, supports SSL man-in-the-middle, on the fly Flash ActionScript
decompilation, and even offers an option to confirm high-likelihood flaw 
candidates with very lightweight, a built-in active testing module.

Last but not least, if you are undecided, the proxy may be easily chained with 
third-party security testing proxies of your choice.

----------------------------------
How does it avoid false positives?
----------------------------------

Operating in a non-disruptive mode makes the process of discovering security 
flaws particularly challenging, as the presence of some vulnerabilities must be 
deduced based on very subtle, not always reliable cues - and even in active 
testing modes, ratproxy strives to minimize the amount of rogue traffic 
generated, and side effects caused.

The set of checks implemented by ratproxy is outlined later on - but just as 
importantly, underneath all the individual check logic, the proxy uses a number 
of passively or semi-passively gathered signals to more accurately prioritize 
reported problems and reduce the number of false alarms as much as possible. 
The five core properties examined for a large number of checks are:

  * What the declared and actually detected MIME type for the document is. 
    This is a fairly important signal, as many problems manifest themselves 
    only in presence of subtle mismatches between these two - whereas other 
    issues need to be treated as higher or lower priority based on this data. 
    More fundamentally, the distinction between certain classes of content - such
    as "renderables" that may be displayed inline by the browser - is 
    very important to many checks. 

  * How pages respond to having cookie-based authentication removed. This 
    provides useful information on whether the resource is likely to contain 
    user-specific data, amongst other things. Carefully preselected requests that
    fail some security checks are replayed as-is, but with authentication data 
    removed; responses are then compared, with virtually no risk of undesirable 
    side effects in common applications. 

  * Whether requests seem to contain non-trivial, sufficiently complex 
    security tokens, or other mechanisms that may make the URL difficult to 
    predict. This provides information needed to determine the presence of XSRF
    defenses, to detect cross-domain token leakage, and more. (In active testing
    mode, the function of such tokens is further validated by replaying the
    request with modified values.) 

  * Whether any non-trivial parts of the query are echoed back in the response, 
    and in what context. This is used to pick particularly interesting 
    candidates for XSS testing - or, in active mode, to schedule low-overhead,
    lightweight probes. 

  * Whether the interaction occurs on a boundary of a set of domains defined 
    by runtime settings as the trusted environment subjected to the audit, and
    the rest of the world. Many boundary behaviors have a special significance,
    as they outline cross-domain trust patterns and information disclosure 
    routes.

In addition to this, several places employ check-specific logic to further 
fine-tune the results.

------------------------------------
What specific tests are implemented?
------------------------------------

Key low-level check groups implemented by ratproxy are:

  * Potentially unsafe JSON-like responses that may be vulnerable to 
    cross-domain script inclusion. JSON responses may be included across domains 
    by default, unless safe serialization schemes, security tokens, or parser 
    breaking syntax is used. Ratproxy will check for these properties, and
    highlight any patterns of concern. 

  * Bad caching headers on sensitive content. Ratproxy is able to accurately 
    detect presence of several types of sensitive documents, such as locations
    that return user-specific data, or resources that set new, distinctive
    cookies. If the associated requests have predictable URLs, and lack HTTP 
    caching directives that would prevent proxy-level caching, there is a risk 
    of data leakage. 

    In pedantic mode, ratproxy will also spot differences in HTTP/1.1 and 
    HTTP/1.0 caching intents - as these may pose problems for a fraction of 
    users behind legacy cache engines (such as several commercial systems used
    to date by some corporations). 

  * Suspicious cross-domain trust relationships. Based on the observation of 
    dynamic control flow, and a flexible definition of trusted perimeter, 
    ratproxy is capable of accurately detecting dangerous interactions between
    domains, including but not limited to:

      * Security token leakage via Referer headers,
      * Untrusted script or stylesheet inclusion,
      * General references to third-party domains,
      * Mixed content issues in HTTPS-only applications,
      * Tricky cross-domain POST requests in single sign-on systems. 

  * Numerous classes of content serving issues - a broad class of problems 
    that lead to subtles XSSes, and includes MIME type mismatches, charset 
    problems, Flash issues, and more. Research indicates that a vast number of
    seemingly minor irregularities in content type specifications may trigger
    cross-site scripting in unusal places; for example, subtle mistakes such as
    serving GIF files as image/jpeg, typing utf8 instead of utf-8 in 
    Content-Type headers, or confusing HTTP charset with XML declaration 
    charset values are all enough to cause trouble. Even seemingly harmless 
    actions such as serving valid, attacker-controlled PNG images inline were 
    known to cause problems due to browser design flaws. 

    Likewise, certain syntax patterns are dangerous to return to a browser 
    regardless of MIME types, as there are known methods to have MIME types 
    overridden or ignored altogether. Ratproxy uses a set of fairly advanced 
    checks that spot these problems with a considerable accuracy and relatively
    few false positives in contemporary scenarios, accounting for various 
    classes of content served. 

  * Queries with insufficient XSRF defenses (POSTs, plus any requests that 
    set cookies by default; and other suspicious looking GET requests as an 
    option). In active testing mode, the proxy will also actually try to 
    validate XSRF protections by replaying requests with modified token values,
    and comparing responses. 

  * Suspected or confirmed XSS / data injection vectors, including attacks 
    through included JSON-based script injection, or response header splitting.
    In the default, passive mode, ratproxy does not attempt to confirm the 
    quality of XSS filtering in tested applications, but it will automatically 
    enumerate and annotate the best subjects for manual inspection - and will 
    offer the user the ability to feed this data to external programs, or modify
    and replay interesting requests on the fly. The proxy will also take note
    of any seemingly successful manual XSS attempts taken by the user. 

    In active testing mode, the proxy will go one step further and attempt a 
    single-shot verification of XSS filtering mechanisms, carefully tweaking 
    only these request parameters that truly need to be tested at the time (and
    carefully preserving XSRF tokens, and more). 

  * HTTP and META redirectors. Redirectors, unless properly locked down, may 
    be used without owner's consent, which in some contexts may be seen as
    undesirable. Furthermore, in extreme cases, poorly implemented redirectors 
    may open up cross-site scripting vectors in less common browsers. 

    Ratproxy will take note of any redirectors observed for further testing. 

  * A broad set of other security problems, such as alarming Javascript, 
    OGNL, Java, SQL, file inclusion patterns, directory indexes, server errors, 
    and so forth. Ratproxy will preselect particularly interesting candidates for
    further testing. 

    Although in the initial beta, not all web technologies may necessarily be 
    analyzed to greatest extent possible, we intend to actively improve the tool 
    based on your feedback.

  * Several additional, customizable classes of requests and responses useful 
    in understanding the general security model of the application (file upload 
    forms, POST requests, cookie setters, etc). 

For a full list of individual issues reported, please see messages.list in the 
source tarball.

------------------------------------------
What is the accuracy of reported findings?
------------------------------------------

Ratproxy usually fares very well with typical, rich, modern web applications - 
that said, by the virtue of operating in passive mode most of the time, all the 
findings reported merely highlight areas of concern, and are not necessarily 
indicative of actual security flaws. The information gathered during a testing 
session should be then interpreted by a security professional with a good 
understanding of the common problems and security models employed in web 
applications.

Please keep in mind that the tool is still in beta, and you may run into 
problems with technologies we had no chance to examine, or that were not a 
priority at this time. Please contact the author to report any issues 
encountered.

---------------------
How to run the proxy?
---------------------

  NOTE: Please do not be evil. Use ratproxy only against services you own, or 
  have a permission to test. Keep in mind that although the proxy is mostly 
  passive and unlikely to cause disruptions, it is not stealth. Furthermore, the
  proxy is not designed for dealing with rogue and misbehaving HTTP servers and 
  clients - and offers no guarantees of safe (or sane) behavior there. 

Initiating ratproxy sessions is fairly straigtforward, once an appropriate set 
of runtime options is dediced upon. Please familiarize yourself with these 
settings, as they have a very significant impact on the quality of produced 
reports.

The main binary, ./ratproxy, takes the following arguments:

  -w logfile    - this option causes raw, machine-readable proxy logs to be 
                  written to a specified file. By default, all data is written
                  to stdout only. The log produced this way is not meant for 
                  human consumption - it might be postprocessed with third-party
                  utilities, or pretty-printed using 'ratproxy-report.sh',
                  however.

  -v logdir     - prompts ratproxy to store full HTTP traces of all requests 
                  featured in the logfile, writing them to a specified directory.
                  In most cases, it is advisable to enable this option, as it 
                  provides useful hints for further analysis.

  -p port       - causes ratproxy to listen for browser connections on a TCP 
                  port different than the default 8080.

  -r            - instructs ratproxy to accept remote connections. By default, 
                  the proxy listens on loopback interfaces only. This option
                  enables remote access to the service.

                  WARNING: Ratproxy does not feature any specific access 
                  control mechanisms, and may be abused if exposed to the 
                  Internet. Please make sure to use proper firewall controls 
                  whenever using -r option to prevent this.

  -d domain     - specifies a domain name suffix used to distinguish between 
                  the audited infrastructure and third-party sites. Host names
                  that match -d values will be subjected to analysis, and ones
                  that do not will be considered the outside world. Interactions
                  between these two classes will be subjected to additional
                  checks.

                  NOTE: This feature is extremely important for several of the 
                  checks implemented by ratproxy. If -d option is missing, 
                  ratproxy will treat all URLs as being a part of the audited 
                  service, and cross-domain interaction checks will not be 
                  carried out at all. If it is set incorrectly, report coverage 
                  may decrease.

                  Multiple -d options may and often should be combined to 
                  define the perimeter for testing and flow analysis (e.g., -d 
                  example.com -d example-ad-service.com -d example-ng.com).

  -P host:port  - causes ratproxy to talk to an upstream proxy instead of 
                  directly routing requests to target services. Useful for
                  testing systems behind corporate proxies, or chaining
                  multiple proxy-type security testing tools together.

  -l            - ratproxy sometimes needs to tell if a page has substantially 
                  changed between two requests to better qualify the risks 
                  associated with some  observations. By default, this is 
                  achieved through strict page checksum comparison (MD5). This
                  options enables an alternative, relaxed checking mode that 
                  relies on page length comparison instead.

                  Since some services tend to place dynamically generated 
                  tokens on rendered pages, it is generally advisable to enable
                  this mode most of the time.

  -2            - several services are known to render the same page with 
                  dynamic content of variable length in response to two 
                  subsequent, otherwise identical requests. This might be a 
                  result of inline ad rendering, or other content randomization.

                  When dealing with such services, ratproxy might be instructed 
                  to acquire three, not two, samples for page comparison for some 
                  checks, to further minimize the number of false positives.

  -e            - enables pedantic caching header validation. Security problems 
                  may arise when documents clearly not meant to be cached are 
                  served in a way that permits public proxies to store them. By 
                  default, ratproxy detects poorly chosen HTTP/1.1 caching 
                  directives that are most likely to affect general population.

                  Some additional issues may appear with users behind legacy 
                  proxies that support HTTP/1.0 only, however - as is the case
                  with several commercial solutions. These proxies may ignore 
                  HTTP/1.1 directives and interpret HTTP/1.0 cues only. In -e
                  mode, ratproxy will complain about all cases where there 
                  appears to be a mismatch between HTTP/1.0 and HTTP/1.1 caching
                  intents.

                  This tends to generate a large number of warnings for many 
                  services; if you prefer to focus on more pressing issues first,
                  you might want to keep it off at first.

  -x            - tells the proxy to log all URLs that seem to be particularly
                  well-suited for further, external XSS testing (by the virtue 
                  of being echoed on the page in a particular manner). By 
                  default, ratproxy will not actually attempt to confirm these
                  vectors (-X option enables disruptive checking, however) - but
                  you will be able to use the data for manual testing or as 
                  input to third-party software.

                  Generally recommended, unless it proves to be too noisy.

  -t            - by default, ratproxy logs some of the most likely directory 
                  traversal candidates. This option tells the proxy to log less
                  probable guesses, too. These are good leads for manual testing
                  or as input to an external application.

                  Generally recommended, unless it proves to be too noisy.

  -i            - with this option supplied, ratproxy will log all PNG files 
                  served inline. PNG files are a cross-site scripting vector in 
                  some legacy browsers. The default behavior is to log these 
                  images that require authentication only, based on the 
                  assumption that such images are most likely to be
                  user-controlled.

                  This option should be enabled when auditing applications
                  that permit picture uploads and sharing; otherwise, it may 
                  just generate noise.

  -f            - with this option enabled, the proxy will log all Flash 
                  applications encountered for further analysis. This is
                  particularly useful when combined with -v, in which case, Flash
                  files will be automatically disassembled and conveniently 
                  included in 'ratproxy-report.sh' output.

                  Since recent Flash vulnerabilities make the platform a major 
                  potential cross-site scripting vector, it is advisable to 
                  enable this feature.

  -s            - tells ratproxy to log all POST requests for further analysis 
                  and processing, in a separate section of the final report. 
                  This is useful for bookkeeping and manual review, since POST 
                  features are particularly likely to expose certain security
                  design flaws.

  -c            - enables logging of all URLs that seem to set cookies, 
                  regardless of their presumed security impact. Again, useful for
                  manual design analysis and bookkeeping. Not expected to 
                  contribute much noise to the report.

  -g            - extends XSRF token validation checks to GET requests. By 
                  default, the proxy requires anti-XSRF protection on POST 
                  requests and cookie setters only. Some applications tend to 
                  perform state changing operations via GET requests, too, and 
                  so with this option enabled, additional data will be collected
                  and analyzed.

                  This feature is verbose, but useful for certain application 
                  designs.

  -j            - enables detection of discouraged Javascript syntax, such as 
                  eval() calls or .innerHTML operations. Javascript code that 
                  makes use of these will be tagged for manual inspection.

  -m            - enables logging of "active" content referenced across domain 
                  boundaries to detect patterns such as remote image inclusion
                  or remote linking (note that logging of remote script or
                  stylesheet inclusion is enabled at all times).

                  This option has an effect only when a proper set of domains 
                  is specified with -d command-line parameter - and is 
                  recommended for sites where a careful control of cross-domain 
                  trust relationships needs to be ensured.

  -X            - enables active testing. When this option is provided, 
                  ratproxy will attempt to actively, disruptively validate the
                  robustness of XSS and XSRF defenses whenever such a check is
                  deemed necessary. 

                  By the virtue of doing passive preselection, this does not
                  generate excessive traffic and maintains the same level of 
                  coverage as afforded in passive mode.

                  The downside is that these additional requests may disrupt 
                  the application or even trigger persistent problems; as such,
                  please exercise caution when using it against mission-critical
                  production systems.

  -C            - in disruptive testing mode, ratproxy will replay some 
                  requests with modified parameters. This may disrupt the state
                  of some applications and make them difficult to navigate. To
                  remediate this, -C option enables additional replaying of the 
                  unmodified request at the end of the process, in hopes of 
                  restoring the original server-side state.

                  This option is generally recommended in -X mode.

  -k            - instructs ratproxy that the application is expected to use 
                  HTTPS exclusively; any downgrades to HTTP will be reported
                  and prioritized depending on potential impact.

                  This option obviously makes sense only if the application is 
                  indeed meant to use HTTPS and HTTPS only.

  -a            - tells ratproxy to indiscriminately log all visited URLs. 
                  Useful for assessing the coverage achieved.

In practice, for low verbosity reporting that looks for high-probability issues 
only, a good starting point is:

    ./ratproxy -v <outdir> -w <outfile> -d <domain> -lfscm 

To increase verbosity and include output from some less specific checks, the 
following set of options is a good idea:

    ./ratproxy -v <outdir> -w <outfile> -d <domain> -lextifscgjm 

For active testing, simply add -XC options as needed.

Once the proxy is running, you need to configure your web browser to point to 
the appropriate machine and port (a simple Firefox extension such as QuickProxy 
may come handy in the long run); it is advisable to close any non-essential 
browser windows and purge browser cache, as to maximize coverage and minimize 
noise.

The next step is to open the tested service in your browser, log in if 
necessary, then interact with it in a regular, reasonably exhaustive manner: 
try all available views, features, upload and download files, add and delete 
data, and so forth - then log out gracefully and terminate ratproxy with Ctrl-C.

  NOTE: Do not be tempted to tunnel automated spider traffic (e.g. wget -r or 
  active scanners) via ratproxy. This will not have the desired effect. The tool 
  depends strictly on being able to observe well-behaved, valid user-application 
  interaction. 

  SECURITY WARNING: When interacting with SSL applications, ratproxy will 
  substitute its own, dummy, self-signed certificate in place of that 
  legitimately returned by the service. This is expected to generate browser 
  warnings - click through them to accept the key temporarily for the site. Do 
  not add the key permanently to your browser configuration - the key is known to
  anyone who ever downloaded the tool. Furthermore, please note that ratproxy 
  will also forego any server certificate validation steps - so while interacting 
  with the service in this mode, you can have no expectation of server identity, 
  transmission integrity, or data privacy. Do not use important accounts and do 
  not enter sensitive data while running ratproxy tests. 

Once the proxy is terminated, you may further process its pipe-delimited (|), 
machine-readable, greppable output with third party tools if so desired, then 
generate a human-readable HTML report:

    ./ratproxy-report.sh ratproxy.log >report.html 

This will produce an annotated, prioritized report with all the identified 
issues. When opened in a browser, you will have an opportunity to replay GET 
and POST requests, tweak their parameters, view traces, and inspect Flash 
disassemblies, too.

Enjoy :-)

-----------------------------------
Credits, contributions, suggestions
-----------------------------------

If you are interested in contributing to the project, a list of features and 
improvements for the proxy can be found in doc/TODO in the source tarball.

If you have any questions, suggestions, or concerns regarding the application, 
the author can be reached at [email protected].

Ratproxy was made possible by the contributions of, and valuable feedback from, 
Google's information security engineering team. 

ratproxy's People

Watchers

 avatar

ratproxy's Issues

Small typo

The description of the "XSRF protection" report section has a small typo
"forgety" instead of forgery.  

===========================================
POST query with no XSRF protection [toggle]

      Parameter-accepting POST requests that lack security tokens. Some
POST requests change application state, and may be vulnerable to cross-site
request forgety attacks.
===========================================

Thanks for a great tool.

Original issue reported on code.google.com by [email protected] on 2 Jul 2008 at 7:23

open forms from reports in new window

1. generate some report with ratproxy-report with POST requests
2. click on some POST link

When forms are openning in new windows you can stay and read current report

Patch:
--- ratproxy-report.orig    2010-03-25 16:36:17.517758221 +0300
+++ ratproxy-report 2010-03-25 16:35:49.995321426 +0300
@@ -337,7 +337,7 @@
       if ! echo "$payload" | grep -q '^GWT_RPC\['; then

         echo "<input type=submit value=\"edit values\"
onclick=\"document.getElementById('form$CNT').style.display='inline';return
false;\" style=\"border-width: 1px; background-color: #FFFFC0; font-size:
0.9em; display: inline\">"
-        echo "<form action=\"$url\" method=\"POST\" id=\"form$CNT\"
style=\"display: none\">"
+        echo "<form action=\"$url\" method=\"POST\" id=\"form$CNT\"
target=\"_blank\" style=\"display: none\">"
         echo "$payload" | sed 's/\&#x\(..\);/%\1/g' | sed 's/&/\
 /g' | sed 's/%26/\&/g;s/%3B/;/g' | sed 's/\%\(..\)/\&#x\1;/g' | \
         while IFS='=' read -r param val; do 


Original issue reported on code.google.com by [email protected] on 25 Mar 2010 at 1:42

Unrecognized Certificate Authority

What steps will reproduce the problem?
1. ./ratproxy -k -x -w logfile -v testsystem
2. navigate to system with Equifax signed cert
3. accept ratproxy ss cert

What is the expected output? What do you see instead?

0026:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown
ca:s3_pkt.c:1060:SSL alert number 48
PROGRAM ABORT: client SSL handshake failed [ssl_start(), ssl.c:162]


What version of the product are you using? On what operating system?

1.58-beta

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 6 Oct 2009 at 6:06

cannot bind to port [listen_loop(), ratproxy.c:1609]

What steps will reproduce the problem?
1. Compile on Mac OS X 10.4.11
2. Run ratproxy with $ ./ratproxy -v testout -w testoutfile -d
"http://www.domain.com" -lfscm
3. See error

What is the expected output? What do you see instead?

Should have run, instead showed the following error:
ratproxy version 1.50-beta by <[email protected]>
SYSTEM ERROR : cannot bind to port [listen_loop(), ratproxy.c:1609]
     Message : Can't assign requested address

What version of the product are you using? On what operating system?
Mac OS X 10.4.11

Original issue reported on code.google.com by raccettu on 2 Jul 2008 at 1:17

RatProxy 5.1 not working (SYSTEM ERROR : cannot bind to port [listen_loop(), ratproxy.c:1609])

What steps will reproduce the problem?
1. ./ratproxy -w /home/Sutapa/outdir/outfile -v /home/Sutapa/outdir/ -d 
<ip-addr>:8080/<project-name>/ -lfscmr

2.
3.

What is the expected output? What do you see instead?
Expected output am yet to see
Output I see is:
ratproxy version 1.51-beta by <[email protected]>
SYSTEM ERROR : cannot bind to port [listen_loop(), ratproxy.c:1609]
     Message : Address already in use


What version of the product are you using? On what operating system?
ratproxy version 1.51-beta by <[email protected]>
RedHat linux 5


Please provide any additional information below.

I downloaded the ratproxy 5.1 tarball and ran the make function to build 
the ratproxy executable.

Please help.

Original issue reported on code.google.com by [email protected] on 20 Mar 2009 at 2:12

Rat Proxy fails to build under cygwin.

What steps will reproduce the problem?
1. Run the make command for ratproxy from cygwin

What is the expected output? What do you see instead?

The expected output is for the make file to succeed with no errors.

Instead I see a message saying: "cc1: error: unrecognized command line
option "Wno-pointer-sign". I get this message 4 times. At the end the
command line says: "make: *** ratproxy Error 1

What version of the product are you using? On what operating system?

I am using the latest version , I am on windows vista sp1, with cygwin bash
shell.

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 18 Jul 2008 at 2:37

Makefile changes to compile on Solaris 10

Changes needed to Makefile to compile on Solaris10.

23,24c23,25
< CFLAGS         = -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE
< LDFLAGS  = -lcrypto -lssl

---
> #CFLAGS        = -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE
> CFLAGS         = -Wall -O3  -D_GNU_SOURCE
> LDFLAGS  = -lcrypto -lssl -lsocket -lnsl

You will need GCC.
You must also have openssl built and resolvable via 
ENV variable LD_LIBRARY_PATH 
To compile type in "make CC=gcc"

Original issue reported on code.google.com by [email protected] on 2 Jul 2008 at 7:21

Add notifications for redirections with content

When navigating a site, a site can potentially send the headers for a
redirect, but yet display content.  I would like to see ratproxy report on
this, as the information exposed may not be authorized information.

Sample output from a redirect page using Telnet (this page should only be
available to authenticated users):

HTTP/1.1 302 Found
Date: Wed, 17 Sep 2008 18:25:40 GMT
Server: Apache/2.0.55 (Win32)
Status: 302
Set-Cookie: PHPSESSID=fna4oub597j7teu7klg4s3j5u3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Powered-By: Zend Core/1.5.0 PHP/5.1.6
Location: http://www.google.ca/
Transfer-Encoding: chunked
Content-Type: text/html

42
<html>
<body>
Authenticated content goes here!
</body>
</html>
0

Original issue reported on code.google.com by [email protected] on 17 Sep 2008 at 6:26

Sniffed MIME type "application_javascript" instead of "application/javascript"

I'm not sure why ratproxy detects JavaScript code with MIME type
"application/javascript" as "application_javascript". Is there some valid
reason for this?

This leads to the following warnings in the report:
"MIME type: application/javascript, detected: application_javascript,
charset: -"

The following fragment of mime.c is responsible:

          else if (!strcasecmp(r->mime_type,"application/javascript"))
            r->sniffed_mime = "application_javascript";

Original issue reported on code.google.com by adambyrtek on 18 Sep 2009 at 1:29

Malformed HTTP request warning/PROGRAM ABORT

What steps will reproduce the problem?
1. Compile ratproxy from source by removing the -Wno-pointer-sign option
removed from the makefile as it would refuse to compile on my Centos 4 box
with gcc (GCC) 3.4.6 20060404 ( I suppose it works with GCC 4+?)

2. Ran ratproxy with the command line ./ratproxy  -w proxy.log -d <my HTTPS
web application) -P upstreamproxy:port -lrextifscgjmXC
(Ok I might have gone a little overkill with the command line args)


What is the expected output? What do you see instead?
Verbose error messages that are displayed

[!] WARNING: Malformed HTTP response.
776:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown
protocol:s23_clnt.c:475:
PROGRAM ABORT: server SSL handshake failed [ssl_start(), ssl.c:158]



What version of the product are you using? On what operating system?
Latest version from SVN (revision 12) on Centos 4


Please let me know if any additional information is required.



Original issue reported on code.google.com by [email protected] on 8 Jul 2008 at 12:45

memory corruption

Hello,

I'm trying to use RatProxy to test my Web application.

But sometimes, RatProxy break my requests and there is the following message :

*** glibc detected *** ./ratproxy: malloc(): memory corruption: 0x08ad7490 ***

I use RatProxy on a Debian 5 system.

If anybody can help me...

Thanks,

Thibaut

Original issue reported on code.google.com by [email protected] on 24 Aug 2010 at 2:47

ratproxy does not fully initialize sockaddr_in before calling bind(2)

What steps will reproduce the problem?
1. Compile ratproxy 1.50-beta on Mac OS X version 10.5.3.
2. Run with ./ratproxy.

What is the expected output? What do you see instead?

  I expect ratproxy to start running on port 8080/tcp.  Instead I get:

    SYSTEM ERROR : cannot bind to port [listen_loop(), ratproxy.c:1610]
         Message : Can't assign requested address

What version of the product are you using? On what operating system?

    ratproxy 1.50-beta; Mac OS X version 10.5.3.

Please provide any additional information below.

 It seems to be an issue of not properly initializing the sockaddr_in
 structure before calling bind(2).  This patch fixes this problem for
 me:

--- ratproxy.c.orig 2008-07-03 11:19:23.000000000 -0700
+++ ratproxy.c  2008-07-03 11:19:29.000000000 -0700
@@ -1594,6 +1594,7 @@
   if (setsockopt(lsock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(_s32)) == -1) 
     pfatal("cannot setsockopt()");  

+  memset(&saddr, 0, sizeof saddr);
   saddr.sin_family      = AF_INET;

   if (!use_any) {

Original issue reported on code.google.com by [email protected] on 3 Jul 2008 at 6:21

GCC version

Could you please tell me what version of GCC is required for Ratproxy
installation?

Since I'm receiving the following error and I'm not sure what is the issue
with it.  

cc ratproxy.c -o ratproxy  -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE http.c
mime.c ssl.c -lcrypto -lssl
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
make: *** [ratproxy] Error 1


Thank you for your help.
Burhan 

Original issue reported on code.google.com by [email protected] on 15 Jul 2008 at 6:52

ratproxy-report.sh TODO: Use standalone stylesheets to conserve bytes.

ratproxy-report.sh has a comment
TODO: Use standalone stylesheets to conserve bytes.

Attached are files:
ratproxy-report.sh: creates a valid XHTML report file that looks very close
to the original, using an external stylesheet
ratproxy.css: the external stylesheet
messages.list: modified to remove inline styles

Too many changes, I thought patch files would be less convenient.

[email protected]

Original issue reported on code.google.com by [email protected] on 19 Aug 2009 at 12:33

Attachments:

cannot bind to port [listen_loop(), ratproxy.c:1618]

What steps will reproduce the problem?

1. Compile on Windows 7
2. Run ratproxy with ratproxy -v testout -w testoutfile -d
"http://www.domain.com" -lfscm
3. See error

What is the expected output? What do you see instead?

Should have run, instead showed the following error:
ratproxy version 1.58-beta by <[email protected]>
SYSTEM ERROR : cannot bind to port [listen_loop(), ratproxy.c:1618]
     Message : Operation not permitted


What version of the product are you using? On what operating system?

ratproxy version 1.58 . Windows 7 Enterprise

Original issue reported on code.google.com by [email protected] on 20 Jan 2014 at 11:14

Hardcoded web-server ports

What steps will reproduce the problem?
When tests web-server on not standart ports like 80 and 443 you will see
such warning:
"[!] WARNING: Access to this port denied."


Please provide any additional information below.
Problem in http.c. Patch you can see below.

diff -u http.c.orig http.c
--- http.c.orig 2009-05-13 23:41:01.000000000 +0400
+++ http.c  2010-03-25 14:09:19.175346738 +0300
@@ -496,8 +496,8 @@
     if (!ret->port || ret->port > 65535) 
       http_error(client,"Illegal port specification",1);

-    if (ret->port < 1024 && ret->port != 80 && ret->port != 443)
-      http_error(client,"Access to this port denied",1);
+/*    if (ret->port < 1024 && ret->port != 80 && ret->port != 443)*/
+      /*http_error(client,"Access to this port denied",1);*/

     *x = 0; 

Original issue reported on code.google.com by [email protected] on 25 Mar 2010 at 11:25

SSL Key File not loaded if ratproxy is not started from the default folder

The MiTM SSL Proxy only works if ratproxy is started from the ratproxy root.

In my setup it was called from a view scripts:
/home/user1/ratproxy is the ratproxy install folder.
/usr/local/bin/myscript.sh calls /home/user1/ratproxy/ratproxy "bla"

On SSL connections this failes:
25386:error:02001002:system library:fopen:No such file or
directory:bss_file.c:352:fopen('keyfile.pem','r')
25386:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:354:
25386:error:140DC002:SSL routines:SSL_CTX_use_certificate_chain_file:system
lib:ssl_rsa.c:720:
PROGRAM ABORT: certificate load failed [ssl_start(), ssl.c:147]


Original issue reported on code.google.com by [email protected] on 7 Jul 2009 at 7:58

several ambiguous HTTP content headers message

What steps will reproduce the problem?
1. run ratproxy with low verbosity (-lfscm)
2. Browse a web application.
3. Watch Several log messages (correct?)

What is the expected output? What do you see instead?
Several "Ambiguous HTTP content headers" message browsing web application
with js scripts.
3|3|Ambiguous HTTP content
headers|-|304|0|-|-|-|-|GET|https://jira-application:443/s/233/1/1.0/_/download/
resources/jira.webresources:scriptaculous/controls.js|-|-|-


What version of the product are you using? On what operating system?
ratproxy version 1.51-beta 
ubuntu 8.04

Please provide any additional information below.

HTTP request/response example triggering "Ambiguous HTTP content headers"
message.

https://jira-applictaion/s/233/1/1.0/_/download/resources/jira.webresources:scri
ptaculous/controls.js



GET
/s/233/1/1.0/_/download/resources/jira.webresources:scriptaculous/controls.js
HTTP/1.1

Host: jira-application
User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.9)
Gecko/2008061015 Firefox/3.0

Accept: */*

Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 300

Connection: keep-alive

Referer: https://jira-application/secure/Dashboard.jspa

Cookie: JSESSIONID=XXXXXXXXXXA456698C1FCF906457CE74

If-Modified-Since: Tue, 22 May 2007 07:00:00 GMT

If-None-Match: W/"28803-1179817200000"



HTTP/1.x 304 Proxied response

Connection: close

Content-Length: 0

Server: Apache-Coyote/1.1

Pragma: No-cache

Cache-Control: max-age=315360000000, private

Expires: Fri, 06 Jul 2018 12:32:30 GMT

Date: Tue, 08 Jul 2008 12:32:29 GMT


What's the exact problem with this HTTP requests/response?

Thanks

Original issue reported on code.google.com by ecasbas on 8 Jul 2008 at 12:45

Scheduling a scan in ratproxy

Hello all,
How do we schedule a scan in ratproxy?
That means, is it possible that I can record my session now and scan my 
session later for the vulnerabilities?
Any help would be helpful.

Sagar.

Original issue reported on code.google.com by [email protected] on 12 Sep 2009 at 6:01

make all error

What steps will reproduce the problem?
1. do the following 
2.  make all
cc ratproxy.c -o ratproxy  -Wall -O3 -Wno-pointer-sign -D_GNU_SOURCE 
http.c mime.c ssl.c -lcrypto -lssl
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
cc1: error: unrecognized command line option "-Wno-pointer-sign"
make: *** [ratproxy] Error 1

3. then modify Makefile by removing  $(CFLAGS) like this:  $(CC) 
$(PROGNAME).c -o $(PROGNAME) http.c mime.c ssl.c $(LDFLAGS), it went 
through.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?
Download current version (1.51 beta) 

 cc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.6/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --
infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-
checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-
exceptions --enable-java-awt=gtk --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.6 20060404 (Red Hat 3.4.6-8.0.1)
Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 11 Aug 2008 at 9:36

lot of sigdness warnings

This seems to be a bad practise. All sigdness warnings and using
-Wno-pointer-sign to avoid them. It would be great if they are fixed. And
the easiest way to fix them for the time being could be using wrapper
macros around calling to functions with pointer conversion. This is a bad
fix but looking at the number of warnings, it could remove them.

Original issue reported on code.google.com by [email protected] on 8 Nov 2008 at 3:44

Attachments:

fwrite not handled properly

ratproxy.c: In function 'save_trace':
ratproxy.c:572: warning: ignoring return value of 'fwrite', declared with
attribute warn_unused_result
ratproxy.c:587: warning: ignoring return value of 'fwrite', declared with
attribute warn_unused_result
ratproxy.c: In function 'decode_flash':
ratproxy.c:615: warning: ignoring return value of 'write', declared with
attribute warn_unused_result
http.c: In function 'send_request':
http.c:1056: warning: ignoring return value of 'fwrite', declared with
attribute warn_unused_result
http.c: In function 'send_response':
http.c:1318: warning: ignoring return value of 'fwrite', declared with
attribute warn_unused_result
+ exit 0
Executing(%install): /bin/sh -e /home/rpmbuild/rpm/tmp/rpm-tmp.98163





I was building and found following warning and it is easy to fix them with
return handling.

Original issue reported on code.google.com by [email protected] on 8 Nov 2008 at 3:38

Google Code closing

Google Code service is closing. Do you have plans to move this project to 
GitHub or similar hosting service?

Original issue reported on code.google.com by [email protected] on 30 May 2015 at 9:24

do not set Content-Length of request if it is 0

some web server give 400 when Content-Length of request is 0.

What steps will reproduce the problem?
1. ./ratproxy -v . -w ./out.log -d lighttpd.net -lfscm
2. visit www.lighttpd.net

What is the expected output? What do you see instead?
expect 200 but get 400 instead

What version of the product are you using? On what operating system?
ratproxy 1.51. Mac OS X 10.5

Original issue reported on code.google.com by [email protected] on 7 Jul 2008 at 3:33

Attachments:

Testing production servers may be insecure (according to the docs)

The RatproxyDoc wiki page says:

"[T]he proxy is not designed for dealing with rogue and misbehaving HTTP
servers and clients - and offers no guarantees of safe (or sane) behavior
there."

Does that mean that it might allow a malicous server to execute arbitrary
code with the privileges of the user running ratproxy?

If so, that would be unfortunate for people trying to test their production
servers hosted elsewhere, even over SSL. At least if they're using public
wifi. Maintaining a separate machine as a sandbox for running dangerous
tests can be too expensive or cumbersome for some developers.

Could you please clarify what does "safe" mean in the above quotation? Can
it be remote code execution or is it limited to manipulating ratproxy into
performing arbitrary HTTP requests, writing strange things to the logs, etc.?

Some suggestions:

1. Include a warning in the documentation about possible MITM attacks even
when you're testing your own server and mention the possibility of remote
code execution.

2. Verify the server's SSL/TLS certificate in ratproxy. That would remove
the risk when working over HTTPS.

3. I guess hardening ratproxy for use with malicious servers is not an
option for you because it would help the bad guys too much. Or maybe it's
just not worth the effort. But frankly that would be nice for the good
guys, too.

Original issue reported on code.google.com by alexkon on 13 Jan 2009 at 12:41

Need to support NTLM auth

What steps will reproduce the problem?
1. Start ratproxy
2. Attempt to access a NTLM protected web server: Failure
3. Attempt to access NTLM protected web server directly: Success

What is the expected output? What do you see instead?
On success we should see output of normal web application.
On failure we see nothing.

What version of the product are you using? On what operating system?
Ratproxy version: 1.50
OS version: Solaris 10/Sparc
Target web server: IIS6




Original issue reported on code.google.com by [email protected] on 2 Jul 2008 at 7:27

misspelled error message

What steps will reproduce the problem?
1. Download ratproxy-1.51.tar.gz
2. tar xzf ratproxy-1.51.tar.gz
3. cd ratproxy; make

What is the expected output? What do you see instead?
If flare isn't installed - the error message misspells "binary":
*** WARNING: flare-dist/flare bianry is not operational.
*** Please see flare-dist/README and update it for your OS.

What version of the product are you using? On what operating system?
ratproxy version 1.51-beta by <[email protected]>
Mac OS X 10.5.4

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 13 Aug 2008 at 6:40

ratproxy-report.sh fails when run from any directory other than the ratproxy install dir

ratproxy-report.sh assumes that messages.list is in the current directory. The 
attached patch uses 
dirname to determine where ratproxy-report.sh is installed & use message.list 
from that location 
(presumably at some point it would make sense to separate the html content into 
a template which 
could live in some share directory along with message.list & other support 
files)

Original issue reported on code.google.com by [email protected] on 14 Jul 2008 at 6:09

Attachments:

ratproxy doesn't intercept on non standard web ports

What steps will reproduce the problem?
1. Start ratproxy, config broswer settings, navigate to target URL:3000. 
2. Target website happens to be running on port 3000.
3. Navigate to same server on default port (80).

What is the expected output? What do you see instead?

Ratproxy doesn't seem to analyze web traffic on non-standard ports (at
least it doesn't on this particular server on port 3000).  Requests to the
server on the standard port (80) seem to be correctly caught.  I can
confirm there are 2 different websites on this machine, and both are
working correctly.

What version of the product are you using? On what operating system?

1.5.1, Ubuntu 8.04, Mac OSX 10.5.4 (happens on both) 

Original issue reported on code.google.com by [email protected] on 22 Jul 2008 at 6:16

large set of command-line options is user-unfriendly

What steps will reproduce the problem?
1. n/a

What is the expected output? What do you see instead?

The bevy of command-line options are an important feature in ratproxy. 
However they also bring a degree of complexity that the README and --help
message both implicitly acknowledge.  It would be nice if the profiles
listed in either document could be incorporated into RatProxy itself.  See
below for a more clear example.

I recognize the point made in the documentation that RatProxy requires a
certain bit of awareness by default, but I think it's important not to
conflate a person's technical savvy with their ability to juggle all of
these testing options at a time.

What version of the product are you using? On what operating system?
- ratproxy version 1.51-beta by <[email protected]>
- Fedora Core release 4 (Stentz)


Please provide any additional information below.

Example settings suitable for most tests:
  1) Low verbosity  : -v <outdir> -w <outfile> -d <domain> -lfscm
  2) High verbosity : -v <outdir> -w <outfile> -d <domain> -lextifscgjm
  3) Active testing : -v <outdir> -w <outfile> -d <domain> -XClfscm

Instead of just printing these in the usage message, why not also
incorporate them into the app itself, and maybe even allow users to further
customize the run-time settings using these testing levels as a baseline?

Original issue reported on code.google.com by [email protected] on 3 Sep 2008 at 11:35

Ratproxy build instruction

Hi,
Your documentation for Ratproxy is really weak on the describing on how to
do a build of Ratproxy executable for each supported OS. Could you please
provide more details on how to build Ratproxy for Windows, (and other OS):
what changes are needed in Makefile, what Cygwin library to include, what
Flare is for, etc. For reference please see this link:
http://www.butterdev.com/web-security/2008/07/google-ratproxy-web-application-se
curity-audit-tool/

I hope that you can update Ratproxy documentation accordingly and promptly.
Regards,

SB

Original issue reported on code.google.com by [email protected] on 29 Aug 2008 at 6:33

ratproxy.c:1635: error: incompatible type for argument 2 of `waitpid'

I compiled ratproxy using Cygwin following this guideline: 
http://www.butterdev.com/web-security/2008/07/google-ratproxy-web-application-se
curity-audit-tool/
When I ran Make with flag -Wno-pointer-sign removed I got this error
cc ratproxy.c -o ratproxy  -Wall -O3  -D_GNU_SOURCE http.c mime.c ssl.c 
-lcrypto -lssl
ratproxy.c: In function `listen_loop':
ratproxy.c:1635: error: incompatible type for argument 2 of `waitpid'
Makefile:29: recipe for target `ratproxy' failed
make: *** [ratproxy] Error 1

Am I missing any library? 
Thanks


Original issue reported on code.google.com by [email protected] on 15 Feb 2012 at 3:43

Spelling errors

What steps will reproduce the problem?
1. run aspell on the sources

What is the expected output?
no misspellings :)

What do you see instead?
a couple

What version of the product are you using?
svn tip (rev 12)

On what operating system?
Linux

Original issue reported on code.google.com by [email protected] on 24 Dec 2008 at 11:18

Attachments:

Typo in Makefile

Very minor bug: On line 35 of Makefile, 'binary' is misspelled in a earning
message.

Original issue reported on code.google.com by tabacco on 4 Jul 2008 at 12:30

Support client certificate authentication

What steps will reproduce the problem?
1. Try to connect to a web site that requires client certificate for
authentication.

What is the expected output? What do you see instead?
What I see:
6610:error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown
ca:s3_pkt.c:1053:SSL alert number 48
PROGRAM ABORT: client SSL handshake failed [ssl_start(), ssl.c:162]       

6720:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake
failure:s3_pkt.c:1053:SSL alert number 40
PROGRAM ABORT: server SSL handshake failed [ssl_start(), ssl.c:158]       


What version of the product are you using? On what operating system?
1.58-beta, OpenSUSE Linux x86_64


Original issue reported on code.google.com by [email protected] on 11 Jun 2009 at 10:11

browser proxy on IE7

What steps will reproduce the problem?
1. on host xyz.com run ./ratproxy -v /result -w /result/ratproxy.log -d 
abc.com -lextifscgjm
ratproxy version 1.51-beta by <[email protected]>
[*] Proxy configured successfully. Have fun, and please do not be evil.
[+] Accepting connections on port 8082/tcp (local only)...
by <[email protected]>
[*] Proxy configured successfully. Have fun, and please do not be evil.
[+] Accepting connections on port 8080/tcp (local only)...

2. Go to another PC, config the proxy setting on IE7 as 
uncheck "Automatically detect settings" and "Use automatic configuration 
scripts". Only check "User a proxy server for your LAN..." put ip of 
xyz.com into Address area, port 8080 into Port area. OK.
3. Access a web application as abc.com , no recording happen on ratproxy.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?

ratproxy version 1.51-beta by <[email protected]>
[*] Proxy configured successfully. Have fun, and please do not be evil.
[+] Accepting connections on port 8082/tcp (local only)...

Please provide any additional information below.


Original issue reported on code.google.com by [email protected] on 11 Aug 2008 at 9:49

Problem in generating report with ratproxy

I am using ratproxy in windows environment. it shows me that the proxy is
configured properly. I used it for doing an assessment. it generates
various .trace files but when I tried to run reporting tool using the
following command: 

sh ratproxy-report.sh ratproxy.log > report.html

it shows me some error in ratproxy-report.sh (screenshot attached). I want
to know is this some kind of issue in ratproxy-report.sh file or there is
some problem my configuration. 

What is the expected output? What do you see instead?
it should generate a HTML report, containing details of all the issues
identified by ratproxy.

What version of the product are you using? On what operating system?
I am using ratproxy1.5.1 over windows Xp




Original issue reported on code.google.com by [email protected] on 15 Jul 2008 at 2:48

Attachments:

Ratproxy announcement links to an outdated download

The announcement in the Google Online Security Blog
(http://googleonlinesecurity.blogspot.com/2008/07/meet-ratproxy-our-passive-web-
security.html
— last paragraph) links directly to ratproxy-1.50.tar.gz, which is not the
latest version. That can be confusing for people who find ratproxy via a
web search or by reading the blog. For example, see the comments to issue 5.

You could link to the Downloads page
(http://code.google.com/p/ratproxy/downloads/list) instead.

Original issue reported on code.google.com by alexkon on 12 Jan 2009 at 6:29

error: Input file specified two times

What steps will reproduce the problem?
1. Use ./ratproxy-report.sh submit.txt
2. The report is not generated in valid HTML

What is the expected output? What do you see instead?
Expected output is a valid HTML.  Full report of the HTML is not generated.

What version of the product are you using? On what operating system?
ratproxy version 1.51-beta.  Cygwin.

Please provide any additional information below.
The | delimited file seems to be ok. 

Original issue reported on code.google.com by [email protected] on 12 Nov 2008 at 2:50

Attachments:

Defunct processes build up.

What steps will reproduce the problem?
1. On debian 4.0, install libssl-dev
2. compile with command: "make". 
3. run with ./ratproxy -w logfile 
4. Open slashdot, click the first link. 

What is the expected output? What do you see instead?

Ratproxy leaves defunct processes around: 

wolff    25401  0.0  0.1   3308   852 pts/68   S+   10:13   0:00 ./ratproxy
-w logfile
wolff    25736  0.0  0.0      0     0 pts/68   Z+   10:25   0:00 [ratproxy]
<defunct>
wolff    25737  0.0  0.0      0     0 pts/68   Z+   10:25   0:00 [ratproxy]
<defunct>
wolff    25738  0.0  0.0      0     0 pts/68   Z+   10:25   0:00 [ratproxy]
<defunct>
wolff    25739  0.0  0.0      0     0 pts/68   Z+   10:25   0:00 [ratproxy]
<defunct>

What version of the product are you using? On what operating system?

1.51, debian 4.0. 


Please provide any additional information below.

I haven't checked further beyond clicking a single link. 

Original issue reported on code.google.com by [email protected] on 4 Jul 2008 at 8:31

ratproxy-report.sh: line 29: $'\r': command not found

I am running

$ ./ratproxy -v DELME -w report -d www.okiok.com –lfscmxt

But I cannot generate the report. The report file is properly generated

$ ./ratproxy-report.sh
./ratproxy-report.sh: line 29: $'\r': command not found
./ratproxy-report.sh: line 230: syntax error near unexpected token `elif'
'/ratproxy-report.sh: line 230: `    elif [ "$severity" = "2" ]; then


OS: XP Pro 5.1 SP3 (Version 5.1.2600)
Cygwin: GNU bash, version 4.1.10(4)-release (i686-pc-cygwin)

Original issue reported on code.google.com by [email protected] on 16 Apr 2012 at 3:37

Client SSL handshake failed

What steps will reproduce the problem?
1. Downloaded and expanded the latest copy of ratproxy 1.53 on Mac OSX 10.5.6.
2. Downloaded and installed an updated copy of Flare for OSX.
3. Ran "make" as a sudo user in the ratproxy directory.  Compiled with no
errors.
4. Ran "sudo ./ratproxy -v ~/Documents/ -w ratproxy.log -d domain -lextifscgjm
5. Using the latest copy of firefox (3.0.5) configured the local proxy -
"localhost:8080"
6. Attempted to connect to a SSL server using the proxy.  Ratproxy gives me
the following message: 

PROGRAM ABORT: client SSL handshake failed [ssl_start(), ssl.c:162]

error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate
unknown:s3_pkt.c:1052:SSL alert number 46

7. In firefox I get an untrusted certificate error - so I create an
exception for the ratproxy cert.

8. Once accepted I continue to get repeated errors above when communicating
with the site.

Is this expected behavior?


Original issue reported on code.google.com by [email protected] on 2 Feb 2009 at 10:20

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.