-
Notifications
You must be signed in to change notification settings - Fork 111
Home
Welcome to the credmap wiki! Here you will find information regarding the XML structure used to login into different websites. This information will provide you with all the necessary details required to create a login for a website of your choosing.
The "site-template.xml" file which contains all possible tags that can be used in the XML file to perform a login on a website. A description of what each tag does can be found below.
<properties>
<name value="" />
<description value="" />
<login_url value="" />
<valid_password value="" />
<valid_http_status value="" />
<invalid_http_status value="" msg="" />
<invalid_password value="" />
<invalid_account value="" />
<inactive_account value="" />
<custom_search value="" regex="" />
<captcha_flag value="" />
<valid_response_header value="" type="" />
<custom_response_header value="" msg="" />
<headers value="" />
<cookies value="" />
<user_agent value="" />
<username_or_email value="" />
<email_exception value="" />
<login_parameter value="" type="" />
<password_parameter value="" type="" />
<csrf_token_name value="" />
<csrf_url value="" />
<csrf_regex value="" />
<csrf_setcookie value="" />
<csrf_start value="" />
<csrf_end value="" />
<data value="" />
<multiple_params value="">
<param value="" regex="" type="" />
<param value="" regex="" type="" />
<param value="" regex="" type="" />
</multiple_params>
</properties>
Set the name of the site to be tested. This name is displayed when using the --list arg.
Set a description of the site to be tested. This information will be displayed via an arg in a future version.
Set the URL where the login request will be sent to.
Example
XML
<login_url value="http://www.example.com/login.php" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/bitbucket.org.xml#L4)*
### Valid_Password
Set a string to be searched for in the login response when the supplied credentials are valid.
**Example**
> **XML**
> ```xml
<valid_password value="Sign Out" />
Set an HTTP status code via the "value" attribute to be matched in any HTTP response. If the specified status code is detected, the program will continue on as normal. Wildcards are accepted after the first digit in the status code.
Example
XML
<valid_http_status value="4**" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/soundcloud.com.xml#L5)*
### Invalid_HTTP_Status
Set an HTTP status code via the "value" attribute to be matched in any HTTP response. If the specified status code is detected, the program will output "Credentials were incorrect.", unless a custom message is set via the "msg" attribute. Wildcards are accepted after the first digit in the status code.
**Example**
> **XML**
> ```xml
<invalid_http_status value="503" msg="All of the servers are busy right now." />
Set a string to be searched for in the login response when the supplied credentials are invalid.
Example
XML
<invalid_password value="Invalid username/email or password" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/ebay.com.xml#L5)*
### Invalid_Account
Set a string to be searched for in the login response when the supplied user account does not exist on the website.
**Example**
> **XML**
> ```xml
<invalid_account value="There is no user by the name" />
Set a string to be searched for in the login response when the supplied user account has been disabled or is not active on the website.
Example
XML
<inactive_account value="Your account is inactive." />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/pastebin.com.xml#L6)*
### Custom_Search
Set a custom REGEX to be searched for in the login response. The "value" attribute is used to set the message that will be displayed on the console and the "regex" attribute to specify the REGEX pattern to match.
**Example**
> **XML**
> ```xml
<custom_search value="Temporary server internal error." regex="Internal\sError\.\sPlease\stry\sagain\slater\." />
Set a string to be searched for in the login response when a captcha has been detected.
Example
XML
<captcha_flag value="Please fill out a captcha." />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/amazon.com.xml#L9)*
### Valid_Response_Header
Set a string to be searched for in the headers, and cookies when a valid login is performed. The specified string to look for is set via the "value" attribute which can be a normal string or a REGEX pattern. The "type" attribute must be set to "regex" for REGEX matching.
**Examples**
> **HTTP Response**
> `Set-Cookie: session="zmj8otarj3rljdlq3n3p9i2ci1"; path=/; domain=.example.com`
> **XML (Normal Search)**
```xml
> <valid_response_header value="session=" />
XML (REGEX search)
<valid_response_header value="session="[^"]+"" type="regex" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/skype.com.xml#L8)*
### Custom_Response_Header
Set a custom message to be displayed when a specified header is detected in the login response. The custom message is specified via the "msg" attribute and the header to look for is specified via the "value" attribute.
**Example**
> **HTTP Response Header**
> `Set-Cookie: USERSESSION=zmj8otarj3rljdlq3n3p9i2ci1; path=/; domain=.example.com`
> __XML__
> ```xml
<custom_response_header value="USERSESSION" msg="The provided user exists, but the password was incorrect!" />
Set additional headers to be sent with the login request. Each header should be separated by a newline "\n".
Example
HTTP Request Header
X-Requested-With: XMLHttpRequest; Referer: https://example.com/log_in
> __XML__
> ```xml
<headers value="X-Requested-With=XMLHttpRequest\nReferer=https://example.com/log_in" />
Set additional cookies to be sent with the login request. Each cookie should be separated by an ampersand.
Example
HTTP Request Header
Cookies: locale=en_US; path=/; domain=.example.com
```XML
Specify a user-agent to be used only for the specific website.
Example
HTTP Request Header
Cookies: locale=en_US; path=/; domain=.example.com
XML
<user_agent value="Mozilla/4.0 (compatible; MSIE 4.0; Windows 98 )" />
### Username_Or_Email
Specify if the website uses a "username", "email" or "both" for login.
**Example**
> __XML__
> ```xml
<username_or_email value="both" />
Generally the username is used in cases where a website requires a domain specific e-mail to login. However, the e-mail address can be used instead if the hostname matches the one specified under the "value" attribute of this tag. The "value" attribute uses REGEX for its matching.
In the following example, the e-mail "[email protected]" is used instead of the user "johndoe".
Example
Cmdline Args
--username johndoe --email [email protected]
XML
<email_exception value="@example."/>
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/yahoo.com.xml#L11)*
### Login_Parameter
Set the parameter in the HTTP POST login request where the specified username or email will be placed. This tag also accepts the "type" attribute which currently supports "JSON" in the event that the POST data is formatted as such.
**Examples**
> __POST data__
> `[email protected]&remember_me=0`
> __XML__ (Normal Type)
> ```xml
<login_parameter value="login"/>
<data value="login=&remember_me=0"/>
POST data
{"username_or_email":"[email protected]","remember_me":"0"}
XML (JSON Type)
<login_parameter value="username_or_email" type="json" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/pinterest.com.xml#L11)*
### Password_Parameter
Set the parameter in the HTTP POST login request where the specified password will be placed. This tag also accepts the "type" attribute which currently supports "JSON" in the event that the POST data is formatted as such.
**Examples**
> __POST data__
> `password=abc123&remember_me=0`
> __XML__ (Normal Type)
> ```xml
<password_parameter value="password"/>
<data value="password=&remember_me=0"/>
POST data
{"password":"abc123","remember_me":"0"}
XML (JSON Type)
<password_parameter value="password" type="json" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/pinterest.com.xml#L12)*
### Time_Parameter
Set the current time in the specified parameter. The time-format can be specified through the "type" attribute which currently supports "epoch" time.
**Example**
> __POST data__
> `time_stamp=1447948386&remember_me=0`
> __XML__ (Epoch Type)
> ```xml
<time_parameter value="time_stamp" type="epoch" />
<data value="time_stamp=&remember_me=0"/>
Set the name of the CSRF parameter if available for the token to be placed in the login request. This token will first be retrieved from the URL specified in the "csrf_url" tag and extracted using either the "csrf_regex", "csrf_setcookie", or "csrf_start" and "csrf_end" tags. The token can be placed in a POST data parameter, in a cookie or in a header.
Examples
POST data
authenticity_token=5b404f7b7f90dc67708635fc8dd34536&remember_me=0
XML
<csrf_token_name value="authenticity_token" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/groupon.com.xml#L13)*
> __HTTP Request Headers__
> ```
Referer: https://example.com
X-CSRFToken: 5b404f7b7f90dc67708635fc8dd34536
X-Requested-With: XMLHttpRequest
XML
<csrf_token_name value="CSRFToken" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/instagram.com.xml#L11)*
### CSRF_URL
Set the URL where the CSRF Token should be fetched from.
**Example**
> __XML__
> ```xml
<csrf_url value="https://example.com/login" />
Set a REGEX to match the CSRF token from the HTML response of the "CSRF_URL". The token must be grouped with (?P) or simply have it be the first matching group in the REGEX. Those who are not comfortable with REGEX can take a look at "CSRF_Start" and "CSRF_End" below as a replacement for "CSRF_REGEX".
Example
``` > __XML__ > ```xml ```HTML Response
Set a REGEX to match the CSRF token from a cookie set when requesting the "CSRF_URL". The token must be grouped with (?P) or simply have it be the first matching group in the REGEX.
Example
HTTP Response Header
Set-Cookie: CSRF_TOKEN=5b404f7b7f90dc67708635fc8dd34536; path=/; domain=.example.com
XML
<csrf_setcookie value="CSRF_TOKEN=(?P<token>.{32}" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/pinterest.com.xml#L15)*
### CSRF_Start / CSRF_End
Set a string to specify where the CSRF token begins and ends.
**Example**
> __HTML Response__
> ```html
<input type="hidden" name="csrf_token" value="5b404f7b7f90dc67708635fc8dd34536" />
XML
<csrf_start value="type="hidden" name="csrf_token" value="" /> <csrf_end value="" />" />
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/github.com.xml#L12L13)*
### Data
Set the parameters for a POST request. Leave the values for the username, password and CSRF parameters empty and they will be filled in automatically based on the specified values in the "login_parameter", "password_parameter", and "csrf_token_name" tags.
**Example**
> __HTML Response__
> ```html
<form action="login.php" method="post">
<input type="text" name="login" value="" />
<input type="password" name="password" value="" />
<input type="checkbox" name="remember_me" value="1" />
<input type="hidden" name="csrf_token" value="5b404f7b7f90dc67708635fc8dd34536" />
<input type="submit" value="Submit">
</form>
```XML
Set multiple parameters to be sent along the login request. The "multi_param" tag uses the "value" attribute to specify a "URL" where to fetch the parameters to be sent with the login request. Each parameter is specified in it's own child tag "param" which can requires the attribute "value" and optionally "regex" and type".
By default, if only the "value" attribute is set, credmap will automatically look within HTML tags with name="value" and use the content of this tag's "value" attribute. If the "regex" attribute is specified, credmap will match the REGEX value specified and either grab the group named (?P) if available, otherwise it will use the first matching group.
The "type" attribute can be used to specify where in the HTTP Request this value should be replaced. By default, it replaces the parameters in the HTTP POST request, however "cookie" and "header" are also valid values for this attribute.
Example
```HTML Response
XML
<multiple_params value="http://example.com/login" /> </multiple_params>
> *[Reference](https://github.com/lightos/credmap/blob/master/websites/amazon.com.xml#L14-L26)*