diff --git a/do-register.sh b/do-register.sh index edf4880..b406ec7 100755 --- a/do-register.sh +++ b/do-register.sh @@ -19,7 +19,8 @@ statuspage() { echo "

" echo "You need to know the animu girls better." echo "

" - echo "Go back" + echo "You have to go back" + echo $(date +"%Y-%m-%d %H:%M:%S") "$realip" "$login" failed registration with wrong captcha >> /var/log/register/log echo "" elif [ "$password" != "$retype" ] then @@ -28,9 +29,10 @@ statuspage() { echo "

" echo "Passwords do not match." echo "

" - echo "Go back" + echo "You have to go back" echo "" + echo $(date +"%Y-%m-%d %H:%M:%S") "$realip" "$login" failed registration with wrong password >> /var/log/register/log else echo "
"
 		registerscript
@@ -40,8 +42,11 @@ statuspage() {
 		if [[ $regstatus == 0 ]]
 		then
 			echo "Go to Login" 
+			registercounter
+			echo $(date +"%Y-%m-%d %H:%M:%S") "$realip" "$login" has registered >> /var/log/register/log
 		else
-			echo "Go back"
+			echo "You have to go back"
+			echo $(date +"%Y-%m-%d %H:%M:%S") "$realip" shit is fucked yo >> /var/log/register/log
 
 		echo ""
 		fi
@@ -72,17 +77,36 @@ registerscript() {
 	unset secret
 }
 
+registercounter(){
+	date -d '+1 minute' +%s > /tmp/counter
+}
+
+ratelimit(){
+	currentstamp=$(date +%s)
+	if [[ "$currentstamp" < $(cat /tmp/counter) ]]
+	then
+		# ratelimit
+		echo $(cat /tmp/counter)+120 | bc > /tmp/counternew
+		mv /tmp/counternew /tmp/counter
+		captcha=false
+		echo $(date +"%Y-%m-%d %H:%M:%S") $realip ratelimiting until $(date  +"%Y-%m-%d %H:%M:%S" -d @$(cat /tmp/counter)) >> /var/log/register/log
+	else
+		echo $(date +"%Y-%m-%d %H:%M:%S") $realip noratelimit >> /var/log/register/log
+	fi
+}
 
 # receive post data
 data=$(cat)
-id=$(rawurldecode "$(echo "$data" | cut -d '=' -f 5)")
+id=$(rawurldecode "$(echo "$data" | cut -d '=' -f 5)" | sed -e 's/"//g')
 login=$(rawurldecode "$(echo "$data" | cut -d '=' -f 2 | cut -d '&' -f 1)")
 password=$(rawurldecode "$(echo "$data" | cut -d '=' -f 3 | cut -d '&' -f 1)")
 retype=$(rawurldecode "$(echo "$data" | cut -d '=' -f 4 | cut -d '&' -f 1)")
 
 # returns true or false depending if user passed or not
 captcha=$(checkcaptchouli "$id")
+realip=$(env | grep HTTP_X_FORWARDED_FOR | cut -d '=' -f 2 | cut -d ',' -f 1)
 
+ratelimit
 statuspage
 
 exit 0