UNDERCODE COMMUNITY
2.68K subscribers
1.23K photos
31 videos
2.65K files
80.4K links
πŸ¦‘ Undercode Cyber World!
@UndercodeCommunity


1️⃣ World first platform which Collect & Analyzes every New hacking method.
+ AI Pratice
@Undercode_Testing

2️⃣ Cyber & Tech NEWS:
@Undercode_News

3️⃣ CVE @Daily_CVE

✨ Web & Services:
β†’ Undercode.help
Download Telegram
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘An unidentifiable mechanism that helps you bypass GFW
Twitter.com/UndercOdeTC

πŸ¦‘π•€β„•π•Šπ•‹π”Έπ•ƒπ•ƒπ•€π•Šπ”Έπ•‹π•€π•†β„• & β„π•Œβ„•:

πŸ¦‘ sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

Or > sudo bash -c "$(wget -O- https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

πŸ¦‘ AOSC OS

> sudo apt-get install trojan

3) Arch Linux

> sudo pacman -S trojan

πŸ¦‘ AUR
$(AURHelper) -S trojan-git

πŸ¦‘ Debian
> sudo apt install trojan

> TROJAN_DEBIAN_VERSION="1.10.0-3"

> sudo apt update

> sudo apt install build-essential devscripts debhelper cmake libboost->

> system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev python3 curl openssl

> dget http://ftp.us.debian.org/debian/pool/main/t/trojan/trojan_${TROJAN_DEBIAN_VERSION}.dsc

>dpkg-source -x trojan_${TROJAN_DEBIAN_VERSION}.dsc trojan-${TROJAN_DEBIAN_VERSION}

>cd trojan-${TROJAN_DEBIAN_VERSION}/

>dpkg-buildpackage -us -uc -d

>sudo dpkg -i ../trojan_${TROJAN_DEBIAN_VERSION}_$(dpkg-architecture -q DEB_BUILD_ARCH).deb

>sudo apt purge devscripts debhelper cmake # you can remove it now

πŸ¦‘Gentoo

> sudo emerge --sync

> sudo emerge -av trojan

πŸ¦‘ Ubuntu
Not for Debian

> sudo add-apt-repository ppa:greaterfire/trojan

> sudo apt-get update

> sudo apt-get install trojan

> sudo apt-get install trojan

πŸ¦‘Pre-compiled binary
https://github.com/trojan-gfw/trojan/releases/latest

πŸ¦‘ Chrome OS
There are two ways:

1) Use crouton to install a linux chroot environment, and install trojan just like in a normal linux.

2) Enable Google's Linux (beta) in the settings, and run the following commands in the terminal:

> sudo -i

> apt update

> apt -y install git g++ cmake libboost-system-dev libboost-program-options-dev libssl-dev default-libmysqlclient-dev

> git clone https://github.com/trojan-gfw/trojan.git

>cd trojan/

>cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -DSYSTEMD_SERVICE=ON .
>make install
or you can upgrade it to Debian Buster:

>sudo -i

>apt update && apt dist-upgrade

>cp /etc/apt/sources.list /etc/apt/sources.list.bak

>sed -i 's/stretch/buster/g' /etc/apt/sources.list

>apt update && apt dist-upgrade
apt install trojan
Note: The IP address of the SOCKS5 proxy is not 127.0.0.1, check it by running ifconfig or ip addr.

πŸ¦‘ Windows (>=Vista)
https://github.com/trojan-gfw/trojan/releases/latest

> Download and install vc_redist.x64.exe before running the Windows binary.

πŸ¦‘macOS

> Install homebrew and run commands

> brew tap trojan-gfw/homebrew-trojan
brew install trojan

Posted by U N D E R C O D E
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘WHAT IS FAKEAV TORGAN AND WHAT HE DO ?
t.me/UndercOdeTesting

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

1) Trojan.FakeAV is a detection for Trojan horse programs that intentionally misrepresent the security status of a computer.

2) These programs attempt to convince the user to purchase software in order to remove non-existent malware or security risks from the computer.

3) The user is continually prompted to pay for the software using a credit card. Some programs employ tactics designed to annoy or disrupt the activities of the user until the software is purchased.

