Programming 11
From Kyle's Wiki
The hardest part about this mission is not simply calculating the string, but doing it in 3 seconds.
#!/bin/bash USER="" PASS="" if [ -z "$PASS" ]; then echo "You need to set your username and password in the script."; exit 1; fi wget -q -O .login.html http://www.hackthissite.org/user/login --post-data="username=$USER&password=$PASS&btn_submit=Login" --save-cookies=.cookies.txt --keep-session-cookies --referer http://www.hackthissite.org/ grep "Image Validation" .login.html >/dev/null && echo "Error: You need to log out/in in a web browser" && exit 1 wget -q -O - http://www.hackthissite.org/missions/prog/11/ --load-cookies=.cookies.txt --keep-session-cookies --referer http://www.hackthissite.org/missions/programming/ > out.txt TEXT=`cat out.txt | grep "Generated String:" | cut -f 2 -d : | cut -f 1 -d "<" | tr -d [:blank:]` SHIFT=`cat out.txt | grep "Generated String:" | cut -f 3 -d : | cut -f 1 -d "<" | tr -d [:blank:]` echo "If this doesn't work, you'll need to add this separator:" echo $TEXT for EACH in `echo $TEXT | tr "," "\n" | tr ")" "\n" | tr "#" "\n"| tr "'" "\n"| tr "." "\n"| tr "&" "\n"| tr "(" "\n"| tr "!" "\n"| tr "%" "\n"| tr "$" "\n"| tr "+" "\n"| tr "-" "\n"| tr "/" "\n"| tr "*" "\n"| tr "@" "\n"| tr "^" "\n"| tr "\"" "\n"` do let EACH=$EACH-$SHIFT STRING="$STRING$(printf "\\$(printf "%03o" $EACH)")" done echo The string is $STRING wget -q -O - http://www.hackthissite.org/missions/prog/11/index.php --post-data="solution=$STRING" --load-cookies=.cookies.txt --keep-session-cookies --referer http://www.hackthissite.org/missions/prog/11/ > out2.txt grep "answer is wrong" out2.txt | html2text grep -i successfully out2.txt | html2text grep -i "already completed" out2.txt | html2text rm .login.html; rm .cookies.txt; rm out.txt; rm out2.txt