<?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>DEV Community: Jadi</title>
    <description>The latest articles on DEV Community by Jadi (@jadijadi).</description>
    <link>https://dev.to/jadijadi</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%2Fuser%2Fprofile_image%2F245177%2Fd4280581-a631-4ac9-b911-9e007b9c3ff0.jpeg</url>
      <title>DEV Community: Jadi</title>
      <link>https://dev.to/jadijadi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jadijadi"/>
    <language>en</language>
    <item>
      <title>Hacking Hidden Paths with ffuf - Web Fuzzing Made Simple</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Wed, 20 Aug 2025 22:03:04 +0000</pubDate>
      <link>https://dev.to/jadijadi/hacking-hidden-paths-with-ffuf-web-fuzzing-made-simple-4ne</link>
      <guid>https://dev.to/jadijadi/hacking-hidden-paths-with-ffuf-web-fuzzing-made-simple-4ne</guid>
      <description>&lt;p&gt;A couple of weeks ago, someone emailed me some personal files and videos I have forgotten I have left somewhere on my VPS. &lt;/p&gt;

&lt;p&gt;In this video I'll show a common tool for finding these files: ffuf&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/sdfCxvp6rCs"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>web</category>
      <category>fuzz</category>
      <category>security</category>
      <category>pentest</category>
    </item>
    <item>
      <title>Unveiling the xz Utils Backdoor which deliberately opens our SSH connections for RCEs</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Sun, 31 Mar 2024 13:26:18 +0000</pubDate>
      <link>https://dev.to/jadijadi/unveiling-the-xz-utils-backdoor-a-rca-is-affecting-our-ssh-connections-4l0j</link>
      <guid>https://dev.to/jadijadi/unveiling-the-xz-utils-backdoor-a-rca-is-affecting-our-ssh-connections-4l0j</guid>
      <description>&lt;p&gt;Recently a bad actor, implemented a backdoor is one of the most widely used libraries in GNU/Linux distors; the xz compression suit. This backdoor lets the attacker to execute system() calls with no authentication; an RCE attack. &lt;/p&gt;

&lt;p&gt;It seems this bad actor; called "JiaT75" was planning for this during last 2 years and succeeded to do so after acquiring trust and becoming a trusted developer of the project. &lt;/p&gt;

&lt;p&gt;In this video I will explain the attack and the background knowledge needed to understand it. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/gyOz9s4ydho"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>backdoor</category>
      <category>security</category>
      <category>linux</category>
      <category>news</category>
    </item>
    <item>
      <title>How systemd v255 will bring the dreaded Windows BSOD to GNU/Linux: A deep dive into the source code</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Sat, 09 Dec 2023 17:03:54 +0000</pubDate>
      <link>https://dev.to/jadijadi/how-systemd-v255-will-bring-the-dreaded-windows-bsod-to-gnulinux-a-deep-dive-into-the-source-code-4g1g</link>
      <guid>https://dev.to/jadijadi/how-systemd-v255-will-bring-the-dreaded-windows-bsod-to-gnulinux-a-deep-dive-into-the-source-code-4g1g</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/tK8VpcMS9eY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>linux</category>
      <category>programming</category>
      <category>c</category>
      <category>kernel</category>
    </item>
    <item>
      <title>A technical look at the news of "Python moves to remove the GIL". Some coding &amp; some source checking</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Mon, 28 Aug 2023 14:12:15 +0000</pubDate>
      <link>https://dev.to/jadijadi/a-technical-look-at-the-news-of-python-moves-to-remove-the-gil-some-coding-some-source-checking-3nkn</link>
      <guid>https://dev.to/jadijadi/a-technical-look-at-the-news-of-python-moves-to-remove-the-gil-some-coding-some-source-checking-3nkn</guid>
      <description>&lt;p&gt;Python's usage exploded even when it was merely new; lacking lots of features. One main reason for this was its great integration with C libraries. Combine this with the possibility of using Threads and you will get your holy grail: and easy language with threads which can use C libraries! BUT! But python needed a Global Interpreter Lock to be able to run C Libraries in its threads.&lt;/p&gt;

&lt;p&gt;In this video we will have a closer look at this concept. I will describe the necessity of GIL  in Cpython and will show you why and how it is slowing down multi-threaded CPU hungry program. We will check the source code and will understand why both parties (defending and protesting the GIL removal) are claiming that the "You are slowing down Python!"&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/6254JnkLg1c"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>python</category>
      <category>video</category>
      <category>technical</category>
      <category>news</category>
    </item>
    <item>
      <title>Sign your git commits, no-nonsense ! without “intro”, “why” &amp; …</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Wed, 16 Aug 2023 07:37:34 +0000</pubDate>
      <link>https://dev.to/jadijadi/sign-your-git-commits-no-nonsense-without-intro-why--39hm</link>
      <guid>https://dev.to/jadijadi/sign-your-git-commits-no-nonsense-without-intro-why--39hm</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7pEJRZYI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jj7kzuc1g3oq7rajmms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7pEJRZYI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jj7kzuc1g3oq7rajmms.png" alt="Image description" width="800" height="129"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’m not going into “why you should sign” and blah blah to make this post longer. Most people are here because they needed to sign their commits and they searched (mainly my self future!).&lt;/p&gt;

