The script identifies if a site uses jQuery and checks its version.

ਇਹ ਸਕ੍ਰਿਪਟ ਪਛਾਣ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਕੋਈ ਸਾਈਟ jQuery ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ ਅਤੇ ਇਸਦੇ ਸੰਸਕਰਣ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


This script helps determine if the jQuery version is up to date.

ਇਹ ਸਕ੍ਰਿਪਟ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ ਕਿ ਕੀ jQuery ਦਾ ਸੰਸਕਰਣ ਨਵੀਨਤਮ ਹੈ।


The script uses regular expressions to find the jQuery version number.

ਸਕ੍ਰਿਪਟ jQuery ਵਰਜਨ ਨੰਬਰ ਲੱਭਣ ਲਈ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


If the version is outdated, the script will display an 'Out of Date' message.

ਜੇਕਰ ਵਰਜਨ ਪੁਰਾਣਾ ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਇੱਕ 'ਪੁਰਾਣਾ' ਸੁਨੇਹਾ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੇਗੀ।


The script checks for the presence of 'jquery.min' in the script tags.

ਸਕ੍ਰਿਪਟ ਸਕ੍ਰਿਪਟ ਟੈਗਾਂ ਵਿੱਚ 'jquery.min' ਦੀ ਮੌਜੂਦਗੀ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


This is a basic example of how to check for JavaScript library versions.

ਇਹ ਜਾਵਾਸਕ੍ਰਿਪਟ ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਦਾ ਇੱਕ ਬੁਨਿਆਦੀ ਉਦਾਹਰਣ ਹੈ।


The script can be extended to include other JavaScript libraries.

ਸਕ੍ਰਿਪਟ ਨੂੰ ਹੋਰ ਜਾਵਾਸਕ੍ਰਿਪਟ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਵਧਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।


The script identifies potential vulnerabilities in web applications.

ਸਕ੍ਰਿਪਟ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਵਿੱਚ ਸੰਭਾਵੀ ਕਮਜ਼ੋਰੀਆਂ ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ।


The script analyzes the headers of web pages.

ਸਕ੍ਰਿਪਟ ਵੈੱਬ ਪੰਨਿਆਂ ਦੇ ਸਿਰਲੇਖਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦੀ ਹੈ।


It submits XSS attack strings to all available headers.

ਇਹ ਸਾਰੇ ਉਪਲਬਧ ਸਿਰਲੇਖਾਂ 'ਤੇ XSS ਹਮਲੇ ਦੀਆਂ ਸਤਰਾਂ ਜਮ੍ਹਾਂ ਕਰਦਾ ਹੈ।


The script uses a list of payloads for XSS attacks.

ਸਕ੍ਰਿਪਟ XSS ਹਮਲਿਆਂ ਲਈ ਪੇਲੋਡਸ ਦੀ ਇੱਕ ਸੂਚੀ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script makes a HEAD request to get the headers.

ਸਕ੍ਰਿਪਟ ਸਿਰਲੇਖ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇੱਕ HEAD ਬੇਨਤੀ ਕਰਦੀ ਹੈ।


The script can be used to test for header-based cross-site scripting.

ਇਸ ਸਕ੍ਰਿਪਟ ਦੀ ਵਰਤੋਂ ਹੈਡਰ-ਅਧਾਰਿਤ ਕਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


The script targets the admin side of functionality.

ਸਕ੍ਰਿਪਟ ਕਾਰਜਕੁਸ਼ਲਤਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਪੱਖ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦੀ ਹੈ।


The script checks for the Shellshock vulnerability.

ਸਕ੍ਰਿਪਟ ਸ਼ੈਲਸ਼ੌਕ ਕਮਜ਼ੋਰੀ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


The script identifies vulnerable headers like 'referer' and 'User-Agent'.

ਸਕ੍ਰਿਪਟ ਕਮਜ਼ੋਰ ਸਿਰਲੇਖਾਂ ਜਿਵੇਂ ਕਿ 'referer' ਅਤੇ 'User-Agent' ਦੀ ਪਛਾਣ ਕਰਦੀ ਹੈ।


The script sends a payload to the vulnerable headers.

ਸਕ੍ਰਿਪਟ ਕਮਜ਼ੋਰ ਸਿਰਲੇਖਾਂ 'ਤੇ ਇੱਕ ਪੇਲੋਡ ਭੇਜਦੀ ਹੈ।


SQL injection is a common and devastating attack.

SQL ਇੰਜੈਕਸ਼ਨ ਇੱਕ ਆਮ ਅਤੇ ਵਿਨਾਸ਼ਕਾਰੀ ਹਮਲਾ ਹੈ।


This script helps in identifying URL-based SQL injection.

ਇਹ ਸਕ੍ਰਿਪਟ URL-ਅਧਾਰਿਤ SQL ਇੰਜੈਕਸ਼ਨ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।


The script checks for error messages to detect the database type.

ਸਕ੍ਰਿਪਟ ਡੇਟਾਬੇਸ ਦੀ ਕਿਸਮ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਗਲਤੀ ਸੁਨੇਹਿਆਂ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


The book provides Python recipes for web application penetration testing.

ਇਹ ਕਿਤਾਬ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਲਈ ਪਾਈਥਨ ਦੇ ਤਰੀਕੇ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।


Penetration testing is a crucial part of web security.

ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਵੈੱਬ ਸੁਰੱਖਿਆ ਦਾ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ਹੈ।


The book covers topics like gathering open source intelligence.

ਇਹ ਕਿਤਾਬ ਓਪਨ ਸੋਰਸ ਇੰਟੈਲੀਜੈਂਸ ਇਕੱਠਾ ਕਰਨ ਵਰਗੇ ਵਿਸ਼ਿਆਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।


Shodan is a powerful search engine for internet-connected devices.

ਸ਼ੋਡਨ ਇੰਟਰਨੈੱਟ ਨਾਲ ਜੁੜੇ ਡਿਵਾਈਸਾਂ ਲਈ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸਰਚ ਇੰਜਨ ਹੈ।


You can use Python to automate many security tasks.

ਤੁਸੀਂ ਬਹੁਤ ਸਾਰੇ ਸੁਰੱਖਿਆ ਕੰਮਾਂ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰਨ ਲਈ ਪਾਈਥਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ।


The script resolves the domain name to an IP address.

ਸਕ੍ਰਿਪਟ ਡੋਮੇਨ ਨਾਮ ਨੂੰ ਇੱਕ IP ਐਡਰੈੱਸ ਵਿੱਚ ਹੱਲ ਕਰਦੀ ਹੈ।


The API key is essential for using the Shodan API.

ਸ਼ੋਡਨ API ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ API ਕੁੰਜੀ ਜ਼ਰੂਰੀ ਹੈ।


The book also discusses vulnerability identification.

ਕਿਤਾਬ ਵਿੱਚ ਕਮਜ਼ੋਰੀ ਦੀ ਪਛਾਣ ਬਾਰੇ ਵੀ ਦੱਸਿਆ ਗਿਆ ਹੈ।


Automated fuzzing is a technique to find vulnerabilities.

ਆਟੋਮੈਟਿਡ ਫਜ਼ਿੰਗ ਕਮਜ਼ੋਰੀਆਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਦੀ ਇੱਕ ਤਕਨੀਕ ਹੈ।


SQL injection is a common web application vulnerability.

SQL ਇੰਜੈਕਸ਼ਨ ਇੱਕ ਆਮ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਕਮਜ਼ੋਰੀ ਹੈ।


The book explains how to manipulate web headers.

ਕਿਤਾਬ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਵੈੱਬ ਹੈਡਰਾਂ ਨੂੰ ਕਿਵੇਂ ਹੇਰਾਫੇਰੀ ਕਰਨੀ ਹੈ।


Image analysis and manipulation techniques are also covered.

ਚਿੱਤਰ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਹੇਰਾਫੇਰੀ ਤਕਨੀਕਾਂ ਨੂੰ ਵੀ ਕਵਰ ਕੀਤਾ ਗਿਆ ਹੈ।


Encryption and encoding are important for security.

ਸੁਰੱਖਿਆ ਲਈ ਏਨਕ੍ਰਿਪਸ਼ਨ ਅਤੇ ਏਨਕੋਡਿੰਗ ਮਹੱਤਵਪੂਰਨ ਹਨ।


The book provides examples of payloads and shells.

ਕਿਤਾਬ ਪੇਲੋਡ ਅਤੇ ਸ਼ੈੱਲਾਂ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।


Reporting is a crucial part of the penetration testing process.

ਰਿਪੋਰਟਿੰਗ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਪ੍ਰਕਿਰਿਆ ਦਾ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਹਿੱਸਾ ਹੈ।


The book helps you build your own penetration testing toolbox.

ਕਿਤਾਬ ਤੁਹਾਨੂੰ ਆਪਣਾ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਟੂਲਬਾਕਸ ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।


This book is for testers looking for modern tools.

ਇਹ ਕਿਤਾਬ ਉਹਨਾਂ ਟੈਸਟਰਾਂ ਲਈ ਹੈ ਜੋ ਆਧੁਨਿਕ ਟੂਲਸ ਦੀ ਤਲਾਸ਼ ਕਰ ਰਹੇ ਹਨ।


The preface welcomes you to the world of web application testing.

ਮੁਖਬੰਧ ਤੁਹਾਨੂੰ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਟੈਸਟਿੰਗ ਦੀ ਦੁਨੀਆ ਵਿੱਚ ਸਵਾਗਤ ਕਰਦਾ ਹੈ।


The book covers a wide range of penetration testing topics.

ਕਿਤਾਬ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਦੇ ਵਿਸ਼ਾਲ ਵਿਸ਼ਿਆਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।


The authors provide practical examples and scripts.

ਲੇਖਕ ਵਿਹਾਰਕ ਉਦਾਹਰਣਾਂ ਅਤੇ ਸਕ੍ਰਿਪਟ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ।


Scapy is a powerful tool that can be used to manipulate network packets.