4) Clones
Trojan.FakeAV detects one of the most prolific types of risks seen on the Internet today. Everyday many bogus antivirus and security applications are released and pushed to unsuspecting users through various delivery channels.

5) Many of these programs turn out to be clones of each other. They are often created from the same code base but presented with a different name and look - achieved through the use of a "skin".

6) Infection
Users may encounter this kind of threat when they visit Web sites that attempt to convince them to remove non-existent malware or security risks from their computers by installing the bogus software.

7) The Trojan can also be installed by other malware, drive-by downloads, and when downloading and installing other software.

8) Users may be directed to these sites by way of the following methods:
Spam emails that contain links or attachments

9) Blogs and forums that are spammed with links to adult videos

10) User-generated content spam (e.g. fake videos)

11) Malicious banner advertisements

12) Pirated software (β€˜warez’) and pornography sites

13) Search Engine Optimization (SEO) poisoning

14) Fake torrent files or files on file sharing networks

15) Web pages containing exploits

16) The programs may also be downloaded on to the computer by other threats such as:
Backdoor.Tidserv
Trojan.Vundo
W32.Waledac
W32.Virut

πŸ¦‘Functionality

1) These programs intentionally misrepresent the security status of a computer by continually presenting fake scan dialog boxes and alert messages that prompt the user to buy the product.

2) The programs often have an icon in the notification area of the operating system desktop and constantly display pop-up messages alerting the user about fake security issues such as virus infections.

3) These pop-up windows only disappear once the user has purchased the product and the non-existent threats have supposedly been removed from the compromised computer.

Posted by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘How hackers hack sites
main ways hackers crack sites:
t.me/UndercodeTesting

1) Weak passwords

2) Deprecated Software

3) Insecure themes and plugins

4) Hosting Software Vulnerabilities

> There are many other methods, but these methods are the most common.

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

1) Login and password selection
By default, WordPress has no limit on the number of attempts to enter a username and password. If you leave it as it is, a hacker may try to pick the right combination an unlimited number of times. This is called a brute force attack, brute force attack or password brute force attack.

2) You can limit the number of authorization attempts using a plugin, for example Login LockDown . Another way is to transfer the authorization page to a new address, for example сайт.ru/login.

3) Vulnerability descriptions of legacy WordPress versions, plugins, and themes are available on the Internet. Bots have these descriptions. When they find a site with an outdated version of the software, they hack this site using an existing algorithm.

4) To protect the site from such attacks, always use only the latest software version.

5) The hacker saves a file with a special script on the server, which allows him to access the site at any time, while the hacker does not use the standard login page, but logs into the site through the backdoor he created.

6) To disguise the created file, hackers call it so that it looks like part of the WordPress core, for example, users-wp.php , php5.php , sunrise.php or something like that.

7) If you do not have any plugin installed that warns about file changes, it can be quite difficult to determine if a malicious file has been added.

8) There are several signs that may indicate that the site has been hacked. If you open the frontend or backend of a site, and you see a message in the browser that visiting this site may be unsafe, then your site may be hacked.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ Basic site security requirements
These requirements are a necessary minimum for site security.
fb.com/UndercOdeTestingCompany

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

1) Regularly update WordPress, scripts, plugins and themes.

2) Use complex logins and passwords.

3) Install the plugin to limit authorization attempts.

4) Choose plugins and themes from trusted authors.

5) Use reliable hosting.

6) Configure automatic backup of all files and database.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Update software, change passwords, keys and salts :)
> Once you have removed the malicious code, update WordPress, plugins and themes. Change passwords on the site and on the hosting. Think about changing the password for the email and database (in the wp-config.php file and on the hosting).
t.me/UndercOdeTesting

1) Change the keys and salts , this will make all cookies that are stored in the browsers of users, including hackers, invalid for authorization on the site.

2) The key and salt generator is on the WordPress website. Copy the new keys and paste them into the wp-config file at this location:


> define('AUTH_KEY', 'r?=mgu>fln25:B(vkI2l4mK_3v5>K*$<0)|nwPx#JJAK-3aMbu>@,m<69Z<(Bc--');
define('SECURE_AUTH_KEY', '0Z<j1rD>!|3x$sFedLT|?yiMw{Jx:&3Y%c^zoSn%WNicz@sh[wn;K8OMW_!:,L0C');
define('LOGGED_IN_KEY', '4{=AG|uXk#.h{,WXo3qOak^R-_f|uwJUn[>~^(GgZL3((iVx%=%_mC9iN|Vavz4b');
define('NONCE_KEY', 'BLj3h5)aK/fflv/EchqWqIAK!>T&{[cDE%Wz4^%teT_p`OLO3uMR(!!-vXDKO{3d');
define('AUTH_SALT', ']UxIOGK)4q%h3op98)Zv`x|b>!MNomc7(>v+Za&RkQeKy$f/->u3b3nC*v`2/3P^');
define('SECURE_AUTH_SALT', 'KGxLW%Kj|:dY/~W_wdR<CFHMi!Ce^MZX2)+Pnk:!Ulc[/}|}^k}b&s4kH->_|nF ');
define('LOGGED_IN_SALT', 'I-YI,LF. GOv4UU!6%P./.D#M79%M])WqNL^hHE[N>U$bfMUtuDO=)q]N588HB,4');
define('NONCE_SALT', 'wAlP+rI2uHJ5wx|ucHeoha.%P_T4Xnc(Lp43|<dnQ72Jsv7#{cF_ptT8-~)G)+@,');

3) Before modifying the wp-config file, make a backup of it. Save the file, upload it back to the server.


Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Tips to help you prevent your phone from being hacked guide:
t.me/UndercOdeTesting

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

Here are some tips you can use to prevent your phone from being hacked:

1) Do not share passwords with everyone.

2) Do not use the same passwords for all devices and accounts.

3) Do not open links sent in text messages and emails without checking the source.

4) Install antivirus software on your phone.

5) Check the applications installed on your phone and remove those that you consider suspicious.

6) Make sure you have 2fa for iCloud and online accounts.

7) Regularly update the applications and OS of your phone.

8) Do not connect your phone to a public Wi-Fi account without using a VPN.

9) Use a VPN to connect your phone to a public Wi-Fi network.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘IN PHP SQL Injection Protection GUIDE BY UndercOde
t.me/iOsDeveloppers

πŸ¦‘PART 1 :

> SQL injection attack principle

1) Let's say our site has a page showing weather history for one city. The identifier of this city is transmitted in the link in the request parameter:, /weather.php?city_id=<ID>where IDis the primary key of the city.
In a PHP script, we use this parameter to substitute a SQL query:

$city_id = $_GET['city_id'];
$res = mysqli_query($link, "SELECT * FROM weather_log WHERE city_id = " . $city_id);

2) If the city_id parameter equal to 10 ( /weather.php?city_id=10) is passed on the server , then an SQL query will be executed:

SELECT * FROM weather_log WHERE city_id = 10
But if the attacker passes a string as the id parameter -1 OR 1=1, the request will be executed:

SELECT * FROM weather_log WHERE city_id = -1 OR 1=1

3) Adding SQL language constructs (instead of simple values) to the input parameters changes the logic of the entire SQL query!
this example, instead of showing data for one city, data will be obtained for all cities, because the expression 1 = 1 is always true. Instead of an expression, there SELECT ...could be an expression to update the data, and then the consequences would be even more serious.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘How Protect YouR Php site from sql attack :
t.me/UndercOdeTesting


PART 2 :

> Casting to integer type

1) In SQL queries, integer values ​​received from the user are often substituted. In the examples above, the city identifier obtained from the request parameters was used.

2) This identifier can be forced to a number. So we exclude the appearance of dangerous expressions in it. If the hacker passes code in this parameter instead of the number SQL, then the result of the cast will be zero, and the logic of the entire SQL query will not change.

3) PHP can assign a new type to a variable. This code will force the variable to be an integer type:

$city_id = $_GET['city_id'];
settype($city_id, 'integer');
After conversion, the variable $city_idcan be safely used in SQL queries.

4) Escaping Values
What should I do if I need to substitute a string value in an SQL query? For example, the site has the ability to search for a city by its name. The search form will pass the search query to the GET parameter, and we use it in the SQL query:

$city_name = $_GET['search'];
$sql = "SELECT * FROM cities WHERE name LIKE('%$city_name%')";

