Sec-Coding 1

misc

You should fix vulnerabilities of the given source code, WITHOUT changing its normal behaviour. Link
与えられたC++のソースファイルに対して、通常の動作を変更することなく脆弱性を修正する問題です。

とりあえず、stringとgetlineを使うようにしてみました。
#include <vector>
#include <iostream>
#include <string>
#include <windows.h>

using namespace std;

int main()
{
    string line;
    vector<char> str(MAX_PATH);
   
    cout << "Enter your name: ";
    //cin >> str.data();
    getline(cin, line);

    //cout << "Hello " << str.data() << " :)" << endl;
    cout << "Hello " << line << " :)" << endl;

    return -14;
}
修正したソースファイルをアップすると、フラグが表示されました。

no title

フラグは、
8b12be66c589eef94f541dc6326a0109
です。

プログラミング言語C++第4版
ビャーネ・ストラウストラップ
SBクリエイティブ
2015-02-28