ਸਕੈਪੀ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟੂਲ ਹੈ ਜਿਸਦੀ ਵਰਤੋਂ ਨੈੱਟਵਰਕ ਪੈਕੇਟਾਂ ਨੂੰ ਹੇਰਾਫੇਰੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


This recipe aims to show you how you can achieve this with Scapy.

ਇਸ ਵਿਅੰਜਨ ਦਾ ਉਦੇਸ਼ ਤੁਹਾਨੂੰ ਦਿਖਾਉਣਾ ਹੈ ਕਿ ਤੁਸੀਂ ਸਕੈਪੀ ਨਾਲ ਇਹ ਕਿਵੇਂ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ।


Scapy can be installed on the majority of Linux systems with the following command: $ sudo apt-get install python-scapy

ਸਕੈਪੀ ਨੂੰ ਹੇਠ ਦਿੱਤੇ ਕਮਾਂਡ ਨਾਲ ਜ਼ਿਆਦਾਤਰ ਲੀਨਕਸ ਸਿਸਟਮਾਂ 'ਤੇ ਸਥਾਪਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ: $ sudo apt-get install python-scapy


The script will set up suppression of warning messages from Scapy when it runs.

ਸਕ੍ਰਿਪਟ ਚੱਲਣ 'ਤੇ ਸਕੈਪੀ ਤੋਂ ਚੇਤਾਵਨੀ ਸੰਦੇਸ਼ਾਂ ਨੂੰ ਦਬਾਉਣ ਲਈ ਸੈੱਟਅੱਪ ਕਰੇਗੀ।


We then compile a regular expression that will check that the IP addresses are valid.

ਫਿਰ ਅਸੀਂ ਇੱਕ ਨਿਯਮਤ ਸਮੀਕਰਨ ਤਿਆਰ ਕਰਦੇ ਹਾਂ ਜੋ ਜਾਂਚ ਕਰੇਗਾ ਕਿ IP ਐਡਰੈੱਸ ਵੈਧ ਹਨ।


Once the IP addresses have been validated, then further checks are carried out.

ਇੱਕ ਵਾਰ IP ਐਡਰੈੱਸਾਂ ਦੀ ਪੁਸ਼ਟੀ ਹੋ ਜਾਣ 'ਤੇ, ਅਗਲੇਰੀ ਜਾਂਚ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The script will then print out the list.

ਫਿਰ ਸਕ੍ਰਿਪਟ ਸੂਚੀ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੇਗੀ।


Scapy is a powerful tool that can be used to determine which TCP ports are open on a target.

ਸਕੈਪੀ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟੂਲ ਹੈ ਜਿਸਦੀ ਵਰਤੋਂ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ ਕਿ ਕਿਸੇ ਟੀਚੇ 'ਤੇ ਕਿਹੜੇ TCP ਪੋਰਟ ਖੁੱਲ੍ਹੇ ਹਨ।


This command will send the packet we have created and receive the first packet that is sent back.

ਇਹ ਕਮਾਂਡ ਉਹ ਪੈਕੇਟ ਭੇਜੇਗੀ ਜੋ ਅਸੀਂ ਬਣਾਇਆ ਹੈ ਅਤੇ ਪਹਿਲਾ ਪੈਕੇਟ ਪ੍ਰਾਪਤ ਕਰੇਗੀ ਜੋ ਵਾਪਸ ਭੇਜਿਆ ਗਿਆ ਹੈ।


The script then checks whether there is a response that contains TCP data.

ਫਿਰ ਸਕ੍ਰਿਪਟ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਕੋਈ ਜਵਾਬ ਹੈ ਜਿਸ ਵਿੱਚ TCP ਡਾਟਾ ਹੈ।


ਹਰ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਵੱਖਰੀ ਹੋ ਸਕਦੀ ਹੈ।


So, before you go ahead and create your username checking tool, you will want to perform a reconnaissance.

ਇਸ ਲਈ, ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਤੁਸੀਂ ਅੱਗੇ ਵਧੋ ਅਤੇ ਆਪਣਾ ਉਪਭੋਗਤਾ ਨਾਮ ਜਾਂਚ ਟੂਲ ਬਣਾਓ, ਤੁਸੀਂ ਇੱਕ ਪਛਾਣ ਕਰਨੀ ਚਾਹੋਗੇ।


After the number of arguments have been validated and the arguments have been assigned to variables, we use the urllib module.

ਦਲੀਲਾਂ ਦੀ ਗਿਣਤੀ ਦੀ ਪੁਸ਼ਟੀ ਹੋ ਜਾਣ ਅਤੇ ਦਲੀਲਾਂ ਨੂੰ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਸੌਂਪਣ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ urllib ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ।


This recipe can be adapted to other situations.

ਇਸ ਵਿਅੰਜਨ ਨੂੰ ਹੋਰ ਸਥਿਤੀਆਂ ਵਿੱਚ ਅਨੁਕੂਲਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।


Maybe you've got a big haul from open source intelligence gathering and you want to see which of those users use an application you are targeting.

ਸ਼ਾਇਦ ਤੁਹਾਨੂੰ ਓਪਨ ਸੋਰਸ ਇੰਟੈਲੀਜੈਂਸ ਇਕੱਠਾ ਕਰਨ ਤੋਂ ਇੱਕ ਵੱਡਾ ਹਿੱਸਾ ਮਿਲਿਆ ਹੈ ਅਤੇ ਤੁਸੀਂ ਇਹ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਉਨ੍ਹਾਂ ਉਪਭੋਗਤਾਵਾਂ ਵਿੱਚੋਂ ਕਿਹੜੇ ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ ਜਿਸਨੂੰ ਤੁਸੀਂ ਨਿਸ਼ਾਨਾ ਬਣਾ ਰਹੇ ਹੋ।


This script introduces a couple more concepts than basic username checking.

ਇਹ ਸਕ੍ਰਿਪਟ ਬੁਨਿਆਦੀ ਉਪਭੋਗਤਾ ਨਾਮ ਜਾਂਚ ਨਾਲੋਂ ਕੁਝ ਹੋਰ ਸੰਕਲਪ ਪੇਸ਼ ਕਰਦੀ ਹੈ।


This opens the file containing our list of usernames and loads it into our userlist variable.

ਇਹ ਸਾਡੇ ਉਪਭੋਗਤਾ ਨਾਵਾਂ ਦੀ ਸੂਚੀ ਵਾਲੀ ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਸਾਡੇ ਉਪਭੋਗਤਾ ਸੂਚੀ ਵੇਰੀਏਬਲ ਵਿੱਚ ਲੋਡ ਕਰਦਾ ਹੈ।


When enumerating a web application, you will want to determine what pages exist.

ਇੱਕ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਗਿਣਤੀ ਕਰਦੇ ਸਮੇਂ, ਤੁਸੀਂ ਇਹ ਨਿਰਧਾਰਤ ਕਰਨਾ ਚਾਹੋਗੇ ਕਿ ਕਿਹੜੇ ਪੰਨੇ ਮੌਜੂਦ ਹਨ।


This recipe will instead take a list of commonly found filenames of web pages and check whether they exist.

ਇਸ ਦੀ ਬਜਾਏ, ਇਹ ਵਿਅੰਜਨ ਆਮ ਤੌਰ 'ਤੇ ਮਿਲੀਆਂ ਵੈੱਬ ਪੇਜਾਂ ਦੀਆਂ ਫਾਈਲਨਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਲਵੇਗਾ ਅਤੇ ਜਾਂਚ ਕਰੇਗਾ ਕਿ ਕੀ ਉਹ ਮੌਜੂਦ ਹਨ।


Brute forcing may not be the most elegant of solutions, but it will automate what could be a potentially mundane task.

ਬਰੂਟ ਫੋਰਸਿੰਗ ਸਭ ਤੋਂ ਵਧੀਆ ਹੱਲ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਇਹ ਉਸਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰੇਗਾ ਜੋ ਸੰਭਾਵੀ ਤੌਰ 'ਤੇ ਇੱਕ ਆਮ ਕੰਮ ਹੋ ਸਕਦਾ ਹੈ।


To use Shodan's DNS resolver, we simply have to make a GET request to the Shodan DNS Resolver URL and pass it the domain (or domains) we are interested in.

Shodan ਦੇ DNS ਰੈਜ਼ੋਲਵਰ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਸਾਨੂੰ ਸਿਰਫ਼ Shodan DNS ਰੈਜ਼ੋਲਵਰ URL 'ਤੇ ਇੱਕ GET ਬੇਨਤੀ ਕਰਨੀ ਪਵੇਗੀ ਅਤੇ ਉਹ ਡੋਮੇਨ (ਜਾਂ ਡੋਮੇਨ) ਪਾਸ ਕਰਨਾ ਪਵੇਗਾ ਜਿਸ ਵਿੱਚ ਸਾਡੀ ਦਿਲਚਸਪੀ ਹੈ।


The returned JSON data will be a dictionary of domains to IP addresses; as we only have one target in our case, we can simply pull out the IP address of our host using the target string as the key for the dictionary.

ਵਾਪਸ ਕੀਤਾ ਗਿਆ JSON ਡਾਟਾ IP ਐਡਰੈੱਸਾਂ ਲਈ ਡੋਮੇਨਾਂ ਦੀ ਇੱਕ ਡਿਕਸ਼ਨਰੀ ਹੋਵੇਗੀ; ਜਿਵੇਂ ਕਿ ਸਾਡੇ ਕੇਸ ਵਿੱਚ ਸਾਡੇ ਕੋਲ ਸਿਰਫ਼ ਇੱਕ ਟਾਰਗੈਟ ਹੈ, ਅਸੀਂ ਡਿਕਸ਼ਨਰੀ ਲਈ ਕੁੰਜੀ ਦੇ ਤੌਰ 'ਤੇ ਟਾਰਗੈਟ ਸਟ੍ਰਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣੇ ਹੋਸਟ ਦਾ IP ਐਡਰੈੱਸ ਆਸਾਨੀ ਨਾਲ ਕੱਢ ਸਕਦੇ ਹਾਂ।