5) But if there city_nameis a quotation mark in the parameter , then the meaning of the request can be radically changed. Passing the value to search_text ')+and+(id<>'0, we will execute a request that displays a list of all cities:

SELECT * FROM cities WHERE name LIKE('%') AND (id<>'0%'))
The meaning of the query has changed because the quotation mark from the query parameter is considered a control character: MySQL determines the end of the value by the quotation mark after it, therefore, the quotation mark values ​​themselves should not contain.
Obviously, casting to a numeric type is not suitable for string values. Therefore, to protect the string value, use the escaping operation .

6) Escaping adds an apostrophe in the line before quotation marks (and other special characters) \.
Such processing removes the quotation marks of their status - they no longer determine the end of the value and cannot affect the logic of the SQL expression.

7) The function is responsible for escaping values mysqli_real_escape_string().
This code will process the value from the parameter, making it safe for use in the request:

$city_name = mysqli_real_escape_string($link, $_GET['search']);
$sql = "SELECT * FROM cities WHERE name LIKE('%$city_name%')";

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘How Protect YouR Php site from sql attack :
fb.com/UndercOdeTestingCompany

PART 3-end :

> Prepared Expressions
A type of SQL injection attack is possible because the values (data) for the SQL query are transmitted along with the query itself. Since the data is not separate from the SQL code, it can affect the logic of the whole expression. Fortunately, MySQL offers a way to transfer data separately from the code. This method is called prepared queries .

> Execution of prepared queries consists of two stages: first, a query template is formed - a regular SQL expression, but without real values, and then, separately, values for this template are transferred to MySQL.
The first stage is called preparation, and the second - expression. A prepared request can be executed several times, passing different values there.

1) Stage of preparation
At the stage of preparation, an SQL query is generated, where the place signs will contain question marks - placeholders. These placeholders will later be replaced with real values. The query template is sent to the MySQL server for analysis and parsing.
Example:

$sql = "SELECT * FROM cities WHERE name = ?";
$stmt = mysqli_prepare($link, $sql);

2) This code will form a prepared expression to fulfill your request.

The preparation is in progress. When the request is launched, PHP binds the real values to the placeholders and sends them to the server. The function is responsible for passing the values to the prepared request mysqli_stmt_bind_param(). It takes the type and the variables themselves:

mysqli_stmt_bind_param($stmt, 's', $_GET['search']);
After executing the query, you can get its result in the mysqli_result format with the function mysqli_stmt_get_result():

$res = mysqli_stmt_get_result($stmt);

// Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…
while ($row = mysqli_fetch_assoc($res)) {
// ассоциативный массив с ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ записью ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°
var_dump($row);
}

3) The server shields the values of the variables associated with the request automatically. Bound variables are sent to the server separately from the request and cannot affect it. The server uses these values directly at runtime, after the expression template has been processed. Bound parameters do not need to be escaped, since they are never substituted directly into the query string.

THATS ALL!

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘HTTP protocol and work with headers guide :
twitter.com/UndercOdeTC

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

> HTTP protocol
How WWW (World Wide Web, Web) works in a nutshell:

1) the user's browser (client) sends a request to the server with the site address (URL);

2) the server receives this request and gives the client the content it needs.

3) In other words, the entire modern web is built on a model of client-server interaction. And to make this whole process possible, a universal protocol language is needed that both the server and browser will understand. There is such a protocol, but it is called HTTP.

πŸ¦‘ How HTTP works, and why do we need to know ? πŸ¦‘

> You can program in PHP without knowing the HTTP protocol, but there are a number of situations where you need to know how the web server works to solve problems. After all, PHP is, first of all, a server programming language.

> The HTTP protocol is very simple and consists essentially of two parts:

Request / response headers
Request / Response Bodies.
First comes a list of headers, then an empty string, and then (if any) the body of the request / response.

> Both the client and the server can send headers and the response body to each other, but in the case of the client, the available headers will be one, and the server will be different. Let's take a step-by-step look at how the work using the HTTP protocol will look in the case when the user wants to download the main page of the Vkontakte social network.

1) The user's browser establishes a connection with the vk.com server and sends the following request:

GET / HTTP / 1.1
Host: vk.com

2) The server accepts the request and sends a response:

HTTP/1.1 200 OK
Server: Apache

