AllOver30 – “SiteRip Hardcore R‑T” – Full Write‑Up
(CTF challenge, 2024‑04, 500 points – Web / Reverse‑Engineering / Crypto)
The internet offers unparalleled access to adult content, allowing users to browse and consume material at any time and from any location. Coupled with the anonymity the internet provides, individuals can explore content they might not openly discuss or seek out in public or traditional settings.
LD_PRELOADCreate log_send.c:
#define _GNU_SOURCE
#include <dlfcn.h>
#include <stdio.h>
#include <sys/socket.h>
#include <unistd.h>
ssize_t send(int sockfd, const void *buf, size_t len, int flags)
static ssize_t (*real_send)(int, const void*, size_t, int) = NULL;
if (!real_send) real_send = dlsym(RTLD_NEXT, "send");
FILE *f = fopen("/tmp/rip_out.log", "ab");
fwrite(buf, 1, len, f);
fclose(f);
return real_send(sockfd, buf, len, flags);
Compile and run:
$ gcc -shared -fPIC -o log_send.so log_send.c -ldl
$ LD_PRELOAD=./log_send.so ./rip
/tmp/rip_out.log now contains the full HTTP request, including the ticket and the HTTP response (the token line). AllOver30 SiteRip Hardcore R-T
The challenge description mentions a remote service listening on port 1337. To understand the protocol, we built a simple Python Flask server that mimics the expected behavior:
# mock_server.py
from flask import Flask, request, jsonify
import hmac, hashlib, os
app = Flask(__name__)
SECRET = b'\x00' * 8 # placeholder – real secret derived from key
@app.route('/store', methods=['POST'])
def store():
ticket = request.data
# validate HMAC
expected = hmac.new(SECRET, b'ALLOVER30', hashlib.sha256).digest()
if ticket != expected:
return "Invalid ticket", 403
# generate random path & store flag
token = os.urandom(8).hex()
flag = open('flag.txt').read().strip()
# save flag to in‑memory dict
FLAGS[token] = flag
return f"/flag/token\n", 200
FLAGS = {}
if __name__ == '__main__':
app.run(host='0.0.0.0', port=1337)
Running the binary against this server confirmed that it receives a path in response: Compile and run: $ gcc -shared -fPIC -o log_send
$ ./rip
[+] Connected to 127.0.0.1:1337
[+] Received: /flag/2b7e3c4a5f1d9e0a
Thus the flag lives at http://10.10.10.42:1337/flag/<token>.
$ ./rip
Cheater! (debugger detected)
The binary immediately aborts when run under the normal terminal (which runs under strace/gdb by default in many CTF platforms). This confirms the anti‑debug checks. Introduction: Briefly introduce the topic
The digital age has enabled the proliferation of niche content. Platforms and websites can cater to very specific tastes or demographics, as seen with the AllOver30 SiteRip Hardcore R-T community. This allows for a more personalized experience, where individuals can find content that closely matches their preferences.