If you were searching on multiple domains, you would probably want to iterate over this list to obtain all the IP addresses.

ਜੇਕਰ ਤੁਸੀਂ ਕਈ ਡੋਮੇਨਾਂ 'ਤੇ ਖੋਜ ਕਰ ਰਹੇ ਸੀ, ਤਾਂ ਤੁਸੀਂ ਸ਼ਾਇਦ ਸਾਰੇ IP ਐਡਰੈੱਸ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਇਸ ਸੂਚੀ 'ਤੇ ਦੁਹਰਾਉਣਾ ਚਾਹੋਗੇ।


Now, we have the host's IP address, we can use the Shodan libraries host function to obtain information on our host.

ਹੁਣ, ਸਾਡੇ ਕੋਲ ਹੋਸਟ ਦਾ IP ਐਡਰੈੱਸ ਹੈ, ਅਸੀਂ ਆਪਣੇ ਹੋਸਟ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸ਼ੋਡਨ ਲਾਇਬ੍ਰੇਰੀਆਂ ਦੇ ਹੋਸਟ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।


The returned JSON data contains a wealth of information about the host, though in our case we will just pull out the IP address, organization, and if possible the operating system that is running.

ਵਾਪਸ ਕੀਤਾ ਗਿਆ JSON ਡਾਟਾ ਹੋਸਟ ਬਾਰੇ ਬਹੁਤ ਸਾਰੀ ਜਾਣਕਾਰੀ ਰੱਖਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਸਾਡੇ ਕੇਸ ਵਿੱਚ ਅਸੀਂ ਸਿਰਫ਼ IP ਐਡਰੈੱਸ, ਸੰਗਠਨ, ਅਤੇ ਜੇਕਰ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਚੱਲ ਰਹੇ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਨੂੰ ਬਾਹਰ ਕੱਢਾਂਗੇ।


Then we will loop over all of the ports that were found to be open and their respective banners.

ਫਿਰ ਅਸੀਂ ਉਹਨਾਂ ਸਾਰੇ ਪੋਰਟਾਂ 'ਤੇ ਲੂਪ ਕਰਾਂਗੇ ਜੋ ਖੁੱਲ੍ਹੇ ਪਾਏ ਗਏ ਸਨ ਅਤੇ ਉਹਨਾਂ ਦੇ ਸੰਬੰਧਿਤ ਬੈਨਰ।


The returned data may also contain potential Common Vulnerabilities and Exposures (CVE) numbers for vulnerabilities that Shodan thinks the server may be susceptible to.

ਵਾਪਸ ਕੀਤੇ ਗਏ ਡਾਟਾ ਵਿੱਚ ਸੰਭਾਵੀ ਕੋਮਨ ਵਲਨਰੇਬਿਲਿਟੀਜ਼ ਐਂਡ ਐਕਸਪੋਜ਼ਰਜ਼ (CVE) ਨੰਬਰ ਵੀ ਹੋ ਸਕਦੇ ਹਨ ਜੋ ਸ਼ੋਡਨ ਸੋਚਦਾ ਹੈ ਕਿ ਸਰਵਰ ਸੰਵੇਦਨਸ਼ੀਲ ਹੋ ਸਕਦਾ ਹੈ।


This could be really beneficial to us, so we will iterate over the list of these (if there are any) and use another function from the Shodan library to get information on the exploit.

ਇਹ ਸਾਡੇ ਲਈ ਅਸਲ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੋ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਅਸੀਂ ਇਹਨਾਂ ਦੀ ਸੂਚੀ (ਜੇਕਰ ਕੋਈ ਹੈ) 'ਤੇ ਦੁਹਰਾਵਾਂਗੇ ਅਤੇ ਸ਼ੋਡਨ ਲਾਇਬ੍ਰੇਰੀ ਤੋਂ ਇੱਕ ਹੋਰ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਐਕਸਪਲੋਇਟ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕਰਾਂਗੇ।


That's it for our script. Try running it against your own server.

ਇਹ ਸਾਡੇ ਸਕ੍ਰਿਪਟ ਲਈ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਸਰਵਰ ਦੇ ਵਿਰੁੱਧ ਚਲਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।


There's more... We've only really scratched the surface of the Shodan Python library with our script.

ਹੋਰ ਵੀ ਹੈ... ਅਸੀਂ ਆਪਣੀ ਸਕ੍ਰਿਪਟ ਨਾਲ ਸ਼ੋਡਨ ਪਾਈਥਨ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਸਿਰਫ਼ ਸਤ੍ਹਾ ਨੂੰ ਹੀ ਖੁਰਚਿਆ ਹੈ।


Social media is a great way to gather information on a target company or person.

ਸੋਸ਼ਲ ਮੀਡੀਆ ਕਿਸੇ ਟਾਰਗੈਟ ਕੰਪਨੀ ਜਾਂ ਵਿਅਕਤੀ ਬਾਰੇ ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕਰਨ ਦਾ ਇੱਕ ਵਧੀਆ ਤਰੀਕਾ ਹੈ।


Here, we will be showing you how to script a Google+ API search to find contact information for a company within the Google+ social sites.

ਇੱਥੇ, ਅਸੀਂ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗੇ ਕਿ ਗੂਗਲ+ ਸੋਸ਼ਲ ਸਾਈਟਾਂ ਦੇ ਅੰਦਰ ਇੱਕ ਕੰਪਨੀ ਲਈ ਸੰਪਰਕ ਜਾਣਕਾਰੀ ਲੱਭਣ ਲਈ ਗੂਗਲ+ API ਖੋਜ ਨੂੰ ਕਿਵੇਂ ਸਕ੍ਰਿਪਟ ਕਰਨਾ ਹੈ।


Some Google APIs require authorization to access them, but if you have a Google account, getting the API key is easy.

ਕੁਝ ਗੂਗਲ API ਨੂੰ ਉਹਨਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਅਧਿਕਾਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਪਰ ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਗੂਗਲ ਖਾਤਾ ਹੈ, ਤਾਂ API ਕੁੰਜੀ ਪ੍ਰਾਪਤ ਕਰਨਾ ਆਸਾਨ ਹੈ।


Just go to https://console.developers.google.com and create a new project.

ਬੱਸ https://console.developers.google.com 'ਤੇ ਜਾਓ ਅਤੇ ਇੱਕ ਨਵਾਂ ਪ੍ਰੋਜੈਕਟ ਬਣਾਓ।


Click on API & auth | Credentials. Click on Create new key and Server key.

API & auth | Credentials 'ਤੇ ਕਲਿੱਕ ਕਰੋ। Create new key ਅਤੇ Server key 'ਤੇ ਕਲਿੱਕ ਕਰੋ।


Your API key will be displayed and ready to copy and paste into the following recipe.

ਤੁਹਾਡੀ API ਕੁੰਜੀ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੀ ਜਾਵੇਗੀ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤੀ ਵਿਧੀ ਵਿੱਚ ਕਾਪੀ ਅਤੇ ਪੇਸਟ ਕਰਨ ਲਈ ਤਿਆਰ ਹੋਵੇਗੀ।


Here's a simple script to query the Google+ API:

ਗੂਗਲ+ API ਨੂੰ ਪੁੱਛਗਿੱਛ ਕਰਨ ਲਈ ਇੱਥੇ ਇੱਕ ਸਧਾਰਨ ਸਕ੍ਰਿਪਟ ਹੈ:


The preceding code makes a request to the Google+ search API (authenticated with your API key) and searches for accounts matching the target; packtpub.com.

ਪਿਛਲਾ ਕੋਡ ਗੂਗਲ+ ਖੋਜ API (ਤੁਹਾਡੀ API ਕੁੰਜੀ ਨਾਲ ਪ੍ਰਮਾਣਿਤ) ਨੂੰ ਇੱਕ ਬੇਨਤੀ ਕਰਦਾ ਹੈ ਅਤੇ ਟਾਰਗੈਟ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਖਾਤਿਆਂ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ; packtpub.com।


Similarly to the preceding Shodan script, we set up our static strings including the API key and target:

ਪਿਛਲੀ ਸ਼ੋਡਨ ਸਕ੍ਰਿਪਟ ਦੇ ਸਮਾਨ, ਅਸੀਂ ਆਪਣੀਆਂ ਸਥਿਰ ਸਤਰਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਹਨ ਜਿਸ ਵਿੱਚ API ਕੁੰਜੀ ਅਤੇ ਟਾਰਗੈਟ ਸ਼ਾਮਲ ਹਨ:


If the response from urlopen() is 404 (HTTP not found error), then the script will error and exit.

ਜੇਕਰ urlopen() ਤੋਂ ਜਵਾਬ 404 (HTTP ਨਹੀਂ ਮਿਲਿਆ ਗਲਤੀ) ਹੈ, ਤਾਂ ਸਕ੍ਰਿਪਟ ਗਲਤੀ ਦੇਵੇਗੀ ਅਤੇ ਬੰਦ ਹੋ ਜਾਵੇਗੀ।


The script will then store all instances of e-mail addresses in the emails variable.

ਫਿਰ ਸਕ੍ਰਿਪਟ ਈਮੇਲ ਪਤਿਆਂ ਦੀਆਂ ਸਾਰੀਆਂ ਉਦਾਹਰਣਾਂ ਨੂੰ ਈਮੇਲ ਵੇਰੀਏਬਲ ਵਿੱਚ ਸਟੋਰ ਕਰੇਗੀ।


It will then loop through the emails variable and write each item in the list to the emails.txt file.

ਇਹ ਫਿਰ ਈਮੇਲ ਵੇਰੀਏਬਲ ਵਿੱਚੋਂ ਲੰਘੇਗਾ ਅਤੇ ਸੂਚੀ ਵਿੱਚ ਹਰੇਕ ਆਈਟਮ ਨੂੰ emails.txt ਫਾਈਲ ਵਿੱਚ ਲਿਖੇਗਾ।


