meta data for this page
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| search_engine_ranker:script_manual [2019-08-09 08:02] – [Data Extraction] sven | search_engine_ranker:script_manual [2026-07-16 10:09] (current) – sven | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Script Manual ====== | ||
| + | The program is all based on a simple script engine that we developed on our own which could theoretically be used to submit anything to any platform you can think of. Though it might be a bit hard to figure out the meaning behind the values. This document tries to explain everything in an hopefully easy way. | ||
| + | |||
| + | Here are some helpful links on engine writing and syntax highlighting: | ||
| + | |||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | |||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | ===== The Structure ===== | ||
| + | |||
| + | Each engine is defined by a simple ini file that has to be placed in the “Engines” folder located in the programs installation folder. | ||
| + | To those of you who do not know what a ini file is let me explain it shortly. A ini file is a simple text file that you can open in a text editor like Notepad. It has a section, a variable and a value. | ||
| + | |||
| + | < | ||
| + | [SECTION] | ||
| + | variable=content | ||
| + | </ | ||
| + | |||
| + | Everything is not case sensitive so you don't have to care if you write **[SECTION]** or **[Section]**. There are basically two types of engines. | ||
| + | |||
| + | * The once that require an account and login.\\ You will have to define at least the following sections:\\ **[SETUP]**, | ||
| + | * Those who need no account and no login.\\ You just need the following sections:\\ **[SETUP]**, | ||
| + | |||
| + | ===== The SETUP Section ===== | ||
| + | |||
| + | This section defines global settings used to identify a website or set a description. The possible values are described below: | ||
| + | |||
| + | ^Variable^Allowed values / Description^ | ||
| + | |enabled|1 = Engine is usable from GUI (default)\\ 0 = Engine is not usable from GUI| | ||
| + | |default checked|1 = When a new project is created, this engine will be enabled (default)\\ 0 = This engine is not checked on a new project| | ||
| + | |engine type|Name the type of the engine e.g. Directory, Forum, Blog Comment, | ||
| + | |description|Just write some notes about this engine that get shown when the user moves the mouse over the engine name in the tree view. You can use **\n** to generate a line feed.\\ \\ //Example: description=My little Engine\n\n(c) GSA Supported\n\nHave fun//| | ||
| + | |dofollow|1 = This engine creates a do follow link\\ 0 = This engine creates a no follow link\\ 2 = This engines produces both, no follow and do follow links.| | ||
| + | |anchor text|1 = This engine creates links with your anchor text\\ 0 = This engine creates links with there own anchor texts like " | ||
| + | |uses pages|1 = This engine uses pages\\ 0 = This engine uses no pages\\ 2 = This engine uses might use pages or not.\\ \\ For some engines the link will move to page 2 or beyond and might not be visible if you visit that page later. The link is still there but on a different page. This is just an informational data and not used in any way right now.| | ||
| + | |page must have|This parameter is used to check whenever the webpage is usable for this engine or not. The content of this variable has to be present in the webpage (either pure text or html source). The variable can have multiple values separated by a %%|%% where just one has to match**.**\\ \\ //Example: //\\ //page must have1=Powered by XYZ%%|%%XYZ Powered//\\ //page must have2=!not allowed to access this page//\\ //page must have3=Webpage%%|%%Homepage// | ||
| + | |url must have|This parameter is used the same way as "page must have" but for the URL string itself and not for the website content. \\ \\ //Example: url must have1=/ | ||
| + | |fixed url|If no "// | ||
| + | |search term|This is used to search for new targets on the internet with the help of search engines like google.\\ \\ //Example: //\\ //search term=" | ||
| + | |add keyword to search|1 = Add a keyword from the project to the search query\\ 0 = Never add a keyword to the search query\\ 2 = Add just sometimes a keyword to it if it seems to be useful (default)| | ||
| + | |use blog search|0 = Never use blog search engines\\ 1 = Use blog search engines (default)\\ 2 = Use only blog search engines| | ||
| + | |extract keywords|1 = Extract keywords from the sites meta tags. These can be used later on\\ 0 = Don't extract keywords (default)| | ||
| + | |extract keywords ignore|Ignores the keywords and will not add them.\\ \\ //Example: extract keywords ignore=blog, | ||
| + | |extract urls|1 = Extract URLs from the sites.\\ 0 = Don't extract URLs (default)\\ \\ If enabled, the program will download verified URLs and try to post to sites found as external links.| | ||
| + | |posted domain check|Overwrites project settings: Avoid posting URL on same domain twice \\ 0 = do not post any link if anything has been posted before\\ 1 = allow to post a link again on the same domain (but only if the URL is different)\\ 2 = special setting for tier projects that would than allow to post several URLs on the same site.| | ||
| + | |skip ext links on|Overwrites project settings: Skip sites with more than\\ 1 = setting from project is applied\\ 0 = setting from project is ignored| | ||
| + | |skip content on|Overwrites project settings: Skip sites where the following words appear\\ 1 = setting from project is applied\\ 0 = setting from project is ignored| | ||
| + | |skip url content on|Overwrites project settings: Skip sites with the following words in URL/ | ||
| + | |skip nofollow links on|Overwrites project settings: Try to skip creating Nofollow links\\ 1 = setting from project is applied\\ 0 = setting from project is ignored| | ||
| + | |skip pr on|Overwrites project settings: Skip sites with a PR below\\ 1 = setting from project is applied\\ 0 = setting from project is ignored| | ||
| + | |referrer|Sets a fixed referrer that is used when downloading content or submitting something to this site.\\ \\ //Example: referrer=%url%// | ||
| + | |user agent|Instead of using a user agent that the program chooses for you, you can define it here.\\ \\ //Example: user agent=Some Legit Browser v1.01//\\ \\ This might be useful for exploits where you e.g. can send a html link in the "user agent" that is than turned to a real link on a page. | | ||
| + | |extract from email|If you use email verification in the engine you might need to extract not only verification URLs, but also variables like a login or password from the emails. This can be done here.\\ \\ //Example: extract from email=key, | ||
| + | |whois only|Very special variable that is only used for engines that submit your URL to sites that carry your domain in there URL.\\ 0 = Not a whois only engine (default)\\ 1 = Only whois submission and if not detected as a whois one, skip submission| | ||
| + | |captcha hint|A hint that should be displayed along with the captcha input| | ||
| + | |multiple posts per account|Defines if it is allowed to create more than one post per account. By default this is set to 1 (true) but only used for Article posting engines. On some engines it is useful to set this to 0 (false) when just one Article is possible to be posted (e.g. article in profile link)| | ||
| + | |keep subdomain|Defines if a special domain with it's subdomains should be handled as a new site/ | ||
| + | |max download size|Overwrites the global filter for the maximum amount of MB to download per GET/POST request.| | ||
| + | ===== The STEP Section ===== | ||
| + | |||
| + | There are 4 types that can be used: | ||
| + | |||
| + | * [REGISTER_STEP*] - used to create an account | ||
| + | * [FIRSTLOGIN_STEP*] - used **only ones** to login after account registration is done and first login ever is performs | ||
| + | * [LOGIN_STEP*] - used to log into the site with the created account | ||
| + | * [STEP*] - he actual submission process | ||
| + | * [EXTRA_STEP*] - an additional submission process | ||
| + | * [DELETE_STEP*] - this is used to remove links as far es possible. It will perform a LOGIN_STEP before and then perform instructions from DELETE_STEP | ||
| + | |||
| + | You can define as many steps as you want but they have to be in sequence like [STEP1] [STEP2] and so on. | ||
| + | |||
| + | The following fixed variables can be used: | ||
| + | |||
| + | |**Variable**|**Allowed values / Description**| | ||
| + | |find link|Searches the site for a anchor text and downloads that URL to work on with. You can use more than one link text when separated with %%|%%.\\ \\ //Example: //\\ //find link=Register%%|%%Registrieren%%|%%Sign up%%|%%Signup// | ||
| + | |find url|Searches the site for a URL that is matching one of the masks defined in the variable.\\ \\ //Example: //\\ //find url=*/ | ||
| + | |optional find url link|0 = A link has to be found else we abort the submission (default)\\ 1 = If no link is found we continue to find a form or whatever should be done in the current submission step.\\ \\ //Example: optional find url link=0//| | ||
| + | |alternative url|If //find url// and //find link //are not finding any URL that can be used, we will generate an alternative URL.\\ \\ //Example: alternative url=./ | ||
| + | |browse links|This will take the variable content and browse to the site. It is just useful for directories maybe where you first have to browse to a certain category till you are allowed to start a submission.\\ \\ //Example: browse links=%category%// | ||
| + | |browse links from root|1 = The root URL is used for " | ||
| + | |browse links url mask|Tells the program to just search for URLs matching that mask.| | ||
| + | |just download|1 = Download the new URL and continue with STEP2 or finish the submission if nothing else should be done.\\ 0 = a form has to be found to start the submission (default)| | ||
| + | |form id|Try to find a form on the current webpage that has a ID as in the variable content. Again you can use %%|%% to have multiple variations. Not many sites use a ID in the < | ||
| + | |form class|Try to find a form on the current webpage that has a class as in the variable content. Again you can use %%|%% to have multiple variations. Not many sites use a class in the < | ||
| + | |form name|Try to find a form on the current webpage that has a name like the variable content. If no name is used in the < | ||
| + | |form method|Try to find a form on the current webpage that has a method as in the variable content (post or get).\\ \\ //Example: form method=post// | ||
| + | |form url|Try to find a form where the submission URL would match the variable content.\\ \\ //Example: form url=*/ | ||
| + | |form url ignore|Ignores forms where the submission URL would match the variable content.\\ \\ //Example: form url ignore=*/ | ||
| + | |form request with|Some Forms get sent by ajax or some other javascript framework and would than need to send a " | ||
| + | |optional form|0 = If no form is found we will stop the submission with a failer (default)\\ 1 = the submission process is going on (STEP2 Section e.g.) even if no form has been found.| | ||
| + | |seconds to wait before submission|Will wait a given number of seconds before the form is actually submitted. This is useful to not trigger some robot detection system for some engines.\\ \\ //Example: seconds to wait before submission=// | ||
| + | |seconds to wait before submission condition|This will only delay the submission if something in the variable content is found on the webpage.\\ \\ //Example: seconds to wait before submission condition=stop_spam_time// | ||
| + | |post data|This is hardly used but will create a custom data that is used to submit to websites instead of using the data from < | ||
| + | |put data|same as //post data// but it uses PUT as request| | ||
| + | |http header|Add additional headers to the HTTP Request Header.\\ \\ //Example: http header=X-WP-Nonce: | ||
| + | |encode post data|1 = encode the data in a proper way as used in POST protocol\\ 2 = encode it using multipart \\ 0 = take the data as it is without encoding anything\\ 3 = encode it using json syntax| | ||
| + | |variable must be used|A form is only submitted if certain variables have been used in that form.\\ \\ //Example: variable must be used=url, | ||
| + | |add fixed data\\ add fixed data condition\\ \\ \\ \\ //remove fixed data//\\ \\ //remove fixed data condition// | ||
| + | |set unknown variable\\ \\ set unknown variable condition|If a form field is unknown as we didn't define how to fill it in our engine, we could still fill it by something you define here. The submission aborts if this is not defined and something is unable to get filled. The "set unknown variable condition" | ||
| + | |match by option label|1 = A form with a select or radio field is filled by checking the variable content against the option labels (the one you see on the browser).\\ 0 = We will not check for a matching label\\ \\ //Example: match by option label=1//| | ||
| + | |match by option value|1 = A form with a select or radio field is filled by checking the variable content against the option value (hidden from the users eye in browser)\\ 0 = We will not check for a matching value| | ||
| + | |match by prefill|1 = If the user has filled this field before in the past we use that vontent to fill it (default)\\ 0 = we do not check past submissions on what has been used here.\\| | ||
| + | |modify submit url\\ modify submit url condition|Sometimes a javascript is modifying the actual submission URL of a form which is not recognized by default. In this case you can do this with the variables. " | ||
| + | |modify submit type\\ modify submit type condition|Sometimes a javascript is modifying the actual submission type of a form which is not recognized by default. In this case you can do this with the variables. " | ||
| + | |remove cookie\\ \\ remove cookie condition|Removes a cookie manually for the given URL/ | ||
| + | |set cookie\\ \\ set cookie condition|Sometimes cookies are required to submit a form and they are set by javascript so that the program can not detect them. You can do that manually with these variables. "set cookie condition" | ||
| + | |write file|Writes data to a file.\\ \\ //Example: write file=" | ||
| + | |recaptcha sitekey|Get the required recaptcha site key\\ \\ //Example: recaptcha sitekey=< | ||
| + | |recaptcha action|Get the recaptcha action data\\ \\ //Example: recaptcha action=verify// | ||
| + | |recaptcha version|Set the recaptcha version to use\\ \\ //Example: recaptcha version=3// | ||
| + | ===== Variables usable in SETUP and STEP Section ===== | ||
| + | |||
| + | Some variables can be used globally (SETUP) or in the STEP (some only on STEP1) section. | ||
| + | |||
| + | ^Variable^Allowed values / Description^ | ||
| + | |submit success\\ \\ submit failed\\ \\ captcha failed\\ \\ submit failed retry|At the end of each STEP* the resulting webpage content is checked first against " | ||
| + | |submit success skip verify|If a submission is detected as successful and it is e.g. a REGISTER_STEP* then we can skip the verification process if certain stings appear on the page.\\ \\ //Example: submit success skip verify=> | ||
| + | |verify on unknown status|1 = if a submission is not detected as successful or failed it will still be taken as successful (appearing in log with " | ||
| + | |verify submission|1 = verify the submission\\ 0 = do not verify the submission but assume that the link is submitted and will be visible there or is already (default) Even though this is the default behaviour, you should set it to " | ||
| + | |verify by\\ \\ verify search for|Defines how to verify a submission. Possible value for " | ||
| + | |verify url\\ verify url remove\\ verify url replace\\ verify url must have|If you use " | ||
| + | |use original url to verify|1 = this will not use the last URL but the URL we started the whole engine with.\\ 0 = use the last URL at the end of the submission (default)\\ \\ //Example: use original url to verify=1//| | ||
| + | |verify interval|Defines in what interval in minutes this verification should take place (default 180). \\ \\ //Example: verify interval=60// | ||
| + | |verify timeout|Defines how long we wait in minutes till we assume that a submission will never be successful and skip the whole site (default 7200).\\ \\ Example: verify timeout=180\\ \\ Waits 3 hours for a successful verification before giving up.| | ||
| + | |first verify|The first verification would start 10 minutes after the submission unless you define it differently.\\ \\ Example: first verify=60\\ \\ This means to check one hour after the submission.| | ||
| + | |verify search detail url|1 = If a URL has been located with your wanted data (URL) on it then the verification would normally be finished. Though sometimes you end up with a link not as good as it can be. This is especially the case if you use " | ||
| + | |try to continue without verification|0 = follow exact verification steps (default)\\ 1 = try to skip verification and continue\\ \\ //Example: try to continue without verification=1// | ||
| + | |modify url|This is used to change a found URL to something else.\\ \\ //Example: modify url=%targethost% %targetpath%// | ||
| + | |modify url condition|If present it will check if the content is present on the webpage and only apply the " | ||
| + | |modify url remove|The same as " | ||
| + | |modify url replace|The same as " | ||
| + | |modify submit method|Use this to change the form submission method. Valid values are GET and POST.| | ||
| + | |modify step\\ modify step condition\\ modify step condition input|This will go to another submission step if the condition (something in last downloaded page from previous submission step) was found.\\ \\ //Example: modify step=2\\ modify step condition=*No verification required*// | ||
| + | |Download retries|Number of tries to submit or download something (default is 1).| | ||
| + | |Link type|Defines the type of backlink created. Can be anything you want but you might want to use the types already used in other scripts.| | ||
| + | |remove var cache|Will remove extracted content/ | ||
| + | ===== How form fields are filled ===== | ||
| + | |||
| + | |||
| + | First you would have to get all form field names from a form you want to submit to when looking in the html source like... | ||
| + | |||
| + | < | ||
| + | <form action=" | ||
| + | Your page: <input name=" | ||
| + | Your Comment: < | ||
| + | <input name=" | ||
| + | <input name=" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | On the example above you would take just " | ||
| + | |||
| + | homepage=%url%\\ | ||
| + | comment=%blog_comment%\\ | ||
| + | |||
| + | There are other ways on how the fields can be filled (in that order): | ||
| + | |||
| + | - exact variable name (// | ||
| + | - exact id (// | ||
| + | - exact variable (// | ||
| + | - exact id (// | ||
| + | - match by name (//e.g. *page*=%url%// | ||
| + | - match by name (//e.g. *page*=%url%// | ||
| + | - match by generic_field.ini by name/ | ||
| + | |||
| + | As you can see we fill the form field // | ||
| + | |||
| + | < | ||
| + | [Blog_Comment] | ||
| + | type=memo | ||
| + | allow html=You can use these tags:|<a href="" | ||
| + | allow return=1 | ||
| + | must be filled=1 | ||
| + | hint=Use some comments here that will be posted to the blogs. | ||
| + | default=%file-comments.dat% | ||
| + | html to bbs=BBCode format allowed | ||
| + | custom mode=1 | ||
| + | auto modify=1 | ||
| + | auto add anchor url=1 | ||
| + | html to markdown=Markdown</ | ||
| + | </ | ||
| + | |||
| + | The list below explains all possible variables you can use here. | ||
| + | |||
| + | ^Variable ^Allowed values / Description^ | ||
| + | |type|Can be one of the following\\ memo -> multiple line\\ text -> simple edit box (default)\\ email -> simple edit box but should have a valid email syntax\\ url -> simple edit box but should have a valid url syntax\\ category -> a category to fill out\\ file -> the customer has to choose a file.\\ login -> a login field\\ password -> a password field\\ extract -> a special field not visible when editing but used to extract data from emails or webpages. | | ||
| + | |allow html|0 = No html allowed\\ 1 = html is allowed\\ < | ||
| + | |allow return|0 = no return/line feed allowed\\ 1 = return/line feed is allowed\\ < | ||
| + | |must be filled|1 = User must fill this out in project data\\ 0 = User can leave this empty (default)| | ||
| + | |hint|A text that is displayed when the user moves his mouse over the field.| | ||
| + | |default|The default value that is used when creating a new project. You can also use " | ||
| + | |html to bbs\\ \\ bbs supports\\ \\ bbs supports anchor text in url|0 = No conversion (default)\\ 1 = Convert html code to BB code.\\ < | ||
| + | |custom mode|1 = User is asked to manually customize this data before submission (when custom mode is on)\\ 0 = No customization (default)| | ||
| + | |auto modify|1 = Modify the content a bit with random line feeds and other things to make it a bit more unique (not duplicate content).\\ 0 = Do not modify this at all\\ 2 = Modify only line breaks after full sentences| | ||
| + | |auto add anchor url\\ \\ auto add anchor url content|1 = Add a link to the end of the post in case the site supports html and no URL could get posted anywhere else.\\ 0 = Do not add a url at all.\\ 2 = Add an URL even though the URL was used before in other fields\\ \\ // | ||
| + | |html to markdown|1 = Convert html code to markdown code\\ 0 = Do not convert it\\ < | ||
| + | |html to custom link format\\ custom link format|1 = convert html code to a custom format\\ 0 = Do not convert it.\\ < | ||
| + | |basic html only|1 = keep just basic html tags (default if custom link format is used)\\ 0 = keep html as it is| | ||
| + | |html line break\\ \\ html line break format|Converts a normal line break to some html line break (default < | ||
| + | |custom img format|If set, it will try to locate the html syntax for images and replace it with that new syntax.\\ \\ // | ||
| + | |custom iframe format|If set, it will try to locate the iframe syntax for videos and replace it with that new syntax.\\ \\ // | ||
| + | |alternate data|Right now only used for anchor_text which will use something else than the entered data according to its value\\ \\ // | ||
| + | |static|1 = marks this as an important variable that should be saved as it might have to be used later on. \\ 0 = do not save the content.\\ 2 = saves it till next submission process is successful (e.g. for first time verifications it has to be removed later to allow further submissions)\\ \\ \\ This is important for logins and passwords as the content could be random but we still need to know the login data for later login after a verified registration.| | ||
| + | |max length|The maximum length of the resulting data. | | ||
| + | |min length|The minimum length of the resulting data.| | ||
| + | |alpha|Used when the type is a login.\\ 0 = no alpha (A-Z) chars allowed\\ 1 = alpha chars allowed (default)| | ||
| + | |numeric|Used when the type is a login.\\ 0 = no numbers allowed\\ 1 = numbers allowed (default)| | ||
| + | |upcase|Used when the type is a login.\\ 0 = capital chars are not allowed\\ 1 = capital chars are allowed (default)| | ||
| + | |lowcase|Used when the type is a login.\\ 0 = lowercase chars are not allowed\\ 1 = lowercase chars are allowed (default)| | ||
| + | |capitalize words|0 = no modification\\ 1 = Will Capitalize Each Word| | ||
| + | |remove|Remove certain content before we apply it to the form field. See " | ||
| + | |replace|Replace certain content before we apply it to the form field. See " | ||
| + | |allow spin|1 = User can use spin syntax in project editor (default)\\ 0 = User is not allowed to use spin syntax| | ||
| + | |tier data|Sets the data that will overwrite the input data for tier projects. Just if the "tier data" is empty it will use the one that the user set.\\ \\ //Example: tier data=%tier_title%// | ||
| + | |allow data url|0 = do not allow data URLs -> gets removed\\ 1 = allow them (default)\\ \\ This will remove e.g. images from the article that are Data-URLs| | ||
| + | |resize=< | ||
| + | |filter|What to accept when type=file is used as files. Example: filter=Image files|*.jpg; | ||
| + | |||
| + | |||
| + | Of course some form fields doesn' | ||
| + | |||
| + | ^ Example ^ Description ^ | ||
| + | |agree_tos=1 | 1 = check the box, 0 = don't check| | ||
| + | |captcha_code=%captcha%|%captcha% indicates that this is a field with a captcha image to fill out| | ||
| + | |text_question=%question%|%question% indicates that this is a random question that the user has to answer.| | ||
| + | |cap_text=%capquest%|%capquest% can be both (captcha or question)| | ||
| + | |country_box=%random_option%|Choose a random item out of a selection box.| | ||
| + | |signature={Some%%|%%A} {spin%%|%%spun} text|Just fill that field with the text after spinning it.| | ||
| + | |letters=%textcode% < | ||
| + | |something_else=%leave%|Leaves this field to it's default content/ | ||
| + | |||
| + | If a form field variable is not found in the current section (e.g. [STEP2]) then it is checked from [STEP1] section. If the name=" | ||
| + | |||
| + | < | ||
| + | [STEP1] | ||
| + | hp=%url% | ||
| + | cmd=%blog_comment% | ||
| + | </ | ||
| + | |||
| + | ==== %captcha% ==== | ||
| + | |||
| + | This special variable tells the program to extract some captcha image. You can use parameters with this like | ||
| + | |||
| + | |%captcha% *image.php? | ||
| + | |%captcha% fixed: | ||
| + | |%captcha% overlay: | ||
| + | |||
| + | |||
| + | |||
| + | ===== Data Extraction ===== | ||
| + | |||
| + | Sometimes you need to extract certain content from the website or the email like a login/ | ||
| + | |||
| + | < | ||
| + | [email_pw] | ||
| + | type=extract | ||
| + | front1=Your password is:|Ihr passwort lautet: | ||
| + | back=\n | ||
| + | </ | ||
| + | |||
| + | The "// | ||
| + | |||
| + | The variable “// | ||
| + | |||
| + | ^Variable^Allowed values / Description^ | ||
| + | |front or front1, front2...|Defines the content to cut in front of our to extract data. Separate | ||
| + | |back or back1, back2, | ||
| + | |remove html|0 = Do not modify it\\ 1 = remove html code| | ||
| + | |must have|If the extracted data has not the something appearing in "must have" we set it blank again.| | ||
| + | |increase|If the extracted data is a integer we can increase or decrease (negative number) the data by the given value.| | ||
| + | |default|If we have been unable to extract something, we can set a default value here.| | ||
| + | |url|Instead of using the current URL for extracting something, we extract the content from the given URL.| | ||
| + | |search url|Instead of using the current URL for extracting something, we search for an URL by the given mask and if found use that URL's content to extract data from.| | ||
| + | |find link\\ find url|Instead of using front/back we extract URLs by the given parameters.| | ||
| + | |name_front / name_back\\ value_front / value_back|Instead of using front/back we extract actually two values here and later join them with " | ||
| + | |random|Usual only the first appearance of the extracted data is taken. When you use " | ||
| + | |input|By default " | ||
| + | |reverse|When using // | ||
| + | |base64|using // | ||
| + | |all matches\\ delimiter|When using //all matches=1// together with // | ||
| + | ===== A Small Example ===== | ||
| + | |||
| + | In that example the search engine would try to find a new target with the search “Powered by XYZ” or “XYZ Powered”. If the found site also has one of the strings on its page we use this engine and start to submit the data right away as no “REGISTER_STEP1” or “LOGIN_STEP1” is defined. | ||
| + | |||
| + | We first start to locate the correct sublink by searching for a link named “Submit your Site” and/or the URL containing “/ | ||
| + | |||
| + | On that URL we search for a from that has an ID named “Submitform”, | ||
| + | We find “name” and fill it with a random name from the file “names.dat”. | ||
| + | We find a form field called “captcha_image” and ask the user to fill that out. | ||
| + | We find the field called “url” and fill it with our URL defined in the project settings. | ||
| + | |||
| + | Now we submit the form and check if the submission is either successful (submit success) or not (submit failed). | ||
| + | |||
| + | If it was successful we will add the URL (modified to / | ||
| + | |||
| + | < | ||
| + | [SETUP] | ||
| + | engine type=TEST | ||
| + | description=Just a sample | ||
| + | |||
| + | page must have=Powered by XYZ|XYZ Powered | ||
| + | search term=”Powered by XYZ”|”XYZ Powered” | ||
| + | add keyword to search=0 | ||
| + | extract keywords=0 | ||
| + | |||
| + | [URL] | ||
| + | type=url | ||
| + | hint=Enter your URL here please | ||
| + | must be filled=1 | ||
| + | |||
| + | [STEP1] | ||
| + | find link=Submit your Site | ||
| + | find url=*/ | ||
| + | |||
| + | form name=*Submit | ||
| + | form id=submitform | ||
| + | form url=*/ | ||
| + | |||
| + | submit success=Your submission was successful | ||
| + | submit failed=Your submission failed | ||
| + | |||
| + | verify submission=1 | ||
| + | verify by=url | ||
| + | verify url=./ | ||
| + | verify search for=%url% | ||
| + | verify on unknown status=1 | ||
| + | |||
| + | name=%spinfile-names.dat% | ||
| + | url=%url% | ||
| + | captcha_image=%captcha% | ||
| + | </ | ||