• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Wininet && Masm32 && Httpsendrequest

  • Автор темы FourtySeven
  • Дата начала
Статус
Закрыто для дальнейших ответов.
F

FourtySeven

Пишу программу которая будет средствами wininet получать содержимое htm странички к сожалнию выдает ошибку на вызове HttpSendRequest :
Код:
	.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\wininet.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\wininet.lib


.data
count dd 0
hsocket dd 0
hConnect dd 0
hRequest dd 0
agent db "IE",0
serv db "fourty-seven.nm.ru",0
page1 db "index.htm",0
filt db "*/*",0
frm db "os",0
header db "Content-Type: application/x-www-form-urlencoded",13,10,
"Accept-Language:ru",13,10,
"Accept-Encoding:gzip, deflate",13,10,13,10,0
method db "GET",0
;------------------------------
hStdOut dd ?
.data?
content db 4096 DUP(?)	 ;Содержимое странички
.code
start:
INVOKE InternetOpen,ADDR agent,INTERNET_OPEN_TYPE_PRECONFIG,0,0,0
MOV hsocket,EAX


INVOKE InternetConnect,hsocket,ADDR serv,INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 1
MOV hConnect,EAX

INVOKE HttpOpenRequest,hConnect,ADDR method,ADDR page1,NULL,NULL,ADDR filt, INTERNET_FLAG_KEEP_CONNECTION, 1
MOV hRequest,EAX

INVOKE HttpSendRequest,hRequest,ADDR header, SIZEOF header,NULL, NULL; ЗДЕСЬ ОТЛАДЧИК ВЫДАЕТ ОШИБКУ (((

INVOKE InternetReadFile,hRequest,ADDR content,1,ADDR count // Читаем байт. 


INVOKE InternetCloseHandle,hRequest
INVOKE InternetCloseHandle,hConnect
INVOKE InternetCloseHandle,hsocket
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

INVOKE GetStdHandle,STD_OUTPUT_HANDLE
MOV hStdOut,EAX

INVOKE WriteConsoleA,hStdOut,ADDR content,1,ADDR count,NULL

INVOKE ExitProcess,0
end start

Заранее благодарен за совет.
 
Z

zubr

Сразу что бросается в глаза - тип запроса GET, а используешь заголовок "Content-Type: application/x-www-form-urlencoded", данный тип заголовка используется для передачи POST-данных формы. Попробуй вместо хидера передавать NULL, да и вместо filt попробуй передавать NULL.
 
F

FourtySeven

Спасибо. Еще один вопрос если я хочу передать GET запрос то как быть(Допустим login=123&pas=qwerty) и тоже самое для POST как составлять заголовки?
 
Z

zubr

Ну аутентификация, по моему, от заголовков не зависит, более того многие заголовки вообще не обязательны. Важно, когда передаешь POST-дату серверу устанавливать заголовок "Content-Type: application/x-www-form-urlencoded", а когда передаешь файл-аттач серверу, то заголовок типа "Content-Type: multipart/form-data; boundary=---------------------------7d636b2qwert". Также заголовки удобней передавать функцией HttpAddRequestHeaders. А вообще, чтобы не заморачиваться с изучением нюансов HTTP-протокола, советую воспользоваться каким нибудь сниффером HTTP-пакетов. Я в свое время пользовался Http Analyzer. Сначала отправляешь через броузер запрос, с помощью сниффера смотришь, что броузер посылает (заголовки, данные), формируешь аналогичный запрос у себя.
 
N

newsoft

Ребята,как быть если при загрузке страницы,сервер просит COOKIE?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!