亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pp_ftp.c

?? 著名的入侵檢測系統snort的最新版本的源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
            if (numPercents >= MAX_PERCENT_SIGNS)            {                /* Alert on string format attack in parameter */                ftp_eo_event_log(Session, FTP_EO_PARAMETER_STR_FORMAT,                    NULL, NULL);                return FTPP_ALERTED;            }        }        break;    case e_int:        /* check that this_param is all digits up to next space */        {            do            {                if (!isdigit((int)(*this_param)))                {                    /* Alert on non-digit */                    return FTPP_INVALID_PARAM;                }                this_param++;            }            while ((this_param < end) && (*this_param != ' ') );        }        break;    case e_number:        /* check that this_param is all digits up to next space         * and value is between 1 & 255 */        {            int iValue = 0;            do            {                if (!isdigit((int)(*this_param)))                {                    /* Alert on non-digit */                    return FTPP_INVALID_PARAM;                }                iValue = iValue * 10 + (*this_param - '0');                this_param++;            }            while ((this_param < end) && (*this_param != ' ') );            if ((iValue > 255) || (iValue == 0))                return FTPP_INVALID_PARAM;        }        break;    case e_char:        /* check that this_param is one of chars specified */        {            int bitNum = (*this_param & 0x1f);            if (!isalpha((int)(*this_param)))            {                /* Alert on non-char */                return FTPP_INVALID_PARAM;            }            else            {                if (!(ThisFmt->format.chars_allowed & (1 << (bitNum-1))) )                {                    /* Alert on unexpected char */                    return FTPP_INVALID_PARAM;                }            }            this_param++; /* should be a space */        }        break;    case e_date:        /* check that this_param conforms to date specified */        {            const char *tmp_ch = this_param;            iRet = validate_date_format(ThisFmt->format.date_fmt, &tmp_ch);            if (iRet != FTPP_SUCCESS)            {                /* Alert invalid date */                return FTPP_INVALID_PARAM;            }            if (!isspace((int)(*tmp_ch)))            {                /* Alert invalid date -- didn't make it to end of parameter.                Overflow attempt? */                return FTPP_INVALID_PARAM;            }            this_param = tmp_ch;        }        break;    case e_host_port:        /* check that this_param is #,#,#,#,#,# */        {            ip_t ip;            u_int16_t port=0;            int ret = getIP(&this_param, end, ' ', &ip, &port);            switch (ret)            {            case FTPP_NON_DIGIT:                /* Alert on non-digit */                return FTPP_INVALID_PARAM;                break;            case FTPP_INVALID_ARG:                /* Alert on number > 255 */                return FTPP_INVALID_PARAM;                break;            case FTPP_MALFORMED_IP_PORT:                /* Alert on malformed host-port */                return FTPP_INVALID_PARAM;                break;            }            if ((Session->client_conf->bounce.on) &&                (Session->client_conf->bounce.alert))            {#ifdef SUP_IP6                if (!IP_EQUALITY(&ip, GET_SRC_IP(p)))#else                if (ip != ntohl(p->ip4_header->source.s_addr))#endif                {                    int alert = 1;                    char *ipPtr = (char *)&ip;                    FTP_BOUNCE_TO *BounceTo = ftp_bounce_lookup_find(                        Session->client_conf->bounce_lookup, ipPtr, 4, &iRet);                    if (BounceTo)                    {                        if (BounceTo->portlo)                        {                            if (BounceTo->porthi)                            {                                if ((port >= BounceTo->portlo) &&                                    (port <= BounceTo->porthi))                                    alert = 0;                            }                            else                            {                                if (port == BounceTo->portlo)                                    alert = 0;                            }                        }                    }                                        /* Alert on invalid IP address for PORT */                    if (alert)                    {                        ftp_eo_event_log(Session, FTP_EO_BOUNCE, NULL, NULL);                        /* Return here -- because we will likely want to                         * inspect the data traffic over a bounced data                         * connection */                        return FTPP_PORT_ATTACK;                    }                }            }#ifdef SUP_IP6            Session->clientIP = ip;#else            Session->clientIP = htonl(ip);#endif            Session->clientPort = port;            Session->data_chan_state |= DATA_CHAN_PORT_CMD_ISSUED;            if (Session->data_chan_state & DATA_CHAN_PASV_CMD_ISSUED)            {                /*                 * If there was a PORT command previously in                 * a series of pipelined requests, this                 * cancels it.                 */                Session->data_chan_state &= ~DATA_CHAN_PASV_CMD_ISSUED;            }            IP_CLEAR(Session->serverIP);            Session->serverPort = 0;        }        break;    }    ThisFmt->next_param = this_param;    return FTPP_SUCCESS;}/* * Function: check_ftp_param_validity( *                            Packet *p, *                            char *params_begin, *                            char *params_end, *                            FTP_PARAM_FMT *param_format, *                            FTP_SESSION *Session) * * Purpose: Recursively determines whether each of the parameters for *          an FTP command are valid. * * Arguments: p              => Pointer to the current packet *            params_begin   => Pointer to beginning of parameters *            params_end     => End of params buffer *            param_format   => Parameter format specifier for this command *            Session        => Pointer to the session info * * Returns: int => return code indicating error or success * */int check_ftp_param_validity(SFSnortPacket *p,                             const char *params_begin,                             const char *params_end,                             FTP_PARAM_FMT *param_format,                             FTP_SESSION *Session){    int iRet = FTPP_ALERT;    FTP_PARAM_FMT *ThisFmt = param_format;    FTP_PARAM_FMT *NextFmt;    const char *this_param = params_begin;    if (!param_format)        return FTPP_INVALID_ARG;    if (!params_begin)        return FTPP_INVALID_ARG;    if ((!ThisFmt->next_param_fmt) && (params_begin >= params_end))        return FTPP_SUCCESS;    ThisFmt->next_param = params_begin;    if (ThisFmt->optional_fmt)    {        /* Check against optional */        iRet = validate_param(p, this_param, params_end,                              ThisFmt->optional_fmt, Session);        if (iRet == FTPP_SUCCESS)        {            const char *next_param;            NextFmt = ThisFmt->optional_fmt;            next_param = NextFmt->next_param+1;            iRet = check_ftp_param_validity(p, next_param, params_end,                                            NextFmt, Session);            if (iRet == FTPP_SUCCESS)            {                this_param = NextFmt->next_param+1;            }        }    }    if ((iRet != FTPP_SUCCESS) && (ThisFmt->choices))    {        /* Check against choices -- one of many */        int i;        int valid = 0;        for (i=0;i<ThisFmt->numChoices && !valid;i++)        {            /* Try choice [i] */            iRet = validate_param(p, this_param, params_end,                              ThisFmt->choices[i], Session);            if (iRet == FTPP_SUCCESS)            {                const char *next_param;                NextFmt = ThisFmt->choices[i];                next_param = NextFmt->next_param+1;                iRet = check_ftp_param_validity(p, next_param, params_end,                                                NextFmt, Session);                if (iRet == FTPP_SUCCESS)                {                    this_param = NextFmt->next_param+1;                    valid = 1;                    break;                }            }        }    }    else if ((iRet != FTPP_SUCCESS) && (ThisFmt->next_param_fmt))    {        /* Check against next param */        iRet = validate_param(p, this_param, params_end,                          ThisFmt->next_param_fmt, Session);        if (iRet == FTPP_SUCCESS)        {            const char *next_param;            NextFmt = ThisFmt->next_param_fmt;            next_param = NextFmt->next_param+1;            iRet = check_ftp_param_validity(p, next_param, params_end,                                            NextFmt, Session);            if (iRet == FTPP_SUCCESS)            {                this_param = NextFmt->next_param+1;            }        }    }    if (iRet == FTPP_SUCCESS)    {        ThisFmt->next_param = this_param;    }    return iRet;}/* * Function: initialize_ftp(FTP_SESSION *Session, Packet *p, int iMode) * * Purpose: Initializes the state machine for checking an FTP packet. *          Does normalization checks. *  * Arguments: Session        => Pointer to session info *            p              => pointer to the current packet struct *            iMode          => Mode indicating server or client checks * * Returns: int => return code indicating error or success * */int initialize_ftp(FTP_SESSION *Session, SFSnortPacket *p, int iMode){    int iRet;    const unsigned char *read_ptr = p->payload;    FTP_CLIENT_REQ *req;    /* Normalize this packet ala telnet */    iRet = normalize_telnet(Session->global_conf, NULL, p, iMode);    if (iRet != FTPP_SUCCESS && iRet != FTPP_NORMALIZED)    {        if (iRet == FTPP_ALERT)        {            if (Session->global_conf->global_telnet.detect_anomalies)            {                ftp_eo_event_log(Session, FTP_EO_EVASIVE_TELNET_CMD, NULL, NULL);        }   }        return iRet;    }        if (p->flags & FLAG_ALT_DECODE)    {        /* Normalized data will always be in decode buffer */        if ( ((Session->client_conf->telnet_cmds.alert) &&              (iMode == FTPP_SI_CLIENT_MODE)) ||             ((Session->server_conf->telnet_cmds.alert) &&              (iMode == FTPP_SI_SERVER_MODE)) )        {            /* alert -- FTP channel with telnet commands */            ftp_eo_event_log(Session, FTP_EO_TELNET_CMD, NULL, NULL);            return FTPP_ALERT; /* Nothing else to do since we alerted */        }        read_ptr = _dpd.altBuffer;    }    if (iMode == FTPP_SI_CLIENT_MODE)        req = &Session->client.request;    else if (iMode == FTPP_SI_SERVER_MODE)        req = (FTP_CLIENT_REQ *)&Session->server.response;    else        return FTPP_INVALID_ARG;    /* Set the beginning of the pipeline to the start of the     * (normalized) buffer */    req->pipeline_req = (const char *)read_ptr;    return FTPP_SUCCESS;}/* * Function: do_stateful_checks(FTP_SESSION *Session, Packet *p, *                            FTP_CLIENT_REQ *req, int rsp_code) * * Purpose: Handle stateful checks and state updates for FTP response *          packets. * * Arguments: Session        => Pointer to session info *            p              => Pointer to the current packet struct *            req            => Pointer to current response from packet *                              (this function may be called multiple *                              times for pipelined requests). *            rsp_code       => Integer response value for server response * * Returns: int => return code indicating error or success * */int do_stateful_checks(FTP_SESSION *Session, SFSnortPacket *p,                       FTP_CLIENT_REQ *req, int rsp_code){    int iRet = FTPP_SUCCESS;    if (Session->server_conf->data_chan)    {        if (rsp_code == 226)        {            /* Just ignore this code -- end of transfer...             * If we saw all the other dat for this channel             * Session->data_chan_state should be NO_STATE. */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美韩国日本不卡| 亚洲综合网站在线观看| 亚洲主播在线观看| 国产一区激情在线| 在线观看日韩精品| 欧美激情在线免费观看| 五月天激情小说综合| 99精品视频中文字幕| 欧美精品一区二区三区四区| 亚洲 欧美综合在线网络| aaa欧美日韩| 国产免费成人在线视频| 激情综合色综合久久| 欧美一区日本一区韩国一区| 亚洲色图在线看| 国产suv精品一区二区6| 精品国产免费久久| 日韩激情av在线| 欧美日韩一级片网站| 一区二区三区蜜桃| 99精品热视频| 亚洲啪啪综合av一区二区三区| 黄色小说综合网站| 精品国产髙清在线看国产毛片 | 国产女同互慰高潮91漫画| 老汉av免费一区二区三区| 欧美一区二区三区系列电影| 亚洲成a人片在线不卡一二三区| 91同城在线观看| 亚洲欧美视频一区| 91成人免费电影| 一区二区激情小说| 91免费精品国自产拍在线不卡| 国产日韩精品一区| 成人h版在线观看| 亚洲三级在线播放| 欧美性xxxxxx少妇| 亚洲成人777| 91精品国产黑色紧身裤美女| 久久99精品国产麻豆婷婷洗澡| 欧美va亚洲va在线观看蝴蝶网| 韩国欧美一区二区| 国产精品蜜臀在线观看| 色天天综合色天天久久| 亚洲成人av资源| 欧美成人精品1314www| 韩国精品一区二区| 亚洲色图色小说| 91精品国产福利在线观看| 极品少妇xxxx精品少妇偷拍| 国产欧美日韩另类一区| 99re6这里只有精品视频在线观看| 亚洲天堂中文字幕| 欧美猛男gaygay网站| 美国毛片一区二区| 国产精品美女久久久久aⅴ| 在线免费视频一区二区| 男女激情视频一区| 日韩伦理免费电影| 欧美一区二区精品| 成人性视频免费网站| 亚洲成av人片一区二区| 久久免费国产精品| 欧美在线视频日韩| 国精品**一区二区三区在线蜜桃| 国产精品久久综合| 日韩一区二区高清| 91免费看视频| 国内精品视频666| 一区二区视频免费在线观看| 精品粉嫩aⅴ一区二区三区四区| av影院午夜一区| 精品一区二区免费在线观看| 亚洲色图清纯唯美| 亚洲情趣在线观看| 精品日韩av一区二区| 一本一道波多野结衣一区二区| 蜜臀精品一区二区三区在线观看| 亚洲欧美日本在线| 久久久噜噜噜久久中文字幕色伊伊 | 成人激情黄色小说| 蜜臀精品一区二区三区在线观看 | 久久爱www久久做| 亚洲欧美成人一区二区三区| 精品美女一区二区| 欧美日韩aaa| 色先锋久久av资源部| 国产成人av影院| 日韩激情中文字幕| 亚洲一级二级三级| 中文字幕在线视频一区| 久久午夜色播影院免费高清| 欧美高清hd18日本| 在线视频综合导航| 成人精品在线视频观看| 国产盗摄一区二区三区| 国产一区二区在线电影| 蜜臀久久99精品久久久久久9| 性做久久久久久免费观看| 亚洲靠逼com| 亚洲精品久久久久久国产精华液| 中文字幕高清不卡| 欧美激情一区二区三区不卡| 国产亚洲精品7777| 久久香蕉国产线看观看99| 精品国产欧美一区二区| 欧美tickling挠脚心丨vk| 制服丝袜日韩国产| 欧美一区二区视频免费观看| 欧美蜜桃一区二区三区 | 97精品久久久久中文字幕 | 宅男噜噜噜66一区二区66| 欧美中文字幕一区二区三区| 一本到三区不卡视频| 91蝌蚪国产九色| 一本色道久久综合亚洲91| 色婷婷亚洲精品| 欧美日韩国产首页在线观看| 欧美日韩国产一级| 日韩精品影音先锋| 精品欧美黑人一区二区三区| 久久免费国产精品| 中文字幕一区二区三区不卡| 亚洲日本乱码在线观看| 亚洲午夜一区二区| 日本网站在线观看一区二区三区| 日本va欧美va瓶| 国产精品一区二区不卡| 国产精品18久久久久久久久久久久 | 在线观看av一区| 欧美日韩国产精品成人| 日韩欧美在线一区二区三区| 久久久蜜桃精品| 亚洲免费观看高清完整版在线| 一区二区三区精密机械公司| 午夜久久久影院| 激情综合色丁香一区二区| 成人av免费网站| 欧美日韩色一区| 久久久久综合网| 一区二区三区精品| 国产一区二区精品久久99| 91婷婷韩国欧美一区二区| 91精品国产91热久久久做人人| 久久久久久久久97黄色工厂| 中文字幕一区二区在线播放| 天堂蜜桃91精品| 成人黄色小视频在线观看| 欧美亚洲一区二区在线| 久久久夜色精品亚洲| 亚洲一区在线观看免费观看电影高清| 日本伊人午夜精品| 91丨九色丨黑人外教| 日韩欧美一级精品久久| 亚洲欧美电影院| 国产做a爰片久久毛片| 色av综合在线| 久久一区二区视频| 亚洲不卡av一区二区三区| 国产精品18久久久| 日韩一区二区三区视频| 综合电影一区二区三区 | 婷婷中文字幕综合| 国产大陆精品国产| 日韩网站在线看片你懂的| 亚洲人成精品久久久久久| 精品一区二区三区视频在线观看| 91麻豆福利精品推荐| 久久人人97超碰com| 美国欧美日韩国产在线播放| 欧美性生活一区| 综合色中文字幕| 国产91在线|亚洲| 精品日韩在线观看| 日韩成人免费看| 在线观看国产精品网站| 亚洲欧洲在线观看av| 国产丶欧美丶日本不卡视频| 精品少妇一区二区三区在线播放 | 日韩一区中文字幕| 国产精品1024| 久久久美女毛片| 久久成人综合网| 欧美一级生活片| 日韩专区一卡二卡| 欧美丰满少妇xxxxx高潮对白| 亚洲自拍偷拍网站| 91国产精品成人| 亚洲自拍偷拍欧美| 在线观看91视频| 亚洲午夜激情网站| 91福利在线导航| 一区二区不卡在线视频 午夜欧美不卡在| 国产传媒一区在线| 久久久久久一级片| 国产精品综合网| 国产精品久久网站| 91在线一区二区三区| 亚洲男人的天堂网| 欧美日韩在线三区|