Monday, June 30, 2014

Introduction Burp Suite Part V (Repeater Tab)


Burp Repeater is a simple tool for manually manipulating and reissuing individual HTTP requests, and analyzing the application's responses. You can use Repeater for all kinds of purposes, such as changing parameter values to test for input-based vulnerabilities, issuing requests in a specific sequence to test for logic flaws, and reissuing requests from Burp Scanner results to manually verify reported issues.
The easiest way to start working with Repeater is to select the request you want to work on within another Burp tool (such as the Proxy history or Target site map), and use the "Send to Repeater" option on the context menu. This will create a new request tab in Repeater, and automatically populate the target details and request message editor with the relevant details. You can then modify and issue the request as required.
 When your request is ready to send, click the "Go" button to send it to the server. The response is displayed when this is received, together with the response length and a timer (in milliseconds). You can use the usual HTTP message editor functions to help analyze the request and response messages, and carry out further actions.

Managing Request Tabs
 You can easily manage Repeater's request tabs. You can: 
  • Rename tabs by double-clicking the tab header.
  • Reorder tabs by dragging them.
  • Open a new tab by clicking on the right-most "..." tab.
  • Close tabs by clicking the X button in the tab header.
(Click image for large view)



Like it ? Share it.

Wednesday, June 25, 2014

How to use macchanger in kali linux

How to change MAC address in Kali linux/ How to use macchanger in Kali linux
Intro – A Media Access Control address or MAC address is a unique identifier assigned to network interfaces. This uses for communications when connected to the network. Although MAC addresses is a unique identifier of network adapter.
eth0 is a network interface (LAN), if you want change MAC address of wireless interface you can change eth0 with wlan0

1. How to open macchanger
A. GUI Method
Application → Kali Linux → Sniffing/Spoofing → Network Spoofing → macchanger
                                                                            (click on image for large view)

B. open Terminal type macchanger and hit enter

2. If you want to see help option of macchanger. Type macchanger --help and hit enter 

3. Run ifconfig command on terminal to see your interface name and current MAC address

4. Before changing your MAC address you have to shut down your interface.
Syntax – ifconfig interfacename down
Ex – ifconfig eth0 down
Note – write interface name according to your interface name.

5. Now time to change MAC address.
Syntax – macchanger –r interfacename
EX – macchanger –r eth0
As result you can see there are three MAC addresses first 2 addresses are our original  MAC addresses and 3rd MAC address is FAKE.

6. After changing MAC address you have to up your interface.
Syntax – ifconfig interfacename up
Ex – ifconfig eth0 up

7. Run ifconfig command in terminal to check MAC address and there you can see we have successfully changed our MAC address. 
 
(click on image for large view)




Like it ? Share it.

Domain Name System

What is Domain Name ?
A domain name is an identification string that defines a realm of administrative autonomy, authority or control on the Internet. Domain Name System, or DNS, is the most recognized system for assigning addresses to Internet web servers. Domain names are used to identify one or more IP addresses. Without a domain, you would have to tell your customers that your site is located at a temporary url such as 127.441.733.14/~mysite instead of using a domain name such as mysite.com, making your site appear unprofessional and impractical.

Root Name Server
A root name server is a name server for the root zone of the Domain Name System of the Internet. It directly answers requests for records in the root zone and answers other requests by returning a list of the authoritative name servers for the appropriate top-level domain (TLD).
Root Level domain : The Domain Name System is a hierarchical naming system for computers, services, or any resource participating in the Internet. The top of that hierarchy is the root domain. The root domain does not have a formal name and its label in the DNS hierarchy is an empty string.


Top Level Domain (TLD)
A top-level domain (TLD) is the last segment of the domain name. The TLD is the letters immediately following the final dot in an Internet address.The top-level domains (TLDs) such as com, net and org are the highest level of domain names of the Internet. Top-level domains form the DNS root zone of the hierarchical Domain Name System. Every domain name ends with a top-level domain label. For Example In our website www.geekyshows.com , com is Top Level Domian.

Restricted Top Level Domains
Restricted top-level domains (rTLDs), like .aero, .biz, .edu, .mil, .museum, .name, and .pro, that require the registrant to represent a certain type of entity, or to belong to a certain community. For example, the .name TLD is reserved for individuals, and .edu is reserved for educational entities.

