florinu
Members-
Posts
13 -
Joined
-
Last visited
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
florinu's Achievements
Newbie (1/14)
4
Reputation
-
Cum sa procedezi cu ofertele de backlinks
florinu replied to Nemessis's topic in Black SEO & monetizare
Pentru un site video adult pornit de la 0 ce recomandati unde e bun de facut backlinkuri ceva idei exemple va rog daca se poate? -
c0dek da e wordpress . nu folosesc grabber le downloade de pe youporn si le pun pe videomega si apoi le fac iframe . cand zici 100 la ce te referi ca titlu cu descriere categorii si taguri sa ocupe maxim 100 de cuvinte ?
-
c0dek asta e rezultatul http://s2.postimg.org/mgaln6kah/duplicate.jpg din 255 de pagini ca restu e paid . Ce imi recomanzi ?
-
Imi poti recomanda c0dek o metoda cum gasesc duplicatele mai simplu ?
-
http://s2.postimg.org/cysrgxrhl/spam.jpg oare o fi din cauza asta?
-
efectiv nu mai stiu ce sa ii mai fac ... am postat si pe forum la google nimic nici un raspuns concret..
-
Salutare am si eu o problema si numai nu ii dau de cap si ma gandeam ca ma puteti ajuta voi cu un sfat . Am site-ul Home - HD Porn Free Videos, live girls, all genres movies de vreo 6 luni . Nu mi-l indexeaza in google cum trebuie . Am plugginul Yoast sitemap instalat . Imi apar ca sunt indexate la sitemap 618 pe webmaster in realitate cand dai search pe google: site:hdporn.cc apar 230 . 23 de pagini . Pe webaster la google indexed apar 1290 . Care e problema . Am facut back-linkuri naturale pe diferite site-uri tot nu ma indexeaza . Am observat ca pe google raman 23 de pagini si tot imi schimba posturile mi le indexeaza pe ultimele si dispar cele anterioare dar tot 23 de pagini au ramas .
-
Salutare detin siteu-ul hdporn.cc . E interesat careva de un banner exchange ceva ?
-
da dar nu prea pricep .. in fine poat ajuta sursa pe altcineva si daca afla cum functioneaza poate posteaza si aici
-
poate sa ne zica careva cum se scaneaza exact cu el ?
-
#include "proto-http.h" #include "proto-banner1.h" #include "smack.h" #include "unusedparm.h" #include "string_s.h" #include "masscan-app.h" #include <ctype.h> #include <stdint.h> #include <stdlib.h> #include <string.h> enum { HTTPFIELD_INCOMPLETE, HTTPFIELD_SERVER, HTTPFIELD_CONTENT_LENGTH, HTTPFIELD_CONTENT_TYPE, HTTPFIELD_VIA, HTTPFIELD_LOCATION, HTTPFIELD_UNKNOWN, HTTPFIELD_NEWLINE, }; static struct Patterns http_fields[] = { {"Server:", 7, HTTPFIELD_SERVER, SMACK_ANCHOR_BEGIN}, //{"Content-Length:", 15, HTTPFIELD_CONTENT_LENGTH, SMACK_ANCHOR_BEGIN}, //{"Content-Type:", 13, HTTPFIELD_CONTENT_TYPE, SMACK_ANCHOR_BEGIN}, {"Via:", 4, HTTPFIELD_VIA, SMACK_ANCHOR_BEGIN}, {"Location:", 9, HTTPFIELD_LOCATION, SMACK_ANCHOR_BEGIN}, {":", 1, HTTPFIELD_UNKNOWN, 0}, {"\n", 1, HTTPFIELD_NEWLINE, 0}, {0,0,0,0} }; enum { HTML_INCOMPLETE, HTML_TITLE, HTML_UNKNOWN, }; static struct Patterns html_fields[] = { {"<TiTle", 6, HTML_TITLE, 0}, {0,0,0,0} }; extern struct ProtocolParserStream banner_http; /*************************************************************************** ***************************************************************************/ unsigned http_change_field(unsigned char **inout_header, unsigned header_length, const char *field_name, const unsigned char *field_value, unsigned field_value_len) { unsigned char *hdr1 = *inout_header; unsigned char *hdr2; unsigned i; unsigned is_newline_seen = 0; unsigned field_name_len = (unsigned)strlen(field_name); hdr2 = (unsigned char *)malloc(header_length + field_value_len + 1 + 2); memcpy(hdr2, hdr1, header_length); /* Remove the previous header and remember the location in the header * where it was located */ for (i=0; i<header_length; i++) { if (hdr2 == '\r') continue; if (hdr2 == '\n') { if (is_newline_seen) { /* We've reached the end of header without seing * the field. Therefore, create space right here * for it. */ while (hdr2[i-1] == '\r') i--; break; } else if (memcasecmp(&hdr2[i+1], field_name, field_name_len) == 0) { unsigned j; i++; /* skip previous newline */ for (j=i; j<header_length && hdr2[j] != '\n'; j++) ; if (j < header_length && hdr2[j] == '\n') j++; memmove( &hdr2, &hdr2[j], header_length - j); header_length -= (j - i); hdr2[header_length] = '\0'; break; } } } /* Insert the new header at this location */ memmove( &hdr2[i + field_name_len + field_value_len + 1 + 2], &hdr2, header_length - i); memcpy( &hdr2, field_name, field_name_len); memcpy( &hdr2[i + field_name_len], " ", 1); memcpy( &hdr2[i + field_name_len + 1], field_value, field_value_len); memcpy( &hdr2[i + field_name_len + 1 + field_value_len], "\r\n", 2); header_length += field_name_len + 1 + field_value_len + 2; free(hdr1); *inout_header = hdr2; return header_length; } /*************************************************************************** ***************************************************************************/ static const char http_hello[] = "GET / HTTP/1.0\r\n" "User-Agent: masscan/1.0 (https://github.com/robertdavidgraham/masscan)\r\n" "Accept: */*\r\n" //"Connection: Keep-Alive\r\n" //"Content-Length: 0\r\n" "\r\n"; /***************************************************************************** *****************************************************************************/ void field_name(struct BannerOutput *banout, size_t id, struct Patterns *xhttp_fields); void field_name(struct BannerOutput *banout, size_t id, struct Patterns *xhttp_fields) { unsigned i; if (id == HTTPFIELD_INCOMPLETE) return; if (id == HTTPFIELD_UNKNOWN) return; if (id == HTTPFIELD_NEWLINE) return; for (i=0; xhttp_fields.pattern; i++) { if (xhttp_fields.id == id) { banout_newline(banout, PROTO_HTTP); banout_append( banout, PROTO_HTTP, (const unsigned char*)xhttp_fields.pattern + ((xhttp_fields.pattern[0]=='<')?1:0), /* bah. hack. ugly. */ xhttp_fields.pattern_length - ((xhttp_fields.pattern[0]=='<')?1:0) /* bah. hack. ugly. */ ); return; } } } /***************************************************************************** * Initialize some stuff that's part of the HTTP state-machine-parser. *****************************************************************************/ static void * http_init(struct Banner1 * { unsigned i; /* * These match HTTP Header-Field: names */ b->http_fields = smack_create("http", SMACK_CASE_INSENSITIVE); for (i=0; http_fields.pattern; i++) smack_add_pattern( b->http_fields, http_fields.pattern, http_fields.pattern_length, http_fields.id, http_fields.is_anchored); smack_compile(b->http_fields); /* * These match HTML <tag names */ b->html_fields = smack_create("html", SMACK_CASE_INSENSITIVE); for (i=0; html_fields.pattern; i++) smack_add_pattern( b->html_fields, html_fields.pattern, html_fields.pattern_length, html_fields.id, html_fields.is_anchored); smack_compile(b->html_fields); banner_http.hello = (unsigned char*)malloc(banner_http.hello_length); memcpy((char*)banner_http.hello, http_hello, banner_http.hello_length); return b->http_fields; } /*************************************************************************** * BIZARRE CODE ALERT! * * This uses a "byte-by-byte state-machine" to parse the response HTTP * header. This is standard practice for high-performance network * devices, but is probably unfamiliar to the average network engineer. * * The way this works is that each byte of input causes a transition to * the next state. That means we can parse the response from a server * without having to buffer packets. The server can send the response * one byte at a time (one packet for each byte) or in one entire packet. * Either way, we don't. We don't need to buffer the entire response * header waiting for the final packet to arrive, but handle each packet * individually. * * This is especially useful with our custom TCP stack, which simply * rejects out-of-order packets. ***************************************************************************/ static void http_parse( const struct Banner1 *banner1, void *banner1_private, struct ProtocolState *pstate, const unsigned char *px, size_t length, struct BannerOutput *banout, struct InteractiveData *more) { unsigned state = pstate->state; unsigned i; unsigned state2; unsigned log_begin = 0; unsigned log_end = 0; size_t id; enum { FIELD_START = 9, FIELD_NAME, FIELD_COLON, FIELD_VALUE, CONTENT, CONTENT_TAG, CONTENT_FIELD }; UNUSEDPARM(banner1_private); UNUSEDPARM(more); state2 = (state>>16) & 0xFFFF; id = (state>>8) & 0xFF; state = (state>>0) & 0xFF; for (i=0; i<length; i++) switch (state) { case 0: case 1: case 2: case 3: case 4: if (toupper(px) != "HTTP/"[state]) state = STATE_DONE; else state++; break; case 5: if (px == '.') state++; else if (!isdigit(px)) state = STATE_DONE; break; case 6: if (isspace(px)) state++; else if (!isdigit(px)) state = STATE_DONE; break; case 7: /* TODO: look for 1xx response code */ if (px == '\n') state = FIELD_START; break; case FIELD_START: if (px == '\r') break; else if (px == '\n') { state2 = 0; state = CONTENT; log_end = i; banout_append(banout, PROTO_HTTP, px+log_begin, log_end-log_begin); log_begin = log_end; break; } else { state2 = 0; state = FIELD_NAME; /* drop down */ } case FIELD_NAME: if (px == '\r') break; id = smack_search_next( banner1->http_fields, &state2, px, &i, (unsigned)length); i--; if (id == HTTPFIELD_NEWLINE) { state2 = 0; state = FIELD_START; } else if (id == SMACK_NOT_FOUND) ; /* continue here */ else if (id == HTTPFIELD_UNKNOWN) { /* Oops, at this point, both ":" and "Server:" will match. * Therefore, we need to make sure ":" was found, and not * a known field like "Server:" */ size_t id2; id2 = smack_next_match(banner1->http_fields, &state2); if (id2 != SMACK_NOT_FOUND) id = id2; state = FIELD_COLON; } else state = FIELD_COLON; break; case FIELD_COLON: if (px == '\n') { state = FIELD_START; break; } else if (isspace(px)) { break; } else { //field_name(banout, id, http_fields); state = FIELD_VALUE; /* drop down */ } case FIELD_VALUE: if (px == '\r') break; else if (px == '\n') { state = FIELD_START; break; } switch (id) { case HTTPFIELD_SERVER: case HTTPFIELD_LOCATION: case HTTPFIELD_VIA: //banner_append(&px, 1, banout); break; case HTTPFIELD_CONTENT_LENGTH: if (isdigit(px&0xFF)) { ; /*todo: add content length parsing */ } else { id = 0; } break; } break; case CONTENT: { unsigned next = i; id = smack_search_next( banner1->html_fields, &state2, px, &next, (unsigned)length); if (banner1->is_capture_html) { banout_append(banout, PROTO_HTML_FULL, &px, next-i); } if (id != SMACK_NOT_FOUND) { state = CONTENT_TAG; } i = next - 1; } break; case CONTENT_TAG: for (; i<length; i++) { if (banner1->is_capture_html) { banout_append_char(banout, PROTO_HTML_FULL, px); } if (px == '>') { state = CONTENT_FIELD; break; } } break; case CONTENT_FIELD: if (banner1->is_capture_html) { banout_append_char(banout, PROTO_HTML_FULL, px); } if (px == '<') state = CONTENT; else { banout_append_char(banout, PROTO_HTML_TITLE, px); } break; case STATE_DONE: default: i = (unsigned)length; break; } if (log_end == 0 && state < CONTENT) log_end = i; if (log_begin < log_end) banout_append(banout, PROTO_HTTP, px + log_begin, log_end-log_begin); if (state == STATE_DONE) pstate->state = state; else pstate->state = (state2 & 0xFFFF) << 16 | (id & 0xFF) << 8 | (state & 0xFF); } /*************************************************************************** ***************************************************************************/ static int http_selftest(void) { return 0; } /*************************************************************************** ***************************************************************************/ struct ProtocolParserStream banner_http = { "http", 80, http_hello, sizeof(http_hello)-1, 0, http_selftest, http_init, http_parse, }; sursa : https://github.com/robertdavidgraham/masscan/blob/master/src/proto-http.c#L120 Errata Security: Bash 'shellshock' scan of the Internet