<html>
<head>
<title>Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅</title>
</head>
<!-- ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ страницы Π½ΠΈΠΆΠ΅ -->

3) The browser accepts the response and displays the finished page

> Most of all, we are interested in the very first step, where the browser initiates a request to the vk.com server.
Let us consider in more detail what is happening there. The first line of the query defines several important parameters, namely:

> The method by which the content will be requested;
Page address;
Protocol version.
GETIs a method (verb) that we use to access the specified page.
GETis the most commonly used method because it tells the server that the client just wants to read the specified document. But besides GETthere are other methods, we will consider one of them in the next section.

> After the method there is an indication of the page address - URI (universal resource identifier). In our case, we request the main page of the site, so just a slash is used /.
The last in this line is the protocol version and almost always it will beHTTP/1.1

> After a line indicating the main parameters, a list of headers always fo1llows, which give the server additional useful information: the name and version of the browser, language, encoding, caching parameters, and so on.

> Among all these headers that are transmitted during each request, there is one mandatory and most important one - this is the heading Host. It determines the domain address that the client browser requests.

> Having received a request, the server searches for a site with a domain from the header Host, as well as the specified page.
If the requested site and page are found, a response is sent to the client:
HTTP/1.1 200 OK

> This answer means that everything is fine, the document is found and will be sent to the client.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘2019 collection of android Exploits and Hacks
Fb.com/UndercOdeTestingcompany

πŸ¦‘π•€β„•π•Šπ•‹π”Έπ•ƒπ•ƒπ•€π•Šπ”Έπ•‹π•€π•†β„• & β„π•Œβ„•:

1) git clone https://github.com/sundaysec/Android-Exploits.git

> Recommend you grab exploitpack latest version

wget https://github.com/juansacco/exploitpack/archive/master.zip

2) Extract then Navigate into the folder and type:

3) java -jar ExploitPack.jar

4) Load the exploits

πŸ¦‘Common Tools(In mobile Exploits):

> SSH

> VNC server

> A compiler (gcc / agcc)

> Android SDK (adb!)

> XCode

> Jailbroken iDevice

> Rooted Android Device

@ Μ΅Ν‘M̡͘ Μ Μ–rΜΆΜ•.̡́ Μ·Ν B̴͘OΜ·Μ“TΜΆΜ†Ń̴EΜΆΝ›TΜΆΜ…(tm

▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Objects and classes in PHP Lets Undercode hive s you a small good example in php
t.me/UndercOdeTesting

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

class WeatherEntry
{

private $date;
private $comment = "";
private $temperature = 0;

private $isRainy = false;

public function __construct($date, string $comment, int $temperature)
{
$this->date = $date;
$this->comment = $comment;
$this->temperature = $temperature;
}

public function isCold()
{
return $this->temperature < 0;
}

public function setRainStatus($rain_status)
{
$this->isRainy = $rain_status;
}

public function getDayDescription()
{
$dt = strtotime($this->date);
$delta = time() - $dt;
$days = ceil($delta / 86400);

$res = "Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ $days Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄. Π’ Ρ‚ΠΎΡ‚ дСнь Π±Ρ‹Π»ΠΎ ";

if ($this->isCold()) {
$res .= "Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎ. ";
}
else {
$res .= "довольно Ρ‚Π΅ΠΏΠ»ΠΎ. ";
}

if ($this->isRainy) {
$res .= "БСмСнил доТдь.";
}
else {
$res .= "На Π½Π΅Π±Π΅ Π½Π΅ Π±Ρ‹Π»ΠΎ Π½ΠΈ ΠΎΠ±Π»Π°Ρ‡ΠΊΠ°.";
}

return $res;
}
}

πŸ¦‘Creating an object based on a class:

$firstSeptember = new WeatherEntry("2018-09-01", "Π”Π΅Π½ΡŒ Π·Π½Π°Π½ΠΈΠΉ", 14);
$firstSeptember->setRainStatus(false);

print($firstSeptember->getDayDescription());

@UndercOdeOfficial

▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Open Databases and Hacking with Shodan guide: details:
t.me/UndercOdeTesting

πŸ¦‘πŸ…»πŸ…΄πŸ†ƒ πŸ†‚ πŸ†‚πŸ†ƒπŸ…°οΈπŸ†πŸ†ƒ:

1) special search engines Shodan and Censys are used. Databases have a specific pattern in the form of a port and a so-called header. For example, for MongoDB, this is the standard port 27017 and the header is β€œmongodb server information”. Such patterns exist for other databases.