Country Code Top Level Domain
Country-code TLDs (ccTLDs) represent specific geographic locations. For example: .mx represents Mexico and .eu represents the European Union. Some ccTLDs have residency restrictions. For example, .eu requires registrants to live or be located in a country belonging to the European Union. Other ccTLDs, like the ccTLD .it representing Italy, allow anyone to register them, but require a trustee service if the registrant is not located in a specified country or region. Finally, there are ccTLDs that can be registered by anyone — .co representing Colombia, for example, has no residency requirements at all.

Second-level domains (SLD)
A second-level domain (SLD) is the portion of the domain name that is located immediately to the left of the dot and domain name extension. You define the SLD when you register a domain name.
Example 1: The SLD in mysite.com is mysite. 
Example 2: The SLD in mysite.co.uk is still mysite.

Country code second level domains (ccSLD)
A country code second-level domain (ccSLD) is a domain name class that many country code top-level domain (ccTLD) registries implement. The ccSLD portion of the domain name is located between the ccTLD and the SLD. Example: The ccSLD in coolexample.co.uk is .co.

What is SubDomain Name
Subdomains are a smaller part of a larger domain. For example I have a Website www.geekyshows.com If i create a sub domain at www.geekyshows.com it will be look like this help.geekyshows.com . Here help is a subdomain.

Example – www.geekyshows.com, Example – help.geekyshows.com
DNS Hierarchy
Example Domain
Root level Domain
.
Top Level Domain
.com
Second Level Domain
geekyshows
Sub Domain
help

How Domain Names are Assigned
The Internet Corporation for Assigned Names and Numbers (ICANN) is the ultimate authority for domain-name assignments. ICANN conveys authority to (accredits) Registrars throughout the world to register second-level domains within specific top-level domains; this ensures that all domain names are unique.

What is Domain Name System (DNS)?
DNS is a protocol within the set of standards for how computers exchange data on the Internet and on many private networks, known as the TCP/IP protocol suite. Its basic job is to turn a user-friendly domain name like "geekyshows.com" into an Internet Protocol (IP) address like 70.44.241.54 that computers use to identify each other on the network.

How Domain Name Work ?
After Registering a Domain name the domain name must have a hosted website that includes a numeric address, called an IP address, for visitors to access the website using your domain name.
Your domain name and its associated IP address are stored in a common database along with every other domain and associated IP address that are accessible via the Internet.
When visitors enter your domain name into a Web browser, the browser request uses your domain name to find the domain name's associated IP address and, therefore, the website. People use domain names instead of IP addresses because it is easier to remember a name rather than a series of numbers.


Like it ? Share it.

Tuesday, June 24, 2014

Introduction Burp Suite Part IV (Intruder Tab)


Burp Intruder is a tool for automating customized attacks against web applications. It is extremely powerful and configurable, and can be used to perform a huge range of tasks, from simple brute-force guessing of web directories through to active exploitation of complex blind SQL injection vulnerabilities.

How Intruder Works
Burp Intruder works by taking an HTTP request (called the "base request"), modifying the request in various systematic ways, issuing each modified version of the request, and analyzing the application's responses to identify interesting features.
For each attack, you must specify one or more sets of payloads, and the positions in the base request where the payloads are to be placed. Numerous methods of generating payloads are available (including simple lists of strings, numbers, dates, brute force, bit flipping, and many others). Payloads can be placed into payload positions using different algorithms.



Attack Target
This tab is used to configure the details of the target server for the attack. The required options are:
  • Host - This is the IP address or hostname of the target server.
  • Port - This is the port number of the HTTP/S service.
  • Use HTTPS - This specifies whether SSL should be used.
The easiest way to configure these details is to select the request you want to attack anywhere within Burp, and choose the "Send to Intruder" option on the context menu. This will send the selected request to a new tab in Intruder, and will automatically populate the Target and Positions tabs.
(Click image for large view)

Positions
Payload Positions
This tab is used to configure the request template for the attack, together with payload markers, and the attack type (which determines the way in which payloads are assigned to payload positions).

