Web Application Sample Report
Web Application Sample Report
{Month} {Year}
Document History
Version Date Author Remark
1.0 {Date} {Author} Document Creation
We are catering to a diverse portfolio of clients across the world, who are leaders in banking,
finance, technology, healthcare, manufacturing, media houses, information security, and
education, including government agencies. Having various empanelment and accreditations,
along with a strong word of mouth, has helped us win new customers. Our thorough
professionalism and quality of work have brought repeat business from our existing clients.
We thank you for considering our security services and requesting a proposal. We look
forward to extending the expertise of our passionate, world-class professionals to achieve
your security objectives.
Security Assessment of {Client Name} web application has been performed, considering
below common security issues:
Overall security postures of the application are moderate. However, some of the
security controls/measures have not been properly thought of/implemented during the
design and coding of the application. The exploitation is not very likely due to
randomness in identifiers.
The security assessment revealed 0 critical severity security issue, 1 high severity
security issue, 11 medium severity issues, 0 low severity issues in this application. The
consolidated summary of the assessment has been presented in the Executive Summary
section. Additional information is contained within the Detailed Vulnerability
Information section of this report.
The scope of this assessment was limited to web applications created by {Client Name}
located at {URL}
The security assessment was performed for {Number of Days} days from {Start Date} to
{End Date}.
The Payatu security team performs real-time security assessments on the web
application. These assessments aim is to uncover any security issues in the assessed
web application, explain the impact and risks associated with the found issues, and
provide guidance in the prioritization and remediation steps.
It was identified that the web application did not implement Access Control features,
especially ‘{Feature Name}’ and ‘{Feature Name}.’ Although features are less likely to be
exploited due to randomness in the generated document ID. The application also
doesn’t properly sanitize the user input before rendering on the page, leading to XSS at
many endpoints and even SSRF using a combination of features. The web application
also lacks rate-limiting at certain endpoints.
► An attacker can potentially take over accounts and obtain private information if the
attacker conducts a successful XSS attack.
► An attacker can potentially take over accounts by brute-forcing against a list of
known passwords.
► An attacker can get access to server infrastructure and source code.
To perform web application portal assessment, we have setup Burp Suite proxy tool,
Which intercepts the HTTP/HTTPS traffic originated from browser to server.
{Client Logo}
https://portswigger.net/support/configuring-your-browser-to-work-with-burp
For all the mentioned reproduction steps in this report, we assume Burp Suite testing
environment setup is done.
Apart from Burp Suite, one more tool, Firefox Multi-Account Container was used to
easily shift to different accounts.
The discovered vulnerabilities table and chart illustrated below provides a snapshot
view of the number and severity of issues discovered during this security assessment.
This issue can impact the application severely and should be addressed
CRITICAL immediately. Attackers can gain root or superuser access or severely
impact system operation.
This issue can cause a problem like unprivileged access and should be
HIGH
addressed as soon as possible.
MEDIUM This issue may pose a significant threat over a longer period of time.
Vulnerabilities by Severity
12 11
10
2 0 1
0
0
Critical
High
Medium
Low
Below given chart shows the vulnerability matrix based on the category of
vulnerabilities.
4
3.5
No. of Vulnerability
3
2.5
2
1.5
1 Low
0.5
Medium
0
High
Ciritical
Vulnerability Category
PY-CL-002 Missing Rate Limit Checks at Log-in Endpoint MEDIUM Not Fixed
During our assessment, we observed the following properties of the application that are
well designed and serve towards its strengths:
The vulnerabilities below were identified and verified by Payatu during the
process of this web Application Penetration Test for the client. Retesting should
be planned to follow the remediation of these vulnerabilities.
Steps to Reproduce:
8. Click the ‘Save Attachment As..’ option. Proceed to save the attachment.
9. View the saved file, and you can read the server's process environment file.
Affected Resource
• Add limit on the number of times an unsuccessful attempt can be made for an
account within a specific time.
• Add a captcha to prevent against automated brute force attack. Use industry-
standard captcha like ReCaptcha.
Steps to Reproduce:
1. Go to {URL}
2. Enter the username and password.
3. Now go to Burp Suite > Proxy > HTTP History.
4. Select the request with endpoint ‘{URL}’.
5. Send the request to Intruder. Check the image for reference.
6. Go to the Intruder > Position tab. Refer to the image.
7. Click on ‘Clear $’, then select the password as highlighted and click ‘Add $’.
8. Next go to ‘Payloads’ tab > ‘Payload Options’.
12. It can be seen that there is not rate-limiting by analyzing the server response. The
server checks for the validity of the password and returns the 400 or 200 status
accordingly.
www.payatu.com
19
Affected Resource
Remediation:
• Implement proper authorization checks. Ensure that the user owns the specific
document before performing delete action.
Steps to Reproduce:
www.payatu.com
6. Now, we start the attack—log in as any different user.
7. Turn on intercept in Burp Suite.
8. Click the delete icon of any document (other than Note).
9. Intercept the request to ‘{URL}’
10. Modify the request params by replacing previously noted ID. Refer to the image.
Original Request
Edited Request
11. Refresh the ‘{Tab Name}’ tab on the first user. Note the missing document.
• Implement proper authorization checks. Ensure that the user owns the specific Note
before performing delete action.
Steps to Reproduce:
Edited Request
13. On checking the Burp Suite. It can be noted that the server returns 500.
Request
Response
4. Open Burp Suite and look for a request to the following endpoint “{URL}”.
Edited Request
Note:
• In case of attacker and victim are in the same team, then the document disappears
from the victim's list.
• In case the attacker and victim are from different teams, then they both can access
the document.
• Ensure that the link has a valid schema, like http:// or https://
Steps to Reproduce:
Edited Request
Steps to Reproduce:
Steps to Reproduce:
Alert popup
Broken Image:
3. Go to ‘Upload Document’.
4. Upload the previously renamed document and click ‘Save’.
5. Now, go to {Tab Name} > {Tab Name} tab. Observe the popup. Refer to the image
below.
6. Now, go to ‘{Tab Name}’. Observe the popup. Refer to the images below.
Steps to Reproduce:
JavaScript Code:
new WebSocket(<url>);
3. Observe that the connection is established successfully, and messages are being
transferred.
Request:
• Upload the following file at any location from where it can be served.
o Cookie
o Access-Control-Allow-Origin
Missing Headers:
o X-Frame-Options
Affected Resources
• Set ‘X-Frame-Options’ on REST API endpoints and content which should not be
frameable
• Set cookies with ‘HttpOnly’ and ‘SameSite’ option.
• Set ‘Access-Control-Allow-Origin’ only where necessary and to specific domain
values rather than a wildcard.
Steps to Reproduce:
1. Cookie
o Go to {URL}
o Open developer console
o Enter ‘document.cookie’
Client_Name Document Control: Confidential
Document Version: 1.0 Page 35 of 46
o Observe that all the cookies are being shown. Meaning ‘HttpOnly’ is not set.
2. X-Frame-Options
I. Request to {URL}
II. Observer the headers in Burp Suite.
III. Note the missing ‘X-Frame-Options’ header.
3. Access-Allow-Origin
I. Open the Burp Suite history tab.
II. Request to endpoint ‘{URL}’
III. Observe the headers. Note the ‘Access-Control-Allow-Origin’ set to
wildcard.
Steps to Reproduce:
The below table provides an at-a-glance view of the remediation solution and the best
practices that should be taken into consideration to improve the security posture of the
scoped-in application:
PY-CL-012 • The Custom error should be displayed instead of the full Error Stack.
5.1 References
In this section, we have given additional data regarding the vulnerabilities that we have
found during the engagement to provide better clarity and more insight into the bugs
Ref: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
An attacker can use XSS to send a malicious script to an unsuspecting user. The
end user's browser has no way to know that the script should not be trusted, and
will execute the script. Because it thinks the script came from a trusted source,
the malicious script can access any cookies, session tokens, or other sensitive
information retained by the browser and used with that site. These scripts can
even rewrite the content of the HTML page.
Ref: https://owasp.org/www-community/attacks/xss/
5.2 Observations
In the observation section, we document any specific issue that we have observed,
which, while does not directly lead to any vulnerability, maybe something that needs to
be looked at from the perspective of a functional bug or configuration issue.
Testing Process
While using the application, use SQL injection payload at various endpoints. For
example, during editing notes.
Request:
Edited Request
The server threw a proper error when trying to manipulate parameters in the OAuth
token generation process.
Corresponding Response
The server always threw ‘Unauthorized error’ whenever Authorization token was
missing.