&lt;p&gt;First, check your keys. Signing with SSH keys is easier because most people already do have their ssh keys &amp;amp; are using them to login into the github. So check the &lt;code&gt;~/.ssh/&lt;/code&gt; directory for a pair of id_rsa and id_rsa.pub (or any other format of the key you have).&lt;/p&gt;

&lt;p&gt;Second, tell the git command to use them for signing. In my case it would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git config --global gpg.format ssh
git config --global user.signingkey /home/jadi/.ssh/id_rsa.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Obviously your directory will be different and you may want to omit the --global to set the configuration only for the project you are in.&lt;/p&gt;

&lt;p&gt;Next, sign your commits with the &lt;code&gt;-S&lt;/code&gt; switch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add this_file that_file
git commit -S -m 'This is a signed commit'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;you already have a commit and you need to sign it? use the &lt;code&gt;commit --amend -S&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Last step is adding this signing key to your github account. Go to the &lt;a href="https://github.com/settings/keys"&gt;https://github.com/settings/keys&lt;/a&gt;, add the public key (so /home/jadi/.ssh/id_rsa.pub) in my case and save it as a signing key. This will lead to a verified badge near your signed commits.&lt;/p&gt;

&lt;p&gt;Done.&lt;/p&gt;

</description>
      <category>git</category>
      <category>tutorial</category>
      <category>signing</category>
      <category>github</category>
    </item>
    <item>
      <title>How to use SOAP/WSDL APIs using SoapUI &amp; Python Zeep</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Sat, 01 Jul 2023 13:13:18 +0000</pubDate>
      <link>https://dev.to/jadijadi/how-to-use-soapwsdl-apis-using-soapui-python-zeep-4b3j</link>
      <guid>https://dev.to/jadijadi/how-to-use-soapwsdl-apis-using-soapui-python-zeep-4b3j</guid>
      <description>&lt;p&gt;In our Agile / Mobile / "moderm" and fron/back life, we see lots of REST APIs. Using REST is straight forward if you know your HTTP, GET, Post, ... &lt;br&gt;
But on the enterprise level, you will start seein SOAP and WSDL based APIs which look more confusing. Why? Because they are designed machines in mind and sometimes WSDL file is seen as the &lt;em&gt;documentation&lt;/em&gt; and you wont get a human readable doc!&lt;br&gt;
No worries... WSDL has whatever you need to work with your APIs. In this Post I'll show you how! Using SoapUI and the Zeep python library.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/nFzwf-r2fJU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>python</category>
      <category>soap</category>
      <category>wsdl</category>
      <category>api</category>
    </item>
    <item>
      <title>Managing users and groups in GNU/Linux</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Wed, 07 Jun 2023 15:27:32 +0000</pubDate>
      <link>https://dev.to/jadijadi/managing-users-and-groups-in-gnulinux-49n7</link>
      <guid>https://dev.to/jadijadi/managing-users-and-groups-in-gnulinux-49n7</guid>
      <description>&lt;p&gt;We already know about the users and groups. In this module we will see how you can create new users / groups, how to modify them and how to delete them from the system. We will also have a look at some files who are playing important roles here and will cover a few less-seen commands like &lt;code&gt;chage&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Part 1:&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/xXQ1pw2sAQs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Part2: &lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/V69h5V5wdTw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>lpic</category>
      <category>linux</category>
      <category>learning</category>
      <category>devops</category>
    </item>
    <item>
      <title>Accessing and browsing blockchain using web3py python library</title>
      <dc:creator>Jadi</dc:creator>
      <pubDate>Sat, 03 Jun 2023 06:00:50 +0000</pubDate>
      <link>https://dev.to/jadijadi/accessing-and-browsing-blockchain-using-web3py-python-library-2kcc</link>
      <guid>https://dev.to/jadijadi/accessing-and-browsing-blockchain-using-web3py-python-library-2kcc</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uOZu6_94G64?start=405"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This is from HeroCTF v5, Blockchain challenge called Arrest. It reads:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In the dim-lit confines of his room, a lone figure hunched over a computer screen. Known online as 'Swissy', he was one of the most notorious ransomware operators worldwide.&lt;br&gt;
From his small apartment in a forgotten corner of Moscow, Swissy had wreaked havoc on the digital world, crippling entire industries with his ransomware attacks.&lt;br&gt;
But tonight, his reign of terror ended abruptly. A sudden knock echoed through the room, followed by the splintering of the door as Russian FSB agents stormed in.&lt;br&gt;
Swissy was arrested, but the real challenge was only beginning - tracing the syndicate behind him.&lt;br&gt;
Find the address who funded the ransomware operator (0xf6c0513FA09189Bf08e1329E44A86dC85a37c176)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To solve it, I use web3py to connect to the blockchain and then will check for every block created from the beginning. There, I will check for transactions in the block and if there is any, I will check for its "to". If it matches, we will show the "from" (which is Swissy!).&lt;/p&gt;

&lt;p&gt;IMO this can be a good intro if you are interested in using web3py and blockchain programming in general.&lt;/p&gt;

</description>
      <category>ctf</category>
      <category>blockcha</category>
      <category>python</category>
      <category>web3py</category>
    </item>
  </channel>
</rss>
