zzz.i2p

Development discussions
 
Sat, 01 Feb 2020, 06:31pm #1
anonymous maybe
I2P Legend

- X-Frame-Options Header Not Set

Description: X-Frame-Options header is not included in the HTTP response to protect against 'ClickJacking' attacks.

Method: GET
Parameter: X-Frame-Options
URL: http://127.0.0.1:7658/ , http://127.0.0.1:7658/help/
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/news
Method GET
Parameter X-Frame-Options
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/console
Method GET
Parameter X-Frame-Options
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/netdb
Method GET
Parameter X-Frame-Options

Solution: Most modern Web browsers support the X-Frame-Options HTTP header. Ensure it's set on all web pages returned by your site (if you expect the page to be framed only by pages on your server (e.g. it's part of a FRAMESET) then you'll want to use SAMEORIGIN, otherwise if you never expect the page to be framed, you should use DENY. ALLOW-FROM allows specific websites to frame the web page in supported web browsers).
Reference: http://blogs.msdn.com/b/ieinternals/archive/201...

- CSP Scanner: Wildcard Directive

Description: The following directives either allow wildcard sources (or ancestors), are not defined, or are overly broadly defined: frame-ancestor

URL http://127.0.0.1:7657/netdb?c=de
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/i2ptunnel/list?action=Cle...
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?c=se
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=bwbq
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/tunnels
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/susidns/addressbook?filte...
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?c=jp
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=vag4
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/home?news=0&consoleNo...
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/susimail/?configure
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?c=fr
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=eULC
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/configlogging
Method POST
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=inIA
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=zCaN
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=MSxe
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/i2ptunnelmgr
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?r=.
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/configi2cp
Method POST
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

URL http://127.0.0.1:7657/netdb?c=bg
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

Solution: Ensure that your web server, application server, load balancer, etc. is properly configured to set the Content-Security-Policy header.

References:

http://www.w3.org/TR/CSP2/

http://www.w3.org/TR/CSP/

http://caniuse.com/#search=content+security+policy

http://content-security-policy.com/

https://github.com/shapesecurity/salvation

- CSP Scanner: style-src unsafe-inline

Description: style-src includes unsafe-inline

URL http://127.0.0.1:7657/netdb?c=md
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?c=us
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/susidns/addressbook?book=...
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/configkeyring
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?c=fr
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=viYN
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=.
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=0dMn
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=eULC
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=inIA
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/i2ptunnel/list
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/configplugins
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/configtunnels
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/susimail/
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?c=bg
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?c=dk
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/news
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/configsidebar
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
URL http://127.0.0.1:7657/netdb?r=FGz6
Method GET
Parameter Content-Security-Policy
Evidence default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'

Solution: Ensure that your web server, application server, load balancer, etc. is properly configured to set the Content-Security-Policy header.

References:

http://www.w3.org/TR/CSP2/

http://www.w3.org/TR/CSP/

http://caniuse.com/#search=content+security+policy

http://content-security-policy.com/

https://github.com/shapesecurity/salvation

- X-Content-Type-Options Header Missing

Description: The Anti-MIME-Sniffing header X-Content-Type-Options was not set to 'nosniff'. This allows older versions of Internet Explorer and Chrome to perform MIME-sniffing on the response body, potentially causing the response body to be interpreted and displayed as a content type other than the declared content type. Current (early 2014) and legacy versions of Firefox will use the declared content type (if one is set), rather than performing MIME-sniffing.

URL http://127.0.0.1:7658/
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7658/help/lib/eepsite.css
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7658/help/
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7657/js/iframed.js
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7657/js/ajax.js
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7657/susimail/js/compose.js?0....
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7657/js/resetScroll.js
Method GET
Parameter X-Content-Type-Options
URL http://127.0.0.1:7657/susimail/css/print.css?0....
Method GET
Parameter X-Content-Type-Options

Solution: Ensure that the application/web server sets the Content-Type header appropriately, and that it sets the X-Content-Type-Options header to 'nosniff' for all web pages.

If possible, ensure that the end user uses a standards-compliant and modern web browser that does not perform MIME-sniffing at all, or that can be directed by the web application/web server to not perform MIME-sniffing.

Other information: This issue still applies to error type pages (401, 403, 500, etc.) as those pages are often still affected by injection issues, in which case there is still concern for browsers sniffing pages away from their actual content type.

At "High" threshold this scanner will not alert on client or server error responses.

References:

http://msdn.microsoft.com/en-us/library/ie/gg62...

https://www.owasp.org/index.php/List_of_useful_...

- Web Browser XSS Protection Not Enabled

