{"id":20245259,"url":"https://github.com/iricartb/buffer-overflow-vulnerability-services-tester-tool","last_synced_at":"2025-06-12T20:33:46.471Z","repository":{"id":111274262,"uuid":"104069189","full_name":"iricartb/buffer-overflow-vulnerability-services-tester-tool","owner":"iricartb","description":"Ivan Ricart Borges - Program to detect the existence of remote/local stack-based buffer-overflow vulnerabilities using the standard communication protocol for each service.","archived":false,"fork":false,"pushed_at":"2021-05-15T12:16:42.000Z","size":3308,"stargazers_count":54,"open_issues_count":0,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-06-12T20:33:43.044Z","etag":null,"topics":["buffer-overflow","cpp","customize","ftp-server","imap-server","libwsock32","mingw","pop3-server","services","smtp-server","stf","tester","vulnerability-detection"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iricartb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-09-19T11:59:46.000Z","updated_at":"2024-08-12T19:32:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc903b25-66cb-4574-9809-686d4b4dc8bb","html_url":"https://github.com/iricartb/buffer-overflow-vulnerability-services-tester-tool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iricartb/buffer-overflow-vulnerability-services-tester-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iricartb%2Fbuffer-overflow-vulnerability-services-tester-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iricartb%2Fbuffer-overflow-vulnerability-services-tester-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iricartb%2Fbuffer-overflow-vulnerability-services-tester-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iricartb%2Fbuffer-overflow-vulnerability-services-tester-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iricartb","download_url":"https://codeload.github.com/iricartb/buffer-overflow-vulnerability-services-tester-tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iricartb%2Fbuffer-overflow-vulnerability-services-tester-tool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259522452,"owners_count":22870469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buffer-overflow","cpp","customize","ftp-server","imap-server","libwsock32","mingw","pop3-server","services","smtp-server","stf","tester","vulnerability-detection"],"created_at":"2024-11-14T09:19:56.675Z","updated_at":"2025-06-12T20:33:46.456Z","avatar_url":"https://github.com/iricartb.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"https://www.kaspersky.com.br/content/pt-br/images/repository/isc/2017-images/virus-img-19.jpg\" width=\"100%\" /\u003e\n\n\u003ch1\u003eBOVSTT\u003c/h1\u003e\n\n\u003ch2\u003eBuffer Overflow Vulnerability Services Tester Tool\u003c/h2\u003e\n\nProgram to detect the existence of remote / local stack-based buffer-overflow vulnerabilities using the \nstandard communication protocol for each service.\u003cbr\u003e\u003cbr\u003e\nThe application allows to customize the testing mechanism of each service through templates, these \ntemplates are simply plain text files, which accept some kind of special words (see STF section), these files \nare stored in the \u003cservices\u003e folder with a direct association between the protocol and the template and with \nthe extension STF (Service Tester File).\u003cbr\u003e\u003cbr\u003e\nCurrently the application version 2.5 supports the FTP, IMAP, POP3 and SMTP protocol.\u003cbr\u003e\u003cbr\u003e\nTo carry out this task the application allows to specify different types of parameters.\n\n\u003ch2\u003eParameters\u003c/h2\u003e\n\n\u003ch3\u003eAplication Layer Protocol\u003c/h3\u003e\nDescription: Specifies the type of protocol to be tested.\u003cbr\u003e\nRequired: Yes\u003cbr\u003e\nOptions: -ap --application-layer-protocol \u0026ltprotocol\u0026gt\u003cbr\u003e\nAccepted values: FTP, POP3 or SMTP\n\n\u003ch3\u003eTarget Hostname IP\u003c/h3\u003e\nDescription: Specifies host / ip address to be tested\u003cbr\u003e\nRequired: Yes\u003cbr\u003e\nOptions: -th --target-hostname-ip \u0026lthostname\u0026gt\u003cbr\u003e\nAccepted values: Any valid host / ip address.\n\n\u003ch3\u003eTarget Port\u003c/h3\u003e\nDescription: Specifies the destination port of the service.\u003cbr\u003e\nRequired: No\u003cbr\u003e\nOptions: -tp --target-port \u0026ltport\u0026gt\u003cbr\u003e\nAccepted values: 1 - 65535\u003cbr\u003e \nIf the user does not enter this parameter the application will automatically try to connect to the default \ndestination port according to the service and the type of encryption.\u003cbr\u003e\nFor example for POP3 service and SSL encryption the default port would be 995.\n\n\u003ch3\u003eCryptographic Security Protocol\u003c/h3\u003e\nDescription: Specifies the type of service encryption.\u003cbr\u003e \nRequired: No\u003cbr\u003e \nOptions: -cp --cryptographic-security-protocol \u0026ltcrypt protocol\u0026gt\u003cbr\u003e  \nAccepted values: SSL, TLS\u003cbr\u003e  \nNote: No support yet.\n\n\u003ch3\u003eLogin Username\u003c/h3\u003e\nDescription: Specifies the user of the credentials.\u003cbr\u003e\nRequired: No\u003cbr\u003e\nOptions: -lu --login-username \u0026ltusername\u0026gt\u003cbr\u003e \nAccepted values: Alphanumeric value.\u003cbr\u003e \nThis parameter allows to customize the authentication mechanism of the protocol.\u003cbr\u003e \nThe application will initiate the authentication protocol through user / password as soon as it reads the \n#AUTH macro within the STF file associated with the protocol. If the authentication by user / password fails, \nthe program will cancel its execution.\u003cbr\u003e\nEvery time the application reads the keyword \u0026ltlogin-username\u0026gt inside the STF file, it will be replaced by the \nvalue of this parameter. \n\n\u003ch3\u003eLogin Password\u003c/h3\u003e\nDescription: Specifies the password of the credentials.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -lu --login-password \u0026ltpassword\u0026gt\u003cbr\u003e\nAccepted values: Alphanumeric value.\u003cbr\u003e\nThis parameter allows to customize the authentication mechanism of the protocol.\u003cbr\u003e \nEvery time the application reads the keyword \u0026ltlogin-password\u0026gt inside the STF file, it will be replaced by the \nvalue of this parameter. \n\n\u003ch3\u003eBuffer Size Length\u003c/h3\u003e\nDescription: Specifies the buffer size.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -bs --buffer-size-length \u0026ltsize\u0026gt\u003cbr\u003e\nAccepted values: Numeric value greater than 0.\u003cbr\u003e \nDefault value: 1024\u003cbr\u003e\nThis parameter allows to customize the size of the buffer to send.\u003cbr\u003e\nEvery time the application reads the keyword \u0026ltbuffer\u0026gt inside the STF file, it will be replaced by the sentence \n{ --buffer-character } * { --buffer- size-length }, in this case for example A*1024. \n\n\u003ch3\u003eBuffer Character\u003c/h3\u003e\nDescription: Specifies the buffer character.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -bc --buffer-character \u0026ltcharacter\u0026gt\u003cbr\u003e \nAccepted values: Alphanumeric value.\u003cbr\u003e\nDefault value: ‘A’\n\n\u003ch3\u003eOutput Verbose\u003c/h3\u003e\nDescription: Specifies whether the user wants to obtain more information during the negotiation process \nwith the remote host.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -ov --output-verbose\u003cbr\u003e\nAccepted values: none \n\n\u003ch3\u003eCredits\u003c/h3\u003e\nDescription: View the author of the program.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -c --credits\u003cbr\u003e\nAlone: Yes, cannot be combined with another parameter. \n\n\u003ch3\u003eVersion\u003c/h3\u003e\nDescription: View the version of the program.\u003cbr\u003e \nRequired: No\u003cbr\u003e\nOptions: -v --version\u003cbr\u003e\nAlone: Yes, cannot be combined with another parameter.\n\n\u003ch2\u003eSTF Files\u003c/h2\u003e\nThe STF files could be considered as a template, these are simply plain text files, which accept some kind of \nspecial words, these files are stored in the \u003cservices\u003e folder with a direct association between the protocol \nand the template and with the extension STF (Service Tester File).\u003cbr\u003e\u003cbr\u003e\nFor example for the FTP protocol there is an STF file in the \u003cservices\u003e folder called FTP.stf, for SMTP there is \nan STF file called SMTP.stf and so on.\u003cbr\u003e\u003cbr\u003e\nOnce the connection to the remote host is established, the application begins to read the corresponding STF \nfile, later it’ll read line by line until finalizing the file or until it finds an error.\u003cbr\u003e\u003cbr\u003e\nEach line of the file represents a command to send to the remote host, with the particularity that it accepts \na series of keywords that will be translated at runtime, these keywords are as follows:\u003cbr\u003e\u003cbr\u003e\n\u003cul\u003e\n   \u003cli\u003e\u0026ltlogin-username\u0026gt: Each time the application finds this tag inside the file STF, this will be replaced by \nthe value of the parameter -lu --login-username entered by the user.\u003c/li\u003e\n   \u003cli\u003e\u0026ltlogin-password\u0026gt: Each time the application finds this tag inside the file STF, this will be replaced by \nthe value of the parameter -lp --login-password entered by the user.\u003c/li\u003e\n   \u003cli\u003e\u0026ltbuffer\u0026gt: Each time the application finds this tag inside the file STF, this will be replaced by the \nvalues of the parameters { --buffer-character } * { --buffer- size-length } entered by the user.\u003c/li\u003e\n   \u003cli\u003e\u0026ltremote-domain\u0026gt: Each time the application finds this tag inside the file STF, this will be replaced by \nthe domain value of the parameter -th --target-hostname-ip entered by the user.\u003c/li\u003e\n\u003c/ul\u003e\nThese files also accept a series of macros that allow to change the behavior of the testing mechanism, These \nmacros are as follows:\u003cbr\u003e\u003cbr\u003e\n\u003cul\u003e\n   \u003cli\u003e#AUTH: Must be entered without further information, implies that all the sentences that follow will \nbe executed only if the process of authentication has been satisfactory. The authentication process \nis automatic, for this it is important that the user has entered the user and password as parameters \nin the application.\u003cbr\u003e\nIts use is not obligatory, but in case of applying it we could send commands to the remote server \nwhere only the authenticated users can have access\u003c/li\u003e\n   \u003cli\u003e#RETURN \u0026ltVALUE\u0026gt : \u0026ltCOMMAND\u0026gt: The command \u0026ltCOMMAND\u0026gt will be sent only if a return value \n\u003cVALUE\u003e has been returned in the last send process, otherwise the test program will stop, could be \nconsidered as a conditional command, in case the remote host has answered in its last command a \ncertain value, the system continues with the test.\u003c/li\u003e\n\u003c/ul\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firicartb%2Fbuffer-overflow-vulnerability-services-tester-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firicartb%2Fbuffer-overflow-vulnerability-services-tester-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firicartb%2Fbuffer-overflow-vulnerability-services-tester-tool/lists"}