2) The most popular option is MongoDB. At the time of writing, 69,100 results have been indexed . Most of them are closed (the Authentication partially enabled parameter indicates this ).

3) To fully work with the results of issuing a database: filter records by size, date of entry into the index, number of collections, etc. need to use more functional tools. One of them is Lampyre .

If you don’t want to deliver software to yourself, you can use the familiar Shodan Command-Line Interface . For those who want to work using the command line, I have prepared a file with commands that allow you to find and analyze data in json or xlsx formats.

4) To work with more exotic databases, I recommend using LeakLooker . The script is written in Python and works with Shodan. In addition to standard databases, it supports Kibana, CouchDB.

> see next tutorial how install

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Find open databases 2019-2020
fb.com/UndercOdeTesting

πŸ¦‘π•€β„•π•Šπ•‹π”Έπ•ƒπ•ƒπ•€π•Šπ”Έπ•‹π•€π•†β„• & β„π•Œβ„•:

1) pip3 install colorama

2) pip3 install hurry.filesize

3) pip3 install beautifulsoup4

4) pip3 install pybinaryedge

5) git clone https://github.com/woj-ciech/LeakLooker

6) cd LeakLooker

7) PycharmProjects/LeakLooker# python leaklooker.py -h

πŸ¦‘Example :
>/PycharmProjects/LeakLooker# python leaklooker.py --rethink --listing --first 21 --last 37

πŸ¦‘New version supports:

Elasticsearch
CouchDB
MongoDB
Gitlab
Rsync
Jenkins
Sonarqube
Kibana
CassandraDB
RethinkDB
Directory listing
Amazon S3

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘ Finding open databases with Lampyre
t.me/undercOdeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) For more flexible settings, you can use the Lampyre tool for Windows.
> https://lampyre.io/

2) After downloading the application, you must specify the mail and confirm your account. After starting in Online Mode, you need to click New Investidation, select the folder for storing the project and start working.

3) In the List of requests, select Shodan search. We enter the API key and our query in the Query field, which will allow us to find open databases.

> all:"mongodb server information" all:"metrics"
https://lampyre.io/

4) You can also specify additional parameters in the Shodan - 2 window. For example, country and port. We start using the β€œExecute” button. Next up are the results. For graphic display, select β€œSchema” -> ”Network”.

5) Lampyre can filter found queries using the ExploreDB: MongoDB built-in query . Select the necessary IPs, then right-click on the menu and specify ExploreDB: MongoDB.

6) Then we get all the requests in a convenient format. You can filter by database size and other parameters that are not in Shodan. Confirmation that the database is open is the parameter text , which has the status open. It is worth sorting the results by the Size and Count documents parameters , since the most interesting databases will contain the maximum number of records in the tables.

7) You can also notice that Lampyre supports working with ExploreDB: ElasticSearch. We do everything by analogy using the query:

> port:"9200" all:"elastic indices"

8) now you receive in a convenient form the ElasticSearch database. They can be viewed by clicking on the link in the β€œ http query top 500 β€œ column .

9) you receive in a convenient form the ElasticSearch database. They can be viewed by clicking on the link in the β€œ http query top 500 β€œ column .

10) As a result, you find an open database of some store where you can find the phone, date of creation, description, mail and some other interesting information.

11) You can use any manager convenient for you to work with the resulting databases. For example, for MongoDB, NoSQL Manager for MongoDB, Robo 3T, or Studio 3T for MongoDB is suitable. Consider, for example, one of the options.

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘Analyzing Databases Using Robo 3T for MongoDB
The choice fell on the free version of Robo 3T . Portable version takes about 15 mb and allows you to quickly connect to the desired database. After starting, see a window where you need to specify the IP address.
twitter.com/UndercOdeTC

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) Right-click and add using the Add button.

2) Specify the desired IP and click Save.

3) After a successful connection, see the database. If the connection has occurred, a new client will appear in the left pane as showing on your computer