Description: Web Browser XSS Protection is not enabled, or is disabled by the configuration of the 'X-XSS-Protection' HTTP response header on the web server

URL http://127.0.0.1:7658/help/
Method GET
Parameter X-XSS-Protection
URL http://127.0.0.1:7658/
Method GET
Parameter X-XSS-Protection
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/console
Method GET
Parameter X-XSS-Protection
URL http://127.0.0.1:7657/viewlicense
Method GET
Parameter X-XSS-Protection
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/netdb
Method GET
Parameter X-XSS-Protection
URL http://127.0.0.1:7657/xhr1.jsp?requestURI=/news
Method GET
Parameter X-XSS-Protection

Solution: Ensure that the web browser's XSS filter is enabled, by setting the X-XSS-Protection HTTP response header to '1'.

Other information: The X-XSS-Protection HTTP response header allows the web server to enable or disable the web browser's XSS protection mechanism. The following values would attempt to enable it:

X-XSS-Protection: 1; mode=block

X-XSS-Protection: 1; report=http://www.example.com/xss

The X-XSS-Protection HTTP response header is currently supported on Internet Explorer, Chrome and Safari (WebKit).

Note that this alert is only raised if the response body could potentially contain an XSS payload (with a text-based content type, with a non-zero length).

References:

https://www.owasp.org/index.php/XSS_(Cross_Site...

https://www.veracode.com/blog/2014/03/guideline...

- Absence of Anti-CSRF Tokens

Description: No Anti-CSRF tokens were found in a HTML submission form.

A cross-site request forgery is an attack that involves forcing a victim to send an HTTP request to a target destination without their knowledge or intent in order to perform an action as the victim. The underlying cause is application functionality using predictable URL/form actions in a repeatable way. The nature of the attack is that CSRF exploits the trust that a web site has for a user. By contrast, cross-site scripting (XSS) exploits the trust that a user has for a web site. Like XSS, CSRF attacks are not necessarily cross-site, but they can be. Cross-site request forgery is also known as CSRF, XSRF, one-click attack, session riding, confused deputy, and sea surf.

CSRF attacks are effective in a number of situations, including:

* The victim has an active session on the target site.

* The victim is authenticated via HTTP auth on the target site.

* The victim is on the same local network as the target site.

CSRF has primarily been used to perform an action against a target site using the victim's privileges, but recent techniques have been discovered to disclose information by gaining access to the response. The risk of information disclosure is dramatically increased when the target site is vulnerable to XSS, because XSS can be used as a platform for CSRF, allowing the attack to operate within the bounds of the same-origin policy.

URL http://127.0.0.1:7657/netdb?r=o7vm
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/netdb?r=lIBC
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/netdb?r=tifO
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/susidns/addressbook?book=...
Method GET
Evidence <form method="POST" action="addressbook">
URL http://127.0.0.1:7657/peers
Method GET
Evidence <form action="/peers" method="POST">
URL http://127.0.0.1:7657/configtunnels
Method GET
Evidence <form action="" method="POST">
URL http://127.0.0.1:7657/netdb?r=gQp0
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/configtunnels
Method GET
Evidence <form action="" method="POST">
URL http://127.0.0.1:7657/susidns/addressbook?filte...
Method GET
Evidence <form action="export" method="GET" target="_top">
URL http://127.0.0.1:7657/console
Method GET
Evidence <form action="/console" method="POST">
URL http://127.0.0.1:7657/configtunnels
Method GET
Evidence <form action="" method="POST">
URL http://127.0.0.1:7657/netdb?c=ca
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/netdb?r=pf5i
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/configsidebar
Method POST
Evidence <form action="" method="POST">
URL http://127.0.0.1:7657/configlogging
Method GET
Evidence <form action="" method="POST">
URL http://127.0.0.1:7657/netdb?r=andL
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/configclients
Method GET
Evidence <form action="/configclients" method="POST">
URL http://127.0.0.1:7657/netdb?v=0.9.44
Method GET
Evidence <form action="/netdb" method="POST">
URL http://127.0.0.1:7657/peers?tx=ntcp
Method GET
Evidence <form action="/peers" method="POST">
URL http://127.0.0.1:7657/configsidebar
Method GET
Evidence <form action="" method="POST">

Solution: Phase: Architecture and Design

Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.

For example, use anti-CSRF packages such as the OWASP CSRFGuard.

Phase: Implementation

Ensure that your application is free of cross-site scripting issues, because most CSRF defenses can be bypassed using attacker-controlled script.

Phase: Architecture and Design

Generate a unique nonce for each form, place the nonce into the form, and verify the nonce upon receipt of the form. Be sure that the nonce is not predictable (CWE-330).