The regular expression matching used in this recipe matches two common types of format used to represent e-mail addresses on the Internet.

ਇਸ ਵਿਅੰਜਨ ਵਿੱਚ ਵਰਤੀ ਗਈ ਨਿਯਮਤ ਸਮੀਕਰਨ ਮੈਚਿੰਗ ਇੰਟਰਨੈਟ 'ਤੇ ਈਮੇਲ ਪਤਿਆਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਦੋ ਆਮ ਕਿਸਮਾਂ ਦੇ ਫਾਰਮੈਟ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ।


During the development phase of web applications, developers will comment their code.

ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਵਿਕਾਸ ਪੜਾਅ ਦੌਰਾਨ, ਡਿਵੈਲਪਰ ਆਪਣੇ ਕੋਡ 'ਤੇ ਟਿੱਪਣੀ ਕਰਨਗੇ।


This is very useful during this phase, as it helps with understanding the code and will serve as useful reminders for various reasons.

ਇਹ ਇਸ ਪੜਾਅ ਦੌਰਾਨ ਬਹੁਤ ਉਪਯੋਗੀ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਕੋਡ ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਅਤੇ ਵੱਖ-ਵੱਖ ਕਾਰਨਾਂ ਕਰਕੇ ਉਪਯੋਗੀ ਰੀਮਾਈਂਡਰ ਵਜੋਂ ਕੰਮ ਕਰੇਗਾ।


However, when the web application is ready to be deployed in a production environment, it is best practice to remove all these comments as they may prove useful to an attacker.

ਹਾਲਾਂਕਿ, ਜਦੋਂ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਇੱਕ ਉਤਪਾਦਨ ਵਾਤਾਵਰਣ ਵਿੱਚ ਤਾਇਨਾਤ ਕਰਨ ਲਈ ਤਿਆਰ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਇਹ ਸਭ ਟਿੱਪਣੀਆਂ ਨੂੰ ਹਟਾਉਣ ਦਾ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸ ਹੈ ਕਿਉਂਕਿ ਉਹ ਇੱਕ ਹਮਲਾਵਰ ਲਈ ਲਾਭਦਾਇਕ ਸਾਬਤ ਹੋ ਸਕਦੀਆਂ ਹਨ।


This recipe will use a combination of Requests and BeautifulSoup in order to search a URL for comments.

ਇਹ ਵਿਅੰਜਨ ਟਿੱਪਣੀਆਂ ਲਈ ਇੱਕ URL ਦੀ ਖੋਜ ਕਰਨ ਲਈ ਬੇਨਤੀਆਂ ਅਤੇ ਬਿਊਟੀਫੁਲਸੂਪ ਦਾ ਸੁਮੇਲ ਵਰਤੇਗਾ।


The technique of following links from a page and analysing those URLs is known as spidering.

ਇੱਕ ਪੰਨੇ ਤੋਂ ਲਿੰਕਾਂ ਦੀ ਪਾਲਣਾ ਕਰਨ ਅਤੇ ਉਹਨਾਂ URL ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਦੀ ਤਕਨੀਕ ਨੂੰ ਸਪਾਈਡਰਿੰਗ ਵਜੋਂ ਜਾਣਿਆ ਜਾਂਦਾ ਹੈ।


The following script will scrape a URL for comments and links in the source code.

ਹੇਠਾਂ ਦਿੱਤੀ ਸਕ੍ਰਿਪਟ ਸਰੋਤ ਕੋਡ ਵਿੱਚ ਟਿੱਪਣੀਆਂ ਅਤੇ ਲਿੰਕਾਂ ਲਈ ਇੱਕ URL ਨੂੰ ਸਕ੍ਰੈਪ ਕਰੇਗੀ।


It will then also perform limited spidering and search linked URLs for comments as well.

ਇਹ ਫਿਰ ਸੀਮਤ ਸਪਾਈਡਰਿੰਗ ਵੀ ਕਰੇਗਾ ਅਤੇ ਟਿੱਪਣੀਆਂ ਲਈ ਲਿੰਕ ਕੀਤੇ URL ਦੀ ਖੋਜ ਕਰੇਗਾ।


After the initial import of the necessary modules and setting up of variables, the script first gets the source code of the target URL.

ਲੋੜੀਂਦੇ ਮੋਡੀਊਲ ਦੇ ਸ਼ੁਰੂਆਤੀ ਆਯਾਤ ਅਤੇ ਵੇਰੀਏਬਲਾਂ ਦੀ ਸਥਾਪਨਾ ਤੋਂ ਬਾਅਦ, ਸਕ੍ਰਿਪਟ ਪਹਿਲਾਂ ਟੀਚਾ URL ਦਾ ਸਰੋਤ ਕੋਡ ਪ੍ਰਾਪਤ ਕਰਦੀ ਹੈ।


You may have noticed that for Beautifulsoup, we have the following line: from bs4 import BeautifulSoup

ਤੁਸੀਂ ਸ਼ਾਇਦ ਦੇਖਿਆ ਹੋਵੇਗਾ ਕਿ ਬਿਊਟੀਫੁਲਸੂਪ ਲਈ, ਸਾਡੇ ਕੋਲ ਹੇਠ ਲਿਖੀ ਲਾਈਨ ਹੈ: bs4 ਤੋਂ ਆਯਾਤ ਬਿਊਟੀਫੁਲਸੂਪ


It then searches for all instances of HTML comments and prints them out.

ਇਹ ਫਿਰ HTML ਟਿੱਪਣੀਆਂ ਦੀਆਂ ਸਾਰੀਆਂ ਉਦਾਹਰਣਾਂ ਦੀ ਖੋਜ ਕਰਦਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਦਾ ਹੈ।


The script will then use Beautifulsoup in order to scrape the source code for any instances of absolute (starting with http) and relative (starting with /) links.

ਸਕ੍ਰਿਪਟ ਫਿਰ ਬਿਊਟੀਫੁਲਸੂਪ ਦੀ ਵਰਤੋਂ ਸਰੋਤ ਕੋਡ ਨੂੰ ਕਿਸੇ ਵੀ ਪੂਰਨ (http ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ) ਅਤੇ ਰਿਲੇਟਿਵ ( / ਨਾਲ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ) ਲਿੰਕਾਂ ਲਈ ਸਕ੍ਰੈਪ ਕਰਨ ਲਈ ਕਰੇਗੀ।


Once the script has collated a list of URLs linked to from the page, it will then search each page for HTML comments.

ਇੱਕ ਵਾਰ ਜਦੋਂ ਸਕ੍ਰਿਪਟ ਨੇ ਪੰਨੇ ਤੋਂ ਲਿੰਕ ਕੀਤੇ URL ਦੀ ਇੱਕ ਸੂਚੀ ਤਿਆਰ ਕਰ ਲਈ ਹੈ, ਤਾਂ ਇਹ ਫਿਰ HTML ਟਿੱਪਣੀਆਂ ਲਈ ਹਰੇਕ ਪੰਨੇ ਦੀ ਖੋਜ ਕਰੇਗੀ।


This recipe shows a basic example of comment scraping and spidering.

ਇਹ ਵਿਅੰਜਨ ਟਿੱਪਣੀ ਸਕ੍ਰੈਪਿੰਗ ਅਤੇ ਸਪਾਈਡਰਿੰਗ ਦੀ ਇੱਕ ਬੁਨਿਆਦੀ ਉਦਾਹਰਣ ਦਿਖਾਉਂਦਾ ਹੈ।


It is possible to add more intelligence to this recipe to suit your needs.

ਤੁਹਾਡੀਆਂ ਜ਼ਰੂਰਤਾਂ ਦੇ ਅਨੁਕੂਲ ਹੋਣ ਲਈ ਇਸ ਵਿਅੰਜਨ ਵਿੱਚ ਹੋਰ ਬੁੱਧੀ ਸ਼ਾਮਲ ਕਰਨਾ ਸੰਭਵ ਹੈ।


For instance, you may want to account for relative links that use start with . or .. to denote the current and parent directories.

ਉਦਾਹਰਨ ਲਈ, ਤੁਸੀਂ ਰਿਲੇਟਿਵ ਲਿੰਕਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣਾ ਚਾਹ ਸਕਦੇ ਹੋ ਜੋ ਮੌਜੂਦਾ ਅਤੇ ਮਾਤਾ-ਪਿਤਾ ਡਾਇਰੈਕਟਰੀਆਂ ਨੂੰ ਦਰਸਾਉਣ ਲਈ . ਜਾਂ .. ਨਾਲ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ।


This chapter focuses on identifying traditional web app vulnerabilities from the Top 10 Open Web Application Security Project (OWASP).

ਇਸ ਅਧਿਆਇ ਵਿੱਚ ਟਾਪ 10 ਓਪਨ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਸੁਰੱਖਿਆ ਪ੍ਰੋਜੈਕਟ (OWASP) ਤੋਂ ਰਵਾਇਤੀ ਵੈੱਬ ਐਪ ਕਮਜ਼ੋਰੀਆਂ ਦੀ ਪਛਾਣ 'ਤੇ ਧਿਆਨ ਦਿੱਤਾ ਗਿਆ ਹੈ।


The script starts by importing the 'requests' library.

ਇਹ ਸਕ੍ਰਿਪਟ 'requests' ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਇੰਪੋਰਟ ਕਰਕੇ ਸ਼ੁਰੂ ਹੁੰਦੀ ਹੈ।


Cookies are used to maintain user sessions.

ਕੂਕੀਜ਼ ਦੀ ਵਰਤੋਂ ਉਪਭੋਗਤਾ ਸੈਸ਼ਨਾਂ ਨੂੰ ਬਰਕਰਾਰ ਰੱਖਣ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


SQL injection is a common web security vulnerability.

SQL ਇੰਜੈਕਸ਼ਨ ਇੱਕ ਆਮ ਵੈੱਬ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰੀ ਹੈ।


The script attempts to exploit a SQL injection flaw.

ਸਕ੍ਰਿਪਟ ਇੱਕ SQL ਇੰਜੈਕਸ਼ਨ ਨੁਕਸ ਦਾ ਸ਼ੋਸ਼ਣ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ।


