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