Note that this can be bypassed using XSS.

Identify especially dangerous operations. When the user performs a dangerous operation, send a separate confirmation request to ensure that the user intended to perform that operation.

Note that this can be bypassed using XSS.

Use the ESAPI Session Management control.

This control includes a component for CSRF.

Do not use the GET method for any request that triggers a state change.

Phase: Implementation

Check the HTTP Referer header to see if the request originated from an expected page. This could break legitimate functionality, because users or proxies may have disabled sending the Referer for privacy reasons.

Other information: No known Anti-CSRF token [anticsrf, CSRFToken, __RequestVerificationToken, csrfmiddlewaretoken, authenticity_token, OWASP_CSRFTOKEN, anoncsrf, csrf_token, _csrf, _csrfSecret] was found in the following HTML form: [Form 1: "consoleNonce" ].

References:

http://projects.webappsec.org/Cross-Site-Reques...

http://cwe.mitre.org/data/definitions/352.html

- Cookie Without SameSite Attribute

Description: A cookie has been set without the SameSite attribute, which means that the cookie can be sent as a result of a 'cross-site' request. The SameSite attribute is an effective counter measure to cross-site request forgery, cross-site script inclusion, and timing attacks.

URL http://127.0.0.1:7657/susidns/index
Method GET
Parameter JSESSIONID
Evidence Set-Cookie: JSESSIONID
URL http://127.0.0.1:7657/susimail/
Method GET
Parameter SUSIMAILJSESSIONID
Evidence Set-Cookie: SUSIMAILJSESSIONID
URL http://127.0.0.1:7657/i2ptunnel/
Method GET
Parameter JSESSIONID
Evidence Set-Cookie: JSESSIONID
URL http://127.0.0.1:7657/
Method GET
Parameter JSESSIONID
Evidence Set-Cookie: JSESSIONID

Solution: Ensure that the SameSite attribute is set to either 'lax' or ideally 'strict' for all cookies.

Reference: https://tools.ietf.org/html/draft-ietf-httpbis-...

- Cookie No HttpOnly Flag

Description: A cookie has been set without the HttpOnly flag, which means that the cookie can be accessed by JavaScript. If a malicious script can be run on this page then the cookie will be accessible and can be transmitted to another site. If this is a session cookie then session hijacking may be possible.
URL: http://127.0.0.1:7657/susidns/index
Method GET
Parameter JSESSIONID
Evidence Set-Cookie: JSESSIONID
Solution:Ensure that the HttpOnly flag is set for all cookies.
Reference:http://www.owasp.org/index.php/HttpOnly

- Private IP Disclosure

Description: A private IP (such as 10.x.x.x, 172.x.x.x, 192.168.x.x) or an Amazon EC2 private hostname (for example, ip-10-0-56-78) has been found in the HTTP response body. This information might be helpful for further attacks targeting internal systems.

URL http://127.0.0.1:7657/confignet
Method GET
Evidence 192.168.1.1
URL http://127.0.0.1:7657/configi2cp
Method POST
Evidence 10.137.0.15
URL http://127.0.0.1:7657/help
Method GET
Evidence 192.168.1.1
URL http://127.0.0.1:7657/configi2cp
Method GET
Evidence 10.137.0.15

Solution: Remove the private IP address from the HTTP response body. For comments, use JSP/ASP/PHP comment instead of HTML/JavaScript comment which can be seen by client browsers.

Reference: https://tools.ietf.org/html/rfc1918

## Information Disclosure (mostly not harmful)

- Suspicious Comments

Description: The response appears to contain suspicious comments which may help an attacker.

URL http://127.0.0.1:7658/
Method GET
Solution: Remove all comments that return information that may help an attacker and fix any underlying problems they refer to.
Other information:

<!--

#

# If you have a 'split' directory installation, with configuration

# files in ~/.i2p (Linux), %LOCALAPPDATA%\I2P (Windows),

# or /Users/(user)/Library/Application Support/i2p (Mac), be sure to

# edit the file in the configuration directory, NOT the install directory.

# When running as a Linux daemon, the configuration directory is /var/lib/i2p

# and the install directory is /usr/share/i2p .

# When running as a Windows service, the configuration directory is \ProgramData\i2p

# and the install directory is \Program Files\i2p .

#

-->

URL http://127.0.0.1:7657/js/ajax.js
Method GET
URL http://127.0.0.1:7657/js/iframed.js
Method GET

Solution: Remove all comments that return information that may help an attacker and fix any underlying problems they refer to.
Other information: // avoid spurious message if cancelled by user action