Attack Type
 Burp Intruder supports various attack types - These determine the way in which payloads are assigned to payload positions. The attack type can be selected using the drop-down above the request template editor. The following attack types are available: 
  • Sniper - This uses a single set of payloads. It targets each payload position in turn, and places each payload into that position in turn. Positions that are not targeted for a given request are not affected - the position markers are removed and any enclosed text that appears between them in the template remains unchanged. This attack type is useful for fuzzing a number of request parameters individually for common vulnerabilities. The total number of requests generated in the attack is the product of the number of positions and the number of payloads in the payload set.
  • Battering ram - This uses a single set of payloads. It iterates through the payloads, and places the same payload into all of the defined payload positions at once. This attack type is useful where an attack requires the same input to be inserted in multiple places within the request (e.g. a username within a Cookie and a body parameter). The total number of requests generated in the attack is the number of payloads in the payload set.
  • Pitchfork - This uses multiple payload sets. There is a different payload set for each defined position (up to a maximum of 20). The attack iterates through all payload sets simultaneously, and places one payload into each defined position. In other words, the first request will place the first payload from payload set 1 into position 1 and the first payload from payload set 2 into position 2; the second request will place the second payload from payload set 1 into position 1 and the second payload from payload set 2 into position 2, etc. This attack type is useful where an attack requires different but related input to be inserted in multiple places within the request (e.g. a username in one parameter, and a known ID number corresponding to that username in another parameter). The total number of requests generated in the attack is the number of payloads in the smallest payload set.
  • Cluster bomb - This uses multiple payload sets. There is a different payload set for each defined position (up to a maximum of 20). The attack iterates through each payload set in turn, so that all permutations of payload combinations are tested. I.e., if there are two payload positions, the attack will place the first payload from payload set 2 into position 2, and iterate through all the payloads in payload set 1 in position 1; it will then place the second payload from payload set 2 into position 2, and iterate through all the payloads in payload set 1 in position 1. This attack type is useful where an attack requires different and unrelated or unknown input to be inserted in multiple places within the request (e.g. when guessing credentials, a username in one parameter, and a password in another parameter). The total number of requests generated in the attack is the product of the number of payloads in all defined payload sets - this may be extremely large.
You can modify the default payload markers using the buttons next to the request template editor: 
  • Add § - If no text is selected, this inserts a single payload marker at the cursor position. If you have selected some text, a pair of markers are inserted enclosing the selected text.
  • Clear § - This removes all position markers, either from the entire template or from the selected portion of the template.
  • Auto § - This makes a guess as to where it might be useful to position payloads and places payload markers accordingly. This is useful to quickly mark positions suitable for fuzzing, but manual positioning is required for more customized attacks. If you have selected some text, markers are placed within the selected text only; otherwise, they are placed throughout the whole request template. The automatic placement of markers places payloads into the value of various types of request parameter, including:
                  a. URL query string parameters
                  b. Body parameters
                  c. Cookies
                  d. Multipart parameter attributes (e.g. the filename in file uploads)
                  e. XML data and element attributes
                  f. JSON parameters
You can configure whether the automatic payload positions will replace or append to the existing parameter values, via an option on the Intruder menu. Note that if a sub-portion of the request, but not the whole message body, contains data formatted using XML or JSON, you can automatically position payloads within this structure by manually selecting the exact block of formatted data, and using the "Auto" button to position payloads within it. This is useful, for example, when a multipart parameter value contains data in XML or JSON format.
  • Refresh - This refreshes the syntax colorizing of the request template editor, if necessary.
  • Clear - This deletes the entire request template.
Note: You can also use Intruder's payload positions UI to configure custom insertion points for active scans by Burp Scanner. To do this, configure the request template and payload markers in the usual way within Intruder, and then select "Actively scan defined insertion points" from the Intruder menu.

Payloads
This tab is used to configure one or more payload sets. The number of payload sets depends on the attack type defined in the Positions tab. For many common tasks, such as fuzzing parameters, brute force guessing a user's password, or cycling through page identifiers, only a single payload set is needed.

The configuration steps needed to configure a payload set are as follows:

Payload set - Select if you wish to configure from the drop-down list.
Payload type - Select If you want to use from the drop-down list. A large number of payload types are available, and these are highly configurable, allowing you to quickly automate the generation of payloads for virtually any situation:
  • Simple list
  • Runtime file
  • Custom iterator
  • Character substitution
  • Case modification
  • Recursive grep
  • Illegal Unicode
  • Character blocks
  • Numbers
  • Dates
  • Brute forcer
  • Null payloads
  • Character frobber
  • Bit flipper
  • Username generator
  • ECB block shuffler
  • Extension-generated
  • Copy other payload
Payload Processing
The payloads generated by the configured payload type can be further manipulated using various payload processing rules and payload encoding.

Payload Processing Rules
 You can define rules to perform various processing tasks on each payload before it is used. The defined rules are executed in sequence, and can be toggled on and off to help debug any problems with the configuration. Payload processing rules are useful in many kinds of situation where you need to generate unusual payloads, or need to wrap payloads up within a wider structure or encoding scheme prior to use.

The following types of rule are available:
  • Add prefix - This adds a literal prefix before the payload.
  • Add suffix - This adds a literal suffix after the payload.
  • Match / replace - This replaces any parts of the payload that match a specific regular expression, with a literal string.
  • Substring - This extracts a sub-portion of the payloads, starting from a specified offset (0-indexed) and up to a specified length.
  • Reverse substring - This functions as for the substring rule, but the end offset is specified counting backwards from the end of the payload, and the length is counted backwards from the end offset.
  • Modify case - This modifies the case of the payload, if applicable. The same options are available as for the case modification payload type.
  • Encode - This encodes the payload using various schemes: URL, HTML, Base64, ASCII hex or constructed strings for various platforms.
  • Decode - This decodes the payload using various schemes: URL, HTML, Base64 or ASCII hex.
  • Hash - This carries out a hashing operation on the payload.
  • Add raw payload - This adds the raw payload value before or after the current processed value. It can be useful, for example, if you need to submit the same payload in both raw and hashed form.
  • Skip if matches regex - This checks whether the current processed value matches a specified regular expression, and if so, skips the payload and moves onto the next one. This can be useful, for example, if you know that a parameter value must have a minimum length and want to skip any values in a list that are shorter than this length.
  • Invoke Burp extension - This invokes a Burp extension to process the payloads. The extension must have registered an Intruder payload processor. You can select the required processor from the list of available processors that have been registered by currently loaded extensions.
Payload Encoding
 You can configure which characters within the payload should be URL-encoded for safe transmission within HTTP requests. Any configured URL-encoding is applied last, after any payload processing rules have executed.
 It is recommended to use this setting for final URL-encoding, rather than a payload processing rule, because the payload grep option can be used to check responses for echoed payloads before the final URL-encoding is applied.

Options
This tab contains Intruder attack options for request headers, the request engine, attack results, grep match, grep extract, grep payloads, and redirections. You can edit these options in the main Intruder UI before launching an attack, and most settings can also be modified in the attack window when the attack is already running.

Request Headers
These settings control whether Intruder updates the configured request headers during attacks. Note that you have full control over the request headers via the request template in the payload positions tab. These options can be used to update those headers per-request in ways that are normally helpful.

The following options are available: 
  • Update Content-Length header - This option causes Intruder to add or update the Content-Length header in each request, with the correct value for the length of the HTTP body of that particular request. This feature is usually essential for attacks that insert variable-length payloads into the body of the template HTTP request. If the correct value is not specified, then the target server may return an error, may respond to an incomplete request, or may wait indefinitely for further data to be received in the request.
  • Set Connection: close - This option causes Intruder to add or update the Connection header with the value "close". In some cases (when the server does not itself return a valid Content-Length or Transfer-Encoding header), this option may allow attacks to be performed more quickly.