The payload includes a sleep command to extract data.

ਪੇਲੋਡ ਵਿੱਚ ਡਾਟਾ ਕੱਢਣ ਲਈ ਇੱਕ ਸਲੀਪ ਕਮਾਂਡ ਸ਼ਾਮਲ ਹੈ।


The script uses time-based techniques to retrieve the password.

ਸਕ੍ਰਿਪਟ ਪਾਸਵਰਡ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਸਮੇਂ-ਅਧਾਰਿਤ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The server's response time is crucial for the attack.

ਹਮਲੇ ਲਈ ਸਰਵਰ ਦਾ ਜਵਾਬ ਦੇਣ ਦਾ ਸਮਾਂ ਮਹੱਤਵਪੂਰਨ ਹੈ।


The script iterates through each character of the password.

ਸਕ੍ਰਿਪਟ ਪਾਸਵਰਡ ਦੇ ਹਰੇਕ ਅੱਖਰ ਵਿੱਚੋਂ ਲੰਘਦੀ ਹੈ।


The 'ord' function converts characters to their ASCII values.

'ord' ਫੰਕਸ਼ਨ ਅੱਖਰਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ASCII ਮੁੱਲਾਂ ਵਿੱਚ ਬਦਲਦਾ ਹੈ।


The script uses the 'substr' function to extract parts of the password.

ਸਕ੍ਰਿਪਟ ਪਾਸਵਰਡ ਦੇ ਹਿੱਸੇ ਕੱਢਣ ਲਈ 'substr' ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


ਮੁੜ ਪ੍ਰਾਪਤ ਕੀਤੀ ਸਤਰ ਪਾਸਵਰਡ ਹੈ।


The script can be adapted to different scenarios.

ਸਕ੍ਰਿਪਟ ਨੂੰ ਵੱਖ-ਵੱਖ ਦ੍ਰਿਸ਼ਾਂ ਦੇ ਅਨੁਕੂਲ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।


Web app challenge websites often have time-limited challenges.

ਵੈੱਬ ਐਪ ਚੈਲੇਂਜ ਵੈੱਬਸਾਈਟਾਂ ਵਿੱਚ ਅਕਸਰ ਸਮੇਂ-ਸੀਮਤ ਚੁਣੌਤੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।


The script accounts for smaller time differences.

ਸਕ੍ਰਿਪਟ ਛੋਟੇ ਸਮੇਂ ਦੇ ਅੰਤਰਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੀ ਹੈ।


Encoding payloads can help bypass web application firewalls.

ਪੇਲੋਡ ਨੂੰ ਏਨਕੋਡ ਕਰਨਾ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਫਾਇਰਵਾਲਾਂ ਨੂੰ ਬਾਈਪਾਸ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ।


Filtering is a method to prevent SQL injection.

ਫਿਲਟਰਿੰਗ SQL ਇੰਜੈਕਸ਼ਨ ਨੂੰ ਰੋਕਣ ਦਾ ਇੱਕ ਤਰੀਕਾ ਹੈ।


The script replaces specific characters to evade detection.

ਸਕ੍ਰਿਪਟ ਖੋਜ ਤੋਂ ਬਚਣ ਲਈ ਖਾਸ ਅੱਖਰਾਂ ਨੂੰ ਬਦਲਦੀ ਹੈ।


Spaces and special characters are often targeted.

ਸਪੇਸ ਅਤੇ ਵਿਸ਼ੇਸ਼ ਅੱਖਰਾਂ ਨੂੰ ਅਕਸਰ ਨਿਸ਼ਾਨਾ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ।


ਸਕ੍ਰਿਪਟ ਇੱਕ ਇਕੱਠਾ ਨਤੀਜਾ ਬਣਾਉਂਦੀ ਹੈ।


This technique can be used as an internal function.

ਇਸ ਤਕਨੀਕ ਦੀ ਵਰਤੋਂ ਇੱਕ ਅੰਦਰੂਨੀ ਫੰਕਸ਼ਨ ਵਜੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


The script checks for the X-FRAME-OPTIONS header.

ਇਹ ਸਕ੍ਰਿਪਟ X-FRAME-OPTIONS ਹੈਡਰ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


Clickjacking is a technique used to trick users.

ਕਲਿਕਜੈਕਿੰਗ ਇੱਕ ਤਕਨੀਕ ਹੈ ਜੋ ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਧੋਖਾ ਦੇਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।


This attack can trick victims into transferring funds.

ਇਹ ਹਮਲਾ ਪੀੜਤਾਂ ਨੂੰ ਫੰਡ ਟ੍ਰਾਂਸਫਰ ਕਰਨ ਲਈ ਧੋਖਾ ਦੇ ਸਕਦਾ ਹੈ।


Websites can prevent clickjacking by setting an X-FRAME-OPTIONS header.

ਵੈੱਬਸਾਈਟਾਂ X-FRAME-OPTIONS ਹੈਡਰ ਸੈੱਟ ਕਰਕੇ ਕਲਿਕਜੈਕਿੰਗ ਨੂੰ ਰੋਕ ਸਕਦੀਆਂ ਹਨ।


This recipe will show you how to detect both defenses.

ਇਹ ਵਿਅੰਜਨ ਤੁਹਾਨੂੰ ਦਿਖਾਏਗਾ ਕਿ ਦੋਵਾਂ ਬਚਾਅ ਪੱਖਾਂ ਦਾ ਪਤਾ ਕਿਵੇਂ ਲਗਾਇਆ ਜਾਵੇ।


The script creates a local html clickjack.html file.

ਸਕ੍ਰਿਪਟ ਇੱਕ ਸਥਾਨਕ html clickjack.html ਫਾਈਲ ਬਣਾਉਂਦੀ ਹੈ।


This HTML code creates an iframe with the source set to the target website.

ਇਹ HTML ਕੋਡ ਇੱਕ iframe ਬਣਾਉਂਦਾ ਹੈ ਜਿਸਦਾ ਸਰੋਤ ਟੀਚਾ ਵੈੱਬਸਾਈਟ 'ਤੇ ਸੈੱਟ ਹੁੰਦਾ ਹੈ।


ਘੋਸਟ ਇੱਕ WebKit ਰੈਂਡਰਿੰਗ ਇੰਜਣ ਹੈ।


We then open the log file and check for the X-FRAME-OPTIONS error.

ਫਿਰ ਅਸੀਂ ਲੌਗ ਫਾਈਲ ਖੋਲ੍ਹਦੇ ਹਾਂ ਅਤੇ X-FRAME-OPTIONS ਗਲਤੀ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹਾਂ।


If the script outputs Frame busting not detected, the site is vulnerable.

ਜੇਕਰ ਸਕ੍ਰਿਪਟ ਫਰੇਮ ਬਸਟਿੰਗ ਦਾ ਆਉਟਪੁੱਟ ਦਿੰਦੀ ਹੈ, ਤਾਂ ਸਾਈਟ ਕਮਜ਼ੋਰ ਹੈ।


Some websites display different content based on the browser.

ਕੁਝ ਵੈੱਬਸਾਈਟਾਂ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਆਧਾਰ 'ਤੇ ਵੱਖਰੀ ਸਮੱਗਰੀ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦੀਆਂ ਹਨ।


We will show you how to spoof your user agent.

ਅਸੀਂ ਤੁਹਾਨੂੰ ਦਿਖਾਵਾਂਗੇ ਕਿ ਤੁਹਾਡੇ ਉਪਭੋਗਤਾ ਏਜੰਟ ਨੂੰ ਕਿਵੇਂ ਸਪੂਫ ਕਰਨਾ ਹੈ।


We first set up an array of user agents.

ਸਭ ਤੋਂ ਪਹਿਲਾਂ, ਅਸੀਂ ਉਪਭੋਗਤਾ ਏਜੰਟਾਂ ਦੀ ਇੱਕ ਐਰੇ ਸਥਾਪਤ ਕਰਦੇ ਹਾਂ।


The next part loops through each of the user agents.

ਅਗਲਾ ਭਾਗ ਹਰੇਕ ਉਪਭੋਗਤਾ ਏਜੰਟ ਰਾਹੀਂ ਲੂਪ ਕਰਦਾ ਹੈ।


This gives a wide range of browsers and examples.

ਇਹ ਬ੍ਰਾਊਜ਼ਰਾਂ ਅਤੇ ਉਦਾਹਰਣਾਂ ਦੀ ਇੱਕ ਵਿਸ਼ਾਲ ਸ਼੍ਰੇਣੀ ਦਿੰਦਾ ਹੈ।


We hashed the response text so that it keeps the resulting array small.

ਅਸੀਂ ਜਵਾਬੀ ਟੈਕਸਟ ਨੂੰ ਹੈਸ਼ ਕੀਤਾ ਤਾਂ ਜੋ ਇਹ ਨਤੀਜੇ ਵਾਲੀ ਐਰੇ ਨੂੰ ਛੋਟਾ ਰੱਖੇ।


This script will print out the user agent friendly name.

ਇਹ ਸਕ੍ਰਿਪਟ ਉਪਭੋਗਤਾ ਏਜੰਟ ਦੋਸਤਾਨਾ ਨਾਮ ਪ੍ਰਿੰਟ ਕਰੇਗੀ।


Cookies provide a way to store persistent data.

ਕੂਕੀਜ਼ ਸਥਾਈ ਡੇਟਾ ਸਟੋਰ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਪ੍ਰਦਾਨ ਕਰਦੀਆਂ ਹਨ।


This recipe will look at ways to audit the cookies.

ਇਹ ਵਿਅੰਜਨ ਕੂਕੀਜ਼ ਦਾ ਆਡਿਟ ਕਰਨ ਦੇ ਤਰੀਕਿਆਂ 'ਤੇ ਨਜ਼ਰ ਮਾਰੇਗਾ।


We enumerate each cookie sent from the web server.