4) So You can use any manager to work with the database. You can also process data from the command line. Despite the fact that Studio 3T for MongoDB has more functionality (which is available for a trial period of 30 days

Written by UndercOde
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘What is Microsoft Access?
Microsoft Access is a Database Management System offered by Microsoft. It uses the Microsoft Jet Database Engine and comes as a part of the Microsoft Office suite of application.

Microsoft Access offers the functionality of a database and the programming capabilities to create easy to navigate screens (forms).
t.me/UndercOdeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

1) Database File:
It is a file which stores the entire database. The database file is saved to your hard drive or other storage devices.

2) Datatypes:
Datatypes are the properties of each field. Every field has one datatype like text, number, date, etc.

3) Table
A Table is an object which stores data in Row & Column format to store data.
A Table is usually related to other tables in the database file.
Each column must have Unique name
We can also define Primary Key in a table.

4) Query
Queries answer a question by selecting and sorting and filtering data based on search criteria.
Queries show a selection of data based on criteria (limitations) you provide.
Queries can pull from one or more related Tables and other Queries.
Types of Query can be SELECT, INSERT, UPDATE, DELETE.

5) Form
A form is a database object that you can use to create a user interface for a database application.
Forms help you to display live data from the table. It mainly used to ease the process of data entry or editing.

6) Report
A report is an object in desktop databases primarily used for formatting, calculating, printing, and summarizing selected data.
You can even customize the report's look and feel.

7) Macros
Macros are mini computer programming constructs. They allow you to set up commands and processes in your forms, like, searching, moving to another record, or running a formula.

8) Modules:
Modules are procedures(functions) which you can write using Visual Basic for Applications (VBA).

@UndercOdeOfficial
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘MS Access Datatypes
MS Access common data types are listed below:
t.me/UNderCodeTesting

πŸ¦‘ π•ƒπ”Όπ•‹π•Š π•Šπ•‹π”Έβ„π•‹ :

Type of Data Description Size
Short Text Text, including numbers which does not need calculation. (e.g., Mobile numbers). Up to 255 characters.

> Long Text This data type is used for lengthy text or alphanumeric data. Maximum 63, 999 characters.

> Number Numeric data type used for storing mathematical calculations. 1, 2, 4, 8, and 16 bytes.

> Date/Time Store Date/time for the years 100 through 9999. 8 bytes.

> Currency It allows you to store currency values and numeric data with one to four decimal places. 8 bytes.

> Auto Number Assign a unique number or assigned by Microsoft Access when any new record is created. Usually used as the primary key Four bytes (16 bytes if it is set as a Replication ID).

> Yes/No It only stores logical values Yes and No. 1 bit

>Attachment It stores files, such as digital photos. Multiple files can be attached per record. Up to 2 GB Data can be stored.

> OLE objects OLE objects can store audio, video, other Binary Large Objects. Up to 2 GB data can be stored.

>Hyperlink Text or combinations of text and numbers stored. That text is used as hyperlink address. Each part of a Hyperlink data type allows you to store a maximum 2048 characters.

> Calculated Helps you to create an expression that uses data from one or more fields. You can create an expression which uses data from one or more fields.

@UndercOdeOfficial
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁

πŸ¦‘dumps() method converts dictionary object of python into JSON string data format.
t.me/UndercOdeTesting

Now lets we perform our first encoding example with Python.

import json

x = {
"name": "Ken",
"age": 45,
"married": True,
"children": ("Alice","Bob"),
"pets": ['Dog'],
"cars": [
{"model": "Audi A1", "mpg": 15.1},
{"model": "Zeep Compass", "mpg": 18.1}
]
}
# sorting result in asscending order by keys:
sorted_string = json.dumps(x, indent=4, sort_keys=True)
print(sorted_string)

πŸ¦‘Output:

{"person": {"name": "Kenn", "sex": "male", "age": 28}})
Let's create a JSON file of the dictionary using the same function dump()

# here we create new data_file.json file with write mode using file i/o operation
with open('json_file.json', "w") as file_write:
# write json data into file
json.dump(person_data, file_write)

@UndercOdeOfficial
▁ β–‚ β–„ ο½•π•Ÿπ”»β’Ίπ«Δ†π”¬π““β“” β–„ β–‚ ▁