Request Engine
 These settings control the engine used for making HTTP requests in the Intruder attack. The following options are available: 
  • Number of threads - [Pro version] This option controls the number of concurrent requests the attack is able to make.
  • Number of retries on network failure - If a connection error or other network problem occurs, Burp will retry the request the specified number of times before giving up and moving on. Intermittent network failures are common when testing, so it is best to retry the request several times when a failure occurs.
  • Pause before retry - When retrying a failed request, Burp will wait the specified time (in milliseconds) following the failure before retrying. If the server is being overwhelmed with traffic, or an intermittent problem is occurring, it is best to wait a short time before retrying.
  • Throttle between requests - Optionally, Burp can wait a specified delay (in milliseconds) before every request. This option is useful to avoid overloading the application, or to be more stealthy. Alternatively, you can configure a variable delay (with a given start value and increment). This option can be useful to test the session timeout interval enforced by the application.
  • Start time - This option lets you configure the attack to start immediately, or after a specified delay, or to start in a paused state. These alternatives can be useful if an attack is being configured which will be executed at some future point, or saved for future use.
Careful use of these options lets you fine tune the attack engine, depending on the performance impact on the application, and on your own processing power and bandwidth. If you find that the attack is running slowly, but the application is performing well and your own CPU utilization is low, you can increase the number of threads to make your attack proceed faster. If you find that connection errors are occurring, that the application is slowing down, or that your own computer is locking up, you should reduce the thread count, and maybe increase the number of retries on network failure and the pause between retries.

Attack Results
  These settings control what information is captured in the attack results. The following options are available:
  • Store requests / responses - These options determine whether the attack will save the contents of individual requests and responses. Saving requests and responses consumes disk space in your temporary directory, but enables you to view these in full during an attack, repeat individual requests if necessary, and send them to other Burp tools.
  • Make unmodified baseline request - If this option is selected, then in addition to the configured attack requests, Burp will issue the template request with all payload positions set to their base values. This request will show as item #0 in the results table. Using this option is useful to provide a base response against which to compare the attack responses.
  • Use denial-of-service mode - If this option is selected, then the attack will issue requests as normal but will not wait to process any responses received from the server. As soon as each request is issued, the TCP connection will be closed. This function can be used to perform application-layer denial-of-service attacks against vulnerable applications, by repeatedly sending requests that initiate high-workload tasks on the server, while avoiding locking up local resources by holding sockets open waiting for the server to respond.
  • Store full payloads - If this option is selected, Burp will store the full payload values for each result. This option consumes additional memory but may be required if you want to perform certain actions at runtime, such as modifying payload grep settings, or reissuing requests with a modified request template.
Grep - Match
  These settings can be used to flag result items containing specified expressions in the response. For each item configured in the list, Burp will add a new results column containing a checkbox indicating whether the item was found in each response. You can then sort on this column (by clicking the column header) to group the matched results together.
Using this option can be very powerful in helping to analyze large sets of results, and quickly identifying interesting items. For example, in password guessing attacks, scanning for phrases such as "password incorrect" or "login successful" can locate successful logins; in testing for SQL injection vulnerabilities, scanning for messages containing "ODBC", "error", etc. can identify vulnerable parameters.

In addition to the list of expressions to match, the following options are available: 
  • Match type - This specifies whether the expressions are simple strings or regular expressions.
  • Case sensitive match - This specifies whether the check for the expression should be case sensitive.
  • Exclude HTTP headers - This specifies whether the HTTP response headers should be excluded from the check.

Grep - Extract
 These settings can be used to extract useful information from responses into the attack results table. For each item configured in the list, Burp will add a new results column containing the text that was extracted for that item. You can then sort on this column (by clicking the column header) to order the extracted data.
This option is useful for mining data from the application and can support a wide range of attacks. For example, if you are cycling through a range of document IDs, you can extract the page title of each document looking for interesting items. If you have found a function that returns details of other application users, you can iterate through user IDs and retrieve relevant fields about users looking for administrative accounts or even passwords. If a "forgotten password" function takes a username as a parameter and returns a user-configured password hint, you can run through a list of common usernames and harvest all the associated password hints, and then visually scan through the list looking for easily guessed passwords.
If the same matching item is added multiple times in succession, then each server response will be searched for multiple occurrences of that expression, and the text immediately following each occurrence will be captured. This can be useful, for example when an HTML table contains useful information but there are no unique prefixes with which to automatically pick out each item.

Grep - Payloads
  These settings can be used to flag result items containing reflections of the submitted payload. If the option is enabled, Burp will add a new results column containing a checkbox indicating whether the value of the current payload was found in each response. (If more than one payload set is used, a separate column will be added for each payload set.)