ਅਸੀਂ ਵੈੱਬ ਸਰਵਰ ਤੋਂ ਭੇਜੀ ਗਈ ਹਰੇਕ ਕੂਕੀ ਦੀ ਗਿਣਤੀ ਕਰਦੇ ਹਾਂ।


The script uses the hashlib module for generating MD5 hashes.

ਇਹ ਸਕ੍ਰਿਪਟ MD5 ਹੈਸ਼ ਤਿਆਰ ਕਰਨ ਲਈ hashlib ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


Enter the string you would like to hash.

ਉਹ ਸਤਰ ਦਰਜ ਕਰੋ ਜਿਸਦਾ ਤੁਸੀਂ ਹੈਸ਼ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ।


SHA hashes are also extremely commonly used, alongside MD5 hashes.

SHA ਹੈਸ਼ ਵੀ MD5 ਹੈਸ਼ ਦੇ ਨਾਲ-ਨਾਲ ਬਹੁਤ ਆਮ ਤੌਰ 'ਤੇ ਵਰਤੇ ਜਾਂਦੇ ਹਨ।


We can utilize the features within the module.

ਅਸੀਂ ਮੋਡੀਊਲ ਦੇ ਅੰਦਰਲੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।


Generating SHA hashes within Python is also extremely simple.

ਪਾਈਥਨ ਵਿੱਚ SHA ਹੈਸ਼ ਤਿਆਰ ਕਰਨਾ ਵੀ ਬਹੁਤ ਸੌਖਾ ਹੈ।


We need to replace * with either 1, 128, or 256.

ਸਾਨੂੰ * ਨੂੰ 1, 128, ਜਾਂ 256 ਨਾਲ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ।


Implementing SHA and MD5 hashes together.

SHA ਅਤੇ MD5 ਹੈਸ਼ ਨੂੰ ਇਕੱਠੇ ਲਾਗੂ ਕਰਨਾ।


Please enter the string you would like to hash.

ਕਿਰਪਾ ਕਰਕੇ ਉਹ ਸਤਰ ਦਰਜ ਕਰੋ ਜਿਸਦਾ ਤੁਸੀਂ ਹੈਸ਼ ਬਣਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ।


The script will output three versions of SHA hashes and also an MD5 hash.

ਸਕ੍ਰਿਪਟ SHA ਹੈਸ਼ ਦੇ ਤਿੰਨ ਸੰਸਕਰਣ ਅਤੇ ਇੱਕ MD5 ਹੈਸ਼ ਵੀ ਆਉਟਪੁੱਟ ਕਰੇਗੀ।


We need to receive the user input that we wish to turn into an encoded string.

ਸਾਨੂੰ ਉਪਭੋਗਤਾ ਇਨਪੁਟ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਜਿਸਨੂੰ ਅਸੀਂ ਇੱਕ ਏਨਕੋਡ ਕੀਤੀ ਸਤਰ ਵਿੱਚ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹਾਂ।


Here is an example of the script in action.

ਇੱਥੇ ਸਕ੍ਰਿਪਟ ਦੀ ਕਾਰਵਾਈ ਦੀ ਇੱਕ ਉਦਾਹਰਣ ਹੈ।


Implementing SHA in a real-world scenario.

ਅਸਲ-ਸੰਸਾਰ ਦੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ SHA ਨੂੰ ਲਾਗੂ ਕਰਨਾ।


We will be implementing an SHA256 encoding scheme.

ਅਸੀਂ ਇੱਕ SHA256 ਏਨਕੋਡਿੰਗ ਸਕੀਮ ਨੂੰ ਲਾਗੂ ਕਰਾਂਗੇ।


ਆਓ ਪੁਸ਼ਟੀ ਕਰੀਏ ਕਿ ਇਹ ਇੱਛਾ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦਾ ਹੈ।


ਕਿਰਪਾ ਕਰਕੇ ਇੱਕ ਪਾਸਵਰਡ ਦਰਜ ਕਰੋ।


ਡੇਟਾਬੇਸ ਵਿੱਚ ਸਟੋਰ ਕਰਨ ਲਈ ਸਤਰ ਇਹ ਹੈ:


ਇੱਕ Bcrypt ਹੈਸ਼ ਤਿਆਰ ਕਰਨਾ।


Bcrypt hashes were designed to be slow when encrypting and decrypting hashes.

Bcrypt ਹੈਸ਼ ਨੂੰ ਹੈਸ਼ ਨੂੰ ਏਨਕ੍ਰਿਪਟ ਅਤੇ ਡੀਕ੍ਰਿਪਟ ਕਰਦੇ ਸਮੇਂ ਹੌਲੀ ਹੋਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਸੀ।


ਅਸੀਂ bcrypt ਨਾਲ ਪਾਸਵਰਡ ਨੂੰ ਏਨਕ੍ਰਿਪਟ ਕਰਾਂਗੇ।


ਇੱਕ MD5 ਹੈਸ਼ ਨੂੰ ਕ੍ਰੈਕ ਕਰਨਾ।


The script uses regular expressions to identify different hash types.

ਇਹ ਸਕ੍ਰਿਪਟ ਵੱਖ-ਵੱਖ ਹੈਸ਼ ਕਿਸਮਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


Please enter the hash you wish to check.

ਕਿਰਪਾ ਕਰਕੇ ਉਹ ਹੈਸ਼ ਦਰਜ ਕਰੋ ਜਿਸਨੂੰ ਤੁਸੀਂ ਜਾਂਚਣਾ ਚਾਹੁੰਦੇ ਹੋ।


The script checks for empty comments to trigger self-deletion.

ਸਕ੍ਰਿਪਟ ਸਵੈ-ਮਿਟਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਖਾਲੀ ਟਿੱਪਣੀਆਂ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


This hash matches the format of SHA-256.

ਇਹ ਹੈਸ਼ SHA-256 ਦੇ ਫਾਰਮੈਟ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।


The script extracts data through HTTP requests.

ਸਕ੍ਰਿਪਟ HTTP ਬੇਨਤੀਆਂ ਰਾਹੀਂ ਡਾਟਾ ਕੱਢਦੀ ਹੈ।


We will create a script that masks command and control activities as HTTP traffic.

ਅਸੀਂ ਇੱਕ ਸਕ੍ਰਿਪਟ ਬਣਾਵਾਂਗੇ ਜੋ ਕਮਾਂਡ ਅਤੇ ਕੰਟਰੋਲ ਗਤੀਵਿਧੀਆਂ ਨੂੰ HTTP ਟ੍ਰੈਫਿਕ ਵਜੋਂ ਮਾਸਕ ਕਰਦੀ ਹੈ।


The script uses the re module for regular expressions.

ਸਕ੍ਰਿਪਟ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਲਈ re ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script is a quick and dirty file-theft tool.

ਸਕ੍ਰਿਪਟ ਇੱਕ ਤੇਜ਼ ਅਤੇ ਗੰਦਾ ਫਾਈਲ-ਚੋਰੀ ਕਰਨ ਵਾਲਾ ਟੂਲ ਹੈ।


The script connects to an FTP server and downloads files.

ਸਕ੍ਰਿਪਟ ਇੱਕ FTP ਸਰਵਰ ਨਾਲ ਜੁੜਦੀ ਹੈ ਅਤੇ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਦੀ ਹੈ।


The script uses a while loop to continuously check for commands.

ਸਕ੍ਰਿਪਟ ਕਮਾਂਡਾਂ ਦੀ ਲਗਾਤਾਰ ਜਾਂਚ ਕਰਨ ਲਈ ਇੱਕ while ਲੂਪ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script uses base64 encoding for the output.

ਸਕ੍ਰਿਪਟ ਆਉਟਪੁੱਟ ਲਈ base64 ਏਨਕੋਡਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script checks for an empty comment to trigger self-deletion.

ਸਕ੍ਰਿਪਟ ਸਵੈ-ਮਿਟਾਉਣ ਨੂੰ ਚਾਲੂ ਕਰਨ ਲਈ ਇੱਕ ਖਾਲੀ ਟਿੱਪਣੀ ਦੀ ਜਾਂਚ ਕਰਦੀ ਹੈ।


The script uses the subprocess module to execute commands.

ਸਕ੍ਰਿਪਟ ਕਮਾਂਡਾਂ ਨੂੰ ਚਲਾਉਣ ਲਈ subprocess ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script uses a try-except block to handle errors.

ਸਕ੍ਰਿਪਟ ਗਲਤੀਆਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ ਇੱਕ try-except ਬਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script sends the output in a POST request.

ਸਕ੍ਰਿਪਟ ਇੱਕ POST ਬੇਨਤੀ ਵਿੱਚ ਆਉਟਪੁੱਟ ਭੇਜਦੀ ਹੈ।


The script uses a time.sleep() function to pause execution.

ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਇੱਕ time.sleep() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script is designed to be a hands-off C2 script.

ਸਕ੍ਰਿਪਟ ਨੂੰ ਇੱਕ ਹੱਥ-ਮੁਕਤ C2 ਸਕ੍ਰਿਪਟ ਬਣਨ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ।


The script uses the ftplib module to connect to the FTP server.

ਸਕ੍ਰਿਪਟ FTP ਸਰਵਰ ਨਾਲ ਜੁੜਨ ਲਈ ftplib ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ।


The script iterates through directories and downloads files.

ਸਕ੍ਰਿਪਟ ਡਾਇਰੈਕਟਰੀਆਂ ਵਿੱਚ ਦੁਹਰਾਉਂਦੀ ਹੈ ਅਤੇ ਫਾਈਲਾਂ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰਦੀ ਹੈ।


The script checks if the directory listing has changed to detect the root.

ਸਕ੍ਰਿਪਟ ਰੂਟ ਦਾ ਪਤਾ ਲਗਾਉਣ ਲਈ ਜਾਂਚ ਕਰਦੀ ਹੈ ਕਿ ਕੀ ਡਾਇਰੈਕਟਰੀ ਸੂਚੀਬੱਧ ਬਦਲ ਗਈ ਹੈ।


The script will show a basic server and client setup.

