• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Не Работает Cgi-скрипт

  • Автор темы vladis222
  • Дата начала
V

vladis222

Здраствуйте,написал на языке С CGI-скрипт,но при запуске выдается ошибка ntpr!=null,и он не запускается,то есть,по кнопке переадресации, не выводит список введенной информации, подскажите,пожалуйста в чем может быть проблема?

КОД ПРОГРАММЫ:
C++:
// cgi2.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
using namespace std;

void conversion(char *st){
char *p = st;
char hex[3];
int code;
do {
if (*st == '%'){
hex[0] =*(++st); hex[1] =*(++st); hex[2] = 0;
sscanf(hex, "%X", &code);
*p++=(char)code;
}
else if (*st =='+') *p++=' ';
else *p++=*st;
}
while (*st++!=0);
}

int main() {

setlocale (LC_ALL,".1251");

char *contentLen = getenv("CONTENT_LENGTH");
int bytes = atoi(contentLen);
char *STR = (char *)malloc(bytes + 1);

fread(STR, 1, bytes, stdin);
STR[bytes] = 0;

conversion(STR);

int STR_len = strlen(STR);
int i;
for (i = 0; i < STR_len; i++){
if (STR[i] == '&')
STR[i] = ' ';
}

for (i = 0; i < STR_len; i++){
if (STR[i] == 'h' && STR[i+1] == 't' && STR[i+2] == 'm' && STR[i+3] == 'l'){
printf("Content-type: text/html\n\n");
break;
}
else if(STR[i] == 's' && STR[i+1] == 't' && STR[i+2] == 'r'){
printf("Content-type: text/str\n\n");
break;
}
else if(STR[i] == 'r' && STR[i+1] == 'e' && STR[i+2] == 'a' && STR[i+3] == 'd' && STR[i+4] == 'd' && STR[i+5] == 'r' && STR[i+6] == 'e' && STR[i+7] == 's' && STR[i+8] == 's'){
printf("Location:http://localhost/readdress.html\n\n");
break;
}
}

printf("<h3>Значения из формы:</h3> %s",STR);
}
 
Мы в соцсетях:

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