This feature can be useful in detecting cross-site scripting and other response injection vulnerabilities, which can arise when user input is dynamically inserted into the application's response.

The following options are available:
  • Case sensitive match - This specifies whether the check for the payload should be case sensitive.
  • Exclude HTTP headers - This specifies whether the HTTP response headers should be excluded from the check.
  • Match against pre-URL-encoded payloads - It is normal to configure Intruder to URL-encode payloads within requests. However, these are normally decoded by the application and echoed in their original form. You can use this option to make Burp check responses for payloads in their pre-encoded form.
Redirections
  These settings control how Burp handles redirections when performing attacks. It is often necessary to follow redirections to achieve the objectives of your attack. For example, in a password guessing attack, the result of each attempt might only be displayed by following a redirection. When fuzzing, relevant feedback might only appear in an error message that is returned after an initial redirection response.

The following options are available:

Follow redirections - This setting controls the targets of redirections that are followed. The following options are available:
  • Never - Intruder will not follow any redirections.
  • On-site only - Intruder will only follow redirections to the same web "site", i.e. to URLs employing the same host, port and protocol as was used in the original request.
  • In-scope only - Intruder will only follow redirections to URLs that are within the suite-wide target scope.
  • Always - Intruder will follow redirections to any URL whatsoever. You should use this option with caution - occasionally, web applications relay your request parameters in redirections to third-parties, and by following redirections you may inadvertently attack an application that you do not intend to.
Process cookies in redirections - If this option is selected, then any cookies set in the redirection response will be resubmitted when the redirection target is followed. For example, this option may be necessary if you are attempting to brute force a login challenge that always returns a redirection to a page indicating the login result, and a new session is created in response to each login attempt.
(Click image for large view)

Like it ? Share it.

Thursday, June 19, 2014

Self Defense Apps for Android


Submission Defense
This app was designed with one single-minded purpose: to help you tap out much less often. you can easily navigate to each individual technique or details section simply by touching a couple of buttons.  Plus with the app you also get an entire lesson on shutting down your opponent’s offence from the Black Belt Concepts Course for free.

Self-defense. (World karate)
This app helps you learn the fighting art called karate. It will teach you everything from basics to advance. It even provides the right workouts to make your body fit to learn this art.
It’s available in 9 languages and it gives you the pictures of the move so that you can have the correct posture and learn the right method. It’s priced at 122 rupees on play store.

Marine Corps Martial Arts I
This is advanced level of defense. The moves and tricks it provides are totally brilliant as people who are highly trained in this field have given the best information needed to learn these defensive methods in the most effective way possible.
This app has all the moves in the order and it helps you understand better with the help of pictures and videos. It focuses on important things like hand-to-hand combat, edged weapons and weapons of opportunity.

Bully Buster
This app is really helpful for kids to save themselves from getting bullied. It provides all the secret tactics to defend a child from getting bullied.
 It helps a kid to learn bullying basics and it also has a lot of other information like teaching a child to speak to an adult or school officials and teach them how to be confident. It’s a free app and every kid needs to learn these methods to keep him away from getting bullied.



Self Defense for Women
This is an app exclusively made for women who have to pass through the dangerous streets out there. Self defense for women teaches you all the moves you need to save yourself from the attackers.
 It focuses on basic self defense moves that you can employ to resist an attacker, ideal weapons for self defense, effective martial arts, correct posture in self defense and being alert in high-risk places.

Like it ? Share it.

Monday, June 16, 2014

Introduction Burp Suite Part III ( Spider Tab)


Burp Spider is a tool for automatically crawling web applications. You can use this in conjunction with manual mapping techniques to speed up the process of mapping an application's content and functionality.

Spider Status
Use these settings to monitor and control Burp Spider:
 Spider is paused / running - This toggle button is used to start and stop the Spider. While the Spider is stopped it will not make any requests of its own, although it will continue to process responses generated via Burp Proxy (if passive spidering is enabled), and any newly-discovered items that are within the spidering scope will be queued to be requested if the Spider is restarted.