ਇਹ ਸਕ੍ਰਿਪਟ ਇੱਕ ਬੁਨਿਆਦੀ ਸਰਵਰ ਅਤੇ ਕਲਾਇੰਟ ਸੈੱਟਅੱਪ ਦਿਖਾਏਗੀ।


We will have one script that will run and act as a server, and another script that will run and act as the client.

ਸਾਡੇ ਕੋਲ ਇੱਕ ਸਕ੍ਰਿਪਟ ਹੋਵੇਗੀ ਜੋ ਚੱਲੇਗੀ ਅਤੇ ਇੱਕ ਸਰਵਰ ਵਜੋਂ ਕੰਮ ਕਰੇਗੀ, ਅਤੇ ਇੱਕ ਹੋਰ ਸਕ੍ਰਿਪਟ ਜੋ ਚੱਲੇਗੀ ਅਤੇ ਕਲਾਇੰਟ ਵਜੋਂ ਕੰਮ ਕਰੇਗੀ।


The server waits for the client to announce it's ready.

ਸਰਵਰ ਕਲਾਇੰਟ ਦੇ ਤਿਆਰ ਹੋਣ ਦਾ ਐਲਾਨ ਕਰਨ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।


The server shows that the client is waiting and prompts user for command to send over to client.

ਸਰਵਰ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਕਲਾਇੰਟ ਇੰਤਜ਼ਾਰ ਕਰ ਰਿਹਾ ਹੈ ਅਤੇ ਉਪਭੋਗਤਾ ਨੂੰ ਕਲਾਇੰਟ ਨੂੰ ਭੇਜਣ ਲਈ ਕਮਾਂਡ ਲਈ ਪੁੱਛਦਾ ਹੈ।


ਸਰਵਰ ਇੱਕ ਕਮਾਂਡ ਭੇਜਦਾ ਹੈ।


The client receives command and runs it.

ਕਲਾਇੰਟ ਕਮਾਂਡ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।


The client sends output from command back to the server.

ਕਲਾਇੰਟ ਕਮਾਂਡ ਤੋਂ ਆਉਟਪੁੱਟ ਸਰਵਰ ਨੂੰ ਵਾਪਸ ਭੇਜਦਾ ਹੈ।


The server receives output from the client and displays it to the user.

ਸਰਵਰ ਕਲਾਇੰਟ ਤੋਂ ਆਉਟਪੁੱਟ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਉਪਭੋਗਤਾ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਦਾ ਹੈ।


With these steps in mind, let's take a look first at the server script.

ਇਹਨਾਂ ਕਦਮਾਂ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦੇ ਹੋਏ, ਆਓ ਪਹਿਲਾਂ ਸਰਵਰ ਸਕ੍ਰਿਪਟ 'ਤੇ ਇੱਕ ਨਜ਼ਰ ਮਾਰੀਏ।


ਸਰਵਰ ਜਵਾਬ ਦੀ ਉਡੀਕ ਕਰਦਾ ਹੈ।


The next line of code adds the value of 0x00 to the end of our string.

ਕੋਡ ਦੀ ਅਗਲੀ ਲਾਈਨ ਸਾਡੇ ਸਤਰ ਦੇ ਅੰਤ ਵਿੱਚ 0x00 ਦਾ ਮੁੱਲ ਜੋੜਦੀ ਹੈ।


This will be important in the extraction function as it will let us know that we've reached the end of the hidden text.

ਇਹ ਐਕਸਟਰੈਕਸ਼ਨ ਫੰਕਸ਼ਨ ਵਿੱਚ ਮਹੱਤਵਪੂਰਨ ਹੋਵੇਗਾ ਕਿਉਂਕਿ ਇਹ ਸਾਨੂੰ ਦੱਸੇਗਾ ਕਿ ਅਸੀਂ ਲੁਕਵੇਂ ਟੈਕਸਟ ਦੇ ਅੰਤ 'ਤੇ ਪਹੁੰਚ ਗਏ ਹਾਂ।


We use the chr() function to convert 0x00 to a string-friendly representation.

ਅਸੀਂ 0x00 ਨੂੰ ਸਤਰ-ਅਨੁਕੂਲ ਪ੍ਰਸਤੁਤੀ ਵਿੱਚ ਬਦਲਣ ਲਈ chr() ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ।


For our carrier image, we change the mode to RGBA to make sure we have the four values per pixel.

ਸਾਡੀ ਕੈਰੀਅਰ ਚਿੱਤਰ ਲਈ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮੋਡ ਨੂੰ RGBA ਵਿੱਚ ਬਦਲਦੇ ਹਾਂ ਕਿ ਸਾਡੇ ਕੋਲ ਪ੍ਰਤੀ ਪਿਕਸਲ ਚਾਰ ਮੁੱਲ ਹਨ।


We then create a few arrays: pixel_list is all the pixel data from our carrier image and new_array will hold all the new pixel values for our combined carrier and message image.

ਫਿਰ ਅਸੀਂ ਕੁਝ ਐਰੇ ਬਣਾਉਂਦੇ ਹਾਂ: ਪਿਕਸਲ_ਲਿਸਟ ਸਾਡੇ ਕੈਰੀਅਰ ਚਿੱਤਰ ਦਾ ਸਾਰਾ ਪਿਕਸਲ ਡਾਟਾ ਹੈ ਅਤੇ ਨਿਊ_ਐਰੇ ਸਾਡੇ ਸੰਯੁਕਤ ਕੈਰੀਅਰ ਅਤੇ ਸੰਦੇਸ਼ ਚਿੱਤਰ ਲਈ ਸਾਰੇ ਨਵੇਂ ਪਿਕਸਲ ਮੁੱਲਾਂ ਨੂੰ ਰੱਖੇਗਾ।


We start by converting the character to an int.

ਅਸੀਂ ਅੱਖਰ ਨੂੰ ਇੱਕ ਇੰਟ ਵਿੱਚ ਬਦਲ ਕੇ ਸ਼ੁਰੂਆਤ ਕਰਦੇ ਹਾਂ।


We then convert that int to a binary string, we zfill the string to ensure that it's 8 character long.

ਫਿਰ ਅਸੀਂ ਉਸ ਇੰਟ ਨੂੰ ਇੱਕ ਬਾਈਨਰੀ ਸਤਰ ਵਿੱਚ ਬਦਲਦੇ ਹਾਂ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਸਤਰ ਨੂੰ ਜ਼ਿਫਿਲ ਕਰਦੇ ਹਾਂ ਕਿ ਇਹ 8 ਅੱਖਰ ਲੰਬਾ ਹੈ।


ਇਹ ਬਾਅਦ ਵਿੱਚ ਇਸਨੂੰ ਆਸਾਨ ਬਣਾ ਦੇਵੇਗਾ।


When you use bin(), it will prefix the string with 0 bits, so the [2:] just strips that out.

ਜਦੋਂ ਤੁਸੀਂ bin() ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਸਤਰ ਨੂੰ 0 ਬਿਟ ਨਾਲ ਪ੍ਰੀਫਿਕਸ ਕਰੇਗਾ, ਇਸ ਲਈ [2:] ਸਿਰਫ਼ ਉਸਨੂੰ ਹਟਾ ਦਿੰਦਾ ਹੈ।


We are using a bitmask to set the LSB-based on whether the binary value we pass in is either a 1 or 0.

ਅਸੀਂ ਬਿਟਮਾਸਕ ਦੀ ਵਰਤੋਂ LSB ਨੂੰ ਸੈੱਟ ਕਰਨ ਲਈ ਕਰ ਰਹੇ ਹਾਂ ਇਸ ਆਧਾਰ 'ਤੇ ਕਿ ਅਸੀਂ ਜੋ ਬਾਈਨਰੀ ਮੁੱਲ ਪਾਸ ਕਰਦੇ ਹਾਂ ਉਹ 1 ਹੈ ਜਾਂ 0।


Web App Firewalls (WAFs) are used to protect web applications.

ਵੈੱਬ ਐਪ ਫਾਇਰਵਾਲ (WAFs) ਦੀ ਵਰਤੋਂ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਰੱਖਿਆ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


SQL Injection is a common web security vulnerability.

SQL ਇੰਜੈਕਸ਼ਨ ਇੱਕ ਆਮ ਵੈੱਬ ਸੁਰੱਖਿਆ ਕਮਜ਼ੋਰੀ ਹੈ।


Penetration testing helps identify vulnerabilities.

ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਕਮਜ਼ੋਰੀਆਂ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।


The book covers various penetration testing techniques.

ਇਹ ਕਿਤਾਬ ਵੱਖ-ਵੱਖ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਤਕਨੀਕਾਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।


Understanding HTTP headers is crucial for web security.

ਵੈੱਬ ਸੁਰੱਖਿਆ ਲਈ HTTP ਹੈਡਰਾਂ ਨੂੰ ਸਮਝਣਾ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੈ।


Cross-site scripting (XSS) is a serious threat.

ਕਰਾਸ-ਸਾਈਟ ਸਕ੍ਰਿਪਟਿੰਗ (XSS) ਇੱਕ ਗੰਭੀਰ ਖ਼ਤਰਾ ਹੈ।


The book explains how to create a simple Netcat shell.

ਕਿਤਾਬ ਵਿੱਚ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਇੱਕ ਸਧਾਰਨ ਨੈੱਟਕੈਟ ਸ਼ੈੱਲ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ।


Regular expressions (Regex) are used for pattern matching.

ਨਿਯਮਤ ਸਮੀਕਰਨ (Regex) ਦੀ ਵਰਤੋਂ ਪੈਟਰਨ ਮੈਚਿੰਗ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ।


The Shodan API can be used to gather information.

ਸ਼ੋਡਾਨ API ਦੀ ਵਰਤੋਂ ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


Brute forcing passwords is a common attack method.

ਪਾਸਵਰਡਾਂ ਨੂੰ ਬ੍ਰੂਟ ਫੋਰਸ ਕਰਨਾ ਇੱਕ ਆਮ ਹਮਲਾ ਵਿਧੀ ਹੈ।