- Timestamp Disclosure - Unix

Description: A timestamp was disclosed by the application/web server - Unix

URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1636134222
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1470325175
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 102213004
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 479445759
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 360334601
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 973357626
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1984969708
URL http://127.0.0.1:7657/netdb?v=0.9.44
Method GET
Evidence 1288983968
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 433077272
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 707899649
URL http://127.0.0.1:7657/netdb?v=0.9.44
Method GET
Evidence 1434625633
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1570334924
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 789311636
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1315822727
URL http://127.0.0.1:7657/netdb?v=0.9.44
Method GET
Evidence 1654521452
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1426342728
URL http://127.0.0.1:7657/netdb?v=0.9.44
Method GET
Evidence 1580563229
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 741145689
URL http://127.0.0.1:7657/tunnels
Method GET
Evidence 1404166708
URL http://127.0.0.1:7657/netdb?v=0.9.42
Method GET
Evidence 1580565232

Solution: Manually confirm that the timestamp data is not sensitive, and that the data cannot be aggregated to disclose exploitable patterns.

Other information: 1636134222, which evaluates to: 2021-11-05 13:43:42

References:

https://www.owasp.org/index.php/Top_10_2013-A6-...

http://projects.webappsec.org/w/page/13246936/I...

- Charset Mismatch (Header Versus Meta Content-Type Charset)

Description: This check identifies responses where the HTTP Content-Type header declares a charset different from the charset defined by the body of the HTML or XML. When there's a charset mismatch between the HTTP header and content body Web browsers can be forced into an undesirable content-sniffing mode to determine the content's correct character set.

An attacker could manipulate content on the page to be interpreted in an encoding of their choice. For example, if an attacker can control content at the beginning of the page, they could inject script using UTF-7 encoded text and manipulate some browsers into interpreting that text.

URL http://127.0.0.1:7657/viewlicense
Method GET

Solution: Force UTF-8 for all text content in both the HTTP header and meta tags in HTML or encoding declarations in XML.
Other information: There was a charset mismatch between the HTTP Header and the META content-type encoding declarations: [iso-8859-1] and [utf-8] do not match.
Reference: http://code.google.com/p/browsersec/wiki/Part2#...

Last edited: Sun, 02 Feb 2020, 05:56pm by anonymous maybe

Sun, 02 Feb 2020, 02:06pm #2
zzz
Administrator
Zzz

Please report the I2P version tested. I've made changes to the CSP headers that are in dev builds now and will be in the .45 release.

Please review the report above and make recommendations on what's a real vulnerability, and what is high-priority. 15 pages of a report, I have no idea where to start.

Sun, 02 Feb 2020, 05:42pm #3
anonymous maybe
I2P Legend

- I2P Version and Running Environment

>>>
I2P version: 0.9.44-0-1~disco+1
Java version: Debian 11.0.6 (OpenJDK Runtime Environment 11.0.6+10-post-Debian-1deb10u1)
Wrapper version: 3.5.30
Server version: 9.4.15.v20190215
Servlet version: Jasper JSP 2.3 Engine
JSTL version: standard-taglib 1.2.5
JBigI status: Locally optimized library libjbigi-linux-coreihwl_64.so loaded from file
GMP version: 6.1.2
JBigI version: 4
JCpuId version: 3
Encoding: UTF-8
Charset: UTF-8
Built By: Undefined
<<<

Priority to look at: (Medium level)

- X-Frame-Options Header Not Set
- CSP Scanner: Wildcard Directive
- CSP Scanner: style-src unsafe-inline

The rest are low level , look at them whenever you are free. (not all of them harmful though , but just worth looking at)

Last edited: Sun, 02 Feb 2020, 06:04pm by anonymous maybe

Sun, 01 Mar 2020, 06:02pm #4
zzz
Administrator
Zzz

security headers added to xhr1.jsp in 0.9.45-3

Wed, 04 Mar 2020, 02:27pm #5
zzz
Administrator
Zzz

The OP test was on stock 0.9.44.

Proceeding down the list in the OP:

frame-ancestors self was added in Dec. 2019, after .44 but before the OP post.

style-src unsafe-inline remains, would take some work to remove, this is relatively low risk and low priority

nosniff: we have it on most pages but not all resources such as js. Will look if there's a way we can do it globally

will keep working down the list as I have time

Fri, 06 Mar 2020, 02:43am #6
Qubes
I2P Legend

Glad you brought those issues up. If you are looking for a quick fix TPRB addon (standard in IceCat browser) addresses them.

They are a real big nuisance right now if you try to use the outproxy or Zeronet.i2p. Anyway thanks!