Clear queues - If you want to reprioritize your work, you can completely clear the currently queued items, so that other items can be added to the queue. Note that the cleared items may be re-queued if they remain in-scope and the Spider's parser encounters new links to the items.
The display also shows some metrics about the Spider's progress, enabling you to see the size of the in-scope content and the work remaining to fully spider it.




Spider Scope
 This panel lets you define exactly what is in-scope for the Spider to request.
 The best way to handle spidering scope is normally using the suite-wide target scope, and by default the Spider will use that scope. If you need to define a different scope for the Spider to use, then select "Use custom scope". A further configuration panel will appear which functions in the same way as the suite-wide target scope panel. If you have selected to use a custom scope and you send any out-of-scope items to the Spider, then Burp will automatically update this custom scope, rather than the Suite scope.
(Click image for large view)


Spider Options
This tab contains options for the basic crawler settings, passive spidering, form submission, application login, the Spider engine, and HTTP request headers.

Crawler Settings
These settings control the way the Spider crawls for basic web content:
  • Check robots.txt - If this option is checked, the Spider will request and process the robots.txt file, to extract links to content. This file is used by the robots exclusion protocol to control the behavior of spider-like agents on the Internet. Note that the Spider does not conform to the robots exclusion protocol. Because the Spider is designed to enumerate a target application's content, all entries in robots.txt will be requested if they are in scope.
  • Detect custom "not found" responses - The HTTP protocol requires web servers to return a 404 status code if a requested resource does not exist. However, many web applications return customized "not found" pages that use a different status code. If this is the case, then using this option can prevent false positives in the mapping of site content. Burp Spider detects custom "not found" responses by requesting several nonexistent resources from each domain, and compiling a fingerprint with which to diagnose "not found" responses to other requests.
  • Ignore links to non-text content - It is often possible to deduce the MIME type of a particular resource from the HTML context in which links to it appear (for example <img> tags). If this option is checked, the Spider will not request items which appear, from this context, to be non-text resources. Using this option can reduce spidering time with minimal risk of overlooking interesting content as a result.
  • Request the root of all directories - If checked, the Spider will request all identified web directories within the target scope, in addition to files within those directories. This option is particularly useful if directory indexing is available on the target site.
  • Make a non-parameterized request to each dynamic page - If checked, the Spider will make a non-parameterized GET request to all in-scope URLs that accept query string parameters. Dynamic pages usually respond differently if the expected parameters are not received, and this option may successfully detect additional site content and functionality.
  • Maximum link depth - This is the maximum number of "hops" that the Spider will navigate from any seed URL. A value of zero will cause the Spider to request seed URLs only. If a very large number is specified, then in-scope links will be followed effectively indefinitely. Setting this option to a reasonable number can help to prevent spidering loops in certain kinds of dynamically generated content.
  • Maximum parameterized requests per URL - This is the maximum number of requests that the Spider will make to the same base URL with different parameters. Setting this option to a reasonable number can help to avoid crawling "infinite" content, such as calendar applications with a date parameter in the URL.

     Passive Spidering
     Passive spidering monitors traffic through Burp Proxy to update the site map without making any new requests. This enables you to map out an application's content and functionality in a very controlled way using your browser.

    The following options are used to control passive spidering: 
    • Passively spider as you browse - If checked, Burp Spider will process all HTTP requests and responses made through Burp Proxy, to identify links and forms on pages that you visit. Using this option can enable Burp to build up a detailed picture of an application's content even when you have only browsed a subset of that content, because Burp identifies everything that is linked from the content that you do browse. Content that you have requested is shown in black on the Target site map, while unrequested content is shown in gray, enabling you to easily identify areas of the application that require further mapping.
    • Link depth to associate with Proxy requests - This option controls the "link depth" which will be associated with URLs accessed through Burp Proxy.
    Form Submission
      These settings control whether and how the Spider submits HTML forms. Simply following linked URLs will achieve limited coverage of most applications. To discover all of an application's content and functionality, it is generally necessary to submit forms using realistic inputs.

    The following options are available: 
    • Individuate forms - This option configures the criteria for individuating unique forms (action URL, method, fields, values). When the Spider processes each form, it will check these criteria to determine if the form is "new". Forms that are new will be queued for submission, according to the other form submission options. Careful use of this option can help the Spider to deal with applications that make use of different forms-based navigational structures.
    • Don't submit forms - If selected, the Spider will not submit any forms.
    • Prompt for guidance - If selected, the Spider will prompt you for guidance before submitting each form. The interactive prompt allows you to enter custom data into form input fields as required, select which submit fields to send to the server, and choose whether to iterate through all available submit fields.
    • Automatically submit - If selected, the Spider will automatically submit any in-scope forms using the defined rules to assign the values of text input fields. Each rule lets you specify a simple or regular expression to match on form field names, and the value to submit in fields whose names match the expression. A default value can be specified for any unmatched fields.
    This option is particularly useful if you want to automatically spider through registration forms and similar functions, where applications typically require data in a valid format for each input field. Burp comes with a set of default rules that have proven successful when automatically submitting form data to a wide range of applications. You can modify these or add your own rules if you encounter form field names that you want to submit specific values in. You should use this option with caution, as submitting bogus values in forms may sometimes result in undesirable actions.
    Many forms contain multiple SUBMIT elements, which result in different actions within the application, and the discovery of different content. You can configure the Spider to iterate through the values of all submit elements within forms, submitting each form multiple times up to a configurable maximum.

    Application Login
     These settings control how the Spider submits login forms.
     Because of the function that authentication plays in web applications, you will often want Burp to handle login forms in a different way than ordinary forms. Using this configuration, you can tell the Spider to perform one of four different actions when a login form is encountered:
    • Burp can ignore the login form, if you don't have credentials or are concerned about spidering sensitive protected functionality.
    • Burp can prompt you for guidance interactively, enabling you to specify credentials on a case-by-case basis. This is the default option.
    • Burp can handle login forms in the same way as any other form, using the configuration and auto-fill rules you have configured for those.
    • Burp can automatically submit specific credentials in every login form that is encountered. When Burp tries to do this, it will submit your configured password in the password field, and will submit your configured username in the text input field whose name most looks like a username field.
    Note that you can also use the suite-wide session handling rules to deal with authentication while performing automated spidering. If you use session handling rules to maintain a valid session with the application, then you should configure the Spider not to submit login forms, to avoid disrupting your session.

    Spider Engine
     These settings control the engine used for making HTTP requests when spidering. The following options are available: 
    • Number of threads - This option controls the number of concurrent requests the Spider is able to make.
    • Number of retries on network failure - If a connection error or other network problem occurs, Burp will retry the request the specified number of times before giving up and moving on. Intermittent network failures are common when testing, so it is best to retry the request several times when a failure occurs.
    • Pause before retry - When retrying a failed request, Burp will wait the specified time (in milliseconds) following the failure before retrying. If the server is being overwhelmed with traffic, or an intermittent problem is occurring, it is best to wait a short time before retrying.
    • Throttle between requests - Optionally, Burp can wait a specified delay (in milliseconds) before every request. This option is useful to avoid overloading the application, or to be more stealthy.
    • Add random variations to throttle - This option can further increase stealth by reducing patterns in the timing of your requests.
    Careful use of these options lets you fine tune the spidering engine, depending on the performance impact on the application, and on your own processing power and bandwidth. If you find that the Spider is running slowly, but the application is performing well and your own CPU utilization is low, you can increase the number of threads to make your spidering proceed faster. If you find that connection errors are occurring, that the application is slowing down, or that your own computer is locking up, you should reduce the thread count, and maybe increase the number of retries on network failure and the pause between retries.

    Request Headers
     These settings control the request headers used in HTTP requests made by the Spider.
     You can configure a custom list of headers to be used in Spider requests. This may be useful to meet specific requirements of individual applications - for example, to emulate an expected user agent when testing applications designed for mobile devices.

    The following options are also available: 
    • Use HTTP version 1.1 - If checked, the Spider will use version 1.1 of HTTP in its requests; otherwise, it will use version 1.0.
    • Use Referer header - If checked, the Spider will submit the relevant Referer header when requesting any item that was linked to from another page. This option is useful to more closely simulate the requests that would be made by your browser, and may also be necessary to navigate through some applications that validate the Referer header.
    (Click image for large view)
    Like it ? Share it.