Steganography can be used to hide messages.

ਸਟੈਗਨੋਗ੍ਰਾਫੀ ਦੀ ਵਰਤੋਂ ਸੁਨੇਹਿਆਂ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।


The book discusses techniques for web penetration testing.

ਕਿਤਾਬ ਵਿੱਚ ਵੈੱਬ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਲਈ ਤਕਨੀਕਾਂ ਬਾਰੇ ਚਰਚਾ ਕੀਤੀ ਗਈ ਹੈ।


Understanding how to exploit vulnerabilities is key.

ਕਮਜ਼ੋਰੀਆਂ ਦਾ ਸ਼ੋਸ਼ਣ ਕਿਵੇਂ ਕਰਨਾ ਹੈ, ਇਹ ਸਮਝਣਾ ਮਹੱਤਵਪੂਰਨ ਹੈ।


The book provides examples of Python scripting for security.

ਕਿਤਾਬ ਸੁਰੱਖਿਆ ਲਈ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟਿੰਗ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।


The use of the QtWebKit library is explained.

QtWebKit ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਦੀ ਵਿਆਖਿਆ ਕੀਤੀ ਗਈ ਹੈ।


The book covers topics like session fixation.

ਕਿਤਾਬ ਸੈਸ਼ਨ ਫਿਕਸੇਸ਼ਨ ਵਰਗੇ ਵਿਸ਼ਿਆਂ ਨੂੰ ਕਵਰ ਕਰਦੀ ਹੈ।


Advanced techniques for web application security are discussed.

ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨ ਸੁਰੱਖਿਆ ਲਈ ਉੱਨਤ ਤਕਨੀਕਾਂ 'ਤੇ ਚਰਚਾ ਕੀਤੀ ਗਈ ਹੈ।


The book explores various methods for information gathering.

ਕਿਤਾਬ ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕਰਨ ਦੇ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਦੀ ਪੜਚੋਲ ਕਰਦੀ ਹੈ।


The importance of secure coding practices is emphasized.

ਸੁਰੱਖਿਅਤ ਕੋਡਿੰਗ ਅਭਿਆਸਾਂ ਦੀ ਮਹੱਤਤਾ 'ਤੇ ਜ਼ੋਰ ਦਿੱਤਾ ਗਿਆ ਹੈ।


The book provides a comprehensive guide to web penetration testing.

ਕਿਤਾਬ ਵੈੱਬ ਪੈਨਟ੍ਰੇਸ਼ਨ ਟੈਸਟਿੰਗ ਲਈ ਇੱਕ ਵਿਆਪਕ ਗਾਈਡ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।


The script connects to Twitter and reads tweets.

ਇਹ ਸਕ੍ਰਿਪਟ ਟਵਿੱਟਰ ਨਾਲ ਜੁੜਦੀ ਹੈ ਅਤੇ ਟਵੀਟ ਪੜ੍ਹਦੀ ਹੈ।


We will create a script that connects to Twitter.

ਅਸੀਂ ਇੱਕ ਸਕ੍ਰਿਪਟ ਬਣਾਵਾਂਗੇ ਜੋ ਟਵਿੱਟਰ ਨਾਲ ਜੁੜਦੀ ਹੈ।


ਡੀਕੋਡਿੰਗ ਸਕ੍ਰਿਪਟ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੈ:


ਅਸੀਂ ਆਮ ਵਾਂਗ ਆਪਣੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ ਨੂੰ ਇੰਪੋਰਟ ਕਰਦੇ ਹਾਂ।


We assign them to variables and set up our connection to the Twitter API.

ਅਸੀਂ ਉਹਨਾਂ ਨੂੰ ਵੇਰੀਏਬਲਸ ਨੂੰ ਸੌਂਪਦੇ ਹਾਂ ਅਤੇ ਟਵਿੱਟਰ API ਨਾਲ ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਸਥਾਪਤ ਕਰਦੇ ਹਾਂ।


ਅਸੀਂ ਇੱਕ ਅਨੰਤ ਲੂਪ ਸਥਾਪਤ ਕਰਦੇ ਹਾਂ।


We call the user timeline of the account that has been set up.

ਅਸੀਂ ਉਸ ਖਾਤੇ ਦੀ ਉਪਭੋਗਤਾ ਟਾਈਮਲਾਈਨ ਨੂੰ ਕਾਲ ਕਰਦੇ ਹਾਂ ਜੋ ਸਥਾਪਤ ਕੀਤੀ ਗਈ ਹੈ।


We need to encode it as UTF-8 as there are often characters that the normal encoding won't be able to handle.

ਸਾਨੂੰ ਇਸਨੂੰ UTF-8 ਦੇ ਤੌਰ 'ਤੇ ਏਨਕੋਡ ਕਰਨ ਦੀ ਲੋੜ ਹੈ ਕਿਉਂਕਿ ਅਕਸਰ ਅਜਿਹੇ ਅੱਖਰ ਹੁੰਦੇ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਆਮ ਏਨਕੋਡਿੰਗ ਸੰਭਾਲਣ ਦੇ ਯੋਗ ਨਹੀਂ ਹੋਵੇਗੀ।


We then take the last text of the most recent tweet.

ਫਿਰ ਅਸੀਂ ਸਭ ਤੋਂ ਤਾਜ਼ਾ ਟਵੀਟ ਦਾ ਆਖਰੀ ਟੈਕਸਟ ਲੈਂਦੇ ਹਾਂ।


We encode it as hex to avoid there being things like spaces matching with spaces.

ਅਸੀਂ ਇਸਨੂੰ ਹੈਕਸ ਦੇ ਤੌਰ 'ਤੇ ਏਨਕੋਡ ਕਰਦੇ ਹਾਂ ਤਾਂ ਜੋ ਸਪੇਸ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਸਪੇਸ ਨਾਲ ਮੇਲ ਨਾ ਖਾਂਦੀਆਂ ਹੋਣ।


We carry out the action by using the subprocess function.

ਅਸੀਂ ਸਬਪ੍ਰੋਸੈਸ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕਾਰਵਾਈ ਕਰਦੇ ਹਾਂ।


We encrypt the output with preset up XORing encryption and encode it as base64.

ਅਸੀਂ ਪ੍ਰੀਸੈਟ ਅਪ XORing ਏਨਕ੍ਰਿਪਸ਼ਨ ਨਾਲ ਆਉਟਪੁੱਟ ਨੂੰ ਏਨਕ੍ਰਿਪਟ ਕਰਦੇ ਹਾਂ ਅਤੇ ਇਸਨੂੰ base64 ਦੇ ਤੌਰ 'ਤੇ ਏਨਕੋਡ ਕਰਦੇ ਹਾਂ।


We split the encrypted and encoded response into 140 character chunks.

ਅਸੀਂ ਏਨਕ੍ਰਿਪਟਡ ਅਤੇ ਏਨਕੋਡਡ ਜਵਾਬ ਨੂੰ 140 ਅੱਖਰਾਂ ਦੇ ਟੁਕੜਿਆਂ ਵਿੱਚ ਵੰਡਦੇ ਹਾਂ।


For each chunk, we create a Twitter status.

ਹਰੇਕ ਟੁਕੜੇ ਲਈ, ਅਸੀਂ ਇੱਕ ਟਵਿੱਟਰ ਸਥਿਤੀ ਬਣਾਉਂਦੇ ਹਾਂ।


Because each step requires two tweets, I've left an hour gap between each command check.

ਕਿਉਂਕਿ ਹਰੇਕ ਕਦਮ ਲਈ ਦੋ ਟਵੀਟ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਇਸ ਲਈ ਮੈਂ ਹਰੇਕ ਕਮਾਂਡ ਜਾਂਚ ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਘੰਟੇ ਦਾ ਅੰਤਰ ਛੱਡ ਦਿੱਤਾ ਹੈ।


For the decoding, import the RC4 library, set your key tweet as the key, and put your reassembled base64 as the response.

ਡੀਕੋਡਿੰਗ ਲਈ, RC4 ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਇੰਪੋਰਟ ਕਰੋ, ਆਪਣੇ ਕੀ ਟਵੀਟ ਨੂੰ ਕੁੰਜੀ ਵਜੋਂ ਸੈੱਟ ਕਰੋ, ਅਤੇ ਆਪਣੇ ਦੁਬਾਰਾ ਜੋੜੇ ਗਏ base64 ਨੂੰ ਜਵਾਬ ਵਜੋਂ ਰੱਖੋ।


Set up a new RC4 code with the key, decode the data from base64, and decrypt it with the key.

ਕੁੰਜੀ ਨਾਲ ਇੱਕ ਨਵਾਂ RC4 ਕੋਡ ਸਥਾਪਤ ਕਰੋ, base64 ਤੋਂ ਡੇਟਾ ਨੂੰ ਡੀਕੋਡ ਕਰੋ, ਅਤੇ ਇਸਨੂੰ ਕੁੰਜੀ ਨਾਲ ਡੀਕ੍ਰਿਪਟ ਕਰੋ।


ਇੱਕ ਸਧਾਰਨ Netcat ਸ਼ੈੱਲ ਬਣਾਉਣਾ


The general idea of this shell is to create a connection between the compromised machine and your own machine.

ਇਸ ਸ਼ੈੱਲ ਦਾ ਆਮ ਵਿਚਾਰ ਸਮਝੌਤਾ ਕੀਤੇ ਗਏ ਮਸ਼ੀਨ ਅਤੇ ਤੁਹਾਡੀ ਆਪਣੀ ਮਸ਼ੀਨ ਵਿਚਕਾਰ ਇੱਕ ਕਨੈਕਸ਼ਨ ਬਣਾਉਣਾ ਹੈ।


The beauty of this Python script is the undetectable nature of it.

ਇਸ ਪਾਈਥਨ ਸਕ੍ਰਿਪਟ ਦੀ ਖੂਬਸੂਰਤੀ ਇਸਦੀ ਅਣਪਛਾਤੀ ਪ੍ਰਕਿਰਤੀ ਹੈ।