코드를 보면 전레벨과 동일하지만, 마지막에 buffer hunter라는 구문이 추가되었다.

argv[1]의 주소에도 인자가 쓰여져 있으므로 argv[1]의 주소를 덮으면 된다.

근데 실수로 버퍼를 이용해서 풀어버렸다.

왜 버퍼헌터가 작동 되지않은것은 잘 모르겠다.

이렇게 argv[1]의 주소를구해 덮는 방법도 있다.

Flag : love eyuna

'IT > LOB' 카테고리의 다른 글

[LOB] darkelf  (0) 2016.07.17
[LOB] wolfman  (0) 2016.07.17
[LOB] goblin  (0) 2016.07.17
[LOB] cobolt  (0) 2016.07.12
[LOB] gremlin  (0) 2016.07.12


코드를 보면 조건이 꽤 많다.

egghunter라는 것이 있어 환경변수 사용을 막고,

argv[1][47]의 값이 \xbf가 아니라면 종료시킨다.

권한 문제로 인해서 새로운 c파일을 만들어 gdb로 까보았다.

i와 배열 총 44바이트를 주고있다. 따라서 dummy는 없다고 볼 수 있고,

| i(4) | buffer(40) | sfp(4) | ret(4) |

가 된다고 볼 수있다.

버퍼의 주소를 알기 위해서 코드 한줄을 추가후 실행시켜 보니 

0xbffffae0 이라는 주소가 나왔다.

그러므로 ./orc `python -c 'print "A"*44+"\xe0\xfa\xff\xbf" + "\x90"*200+"SHELLCODE"'`

의 형식으로 짤 수있다.



Flag : cantata

'IT > LOB' 카테고리의 다른 글

[LOB] wolfman  (0) 2016.07.17
[LOB] orc  (0) 2016.07.17
[LOB] cobolt  (0) 2016.07.12
[LOB] gremlin  (0) 2016.07.12
[LOB] gate  (0) 2016.07.11

gremlin과 비슷한 문제이다

대신 gets함수로 인자값이 아닌 프로그램상에서 입력을 받고 있다.

gremlin과 똑같이 주소값을 구하지만 값을 전달하는 방식이 틀리기 때문에

아래의 방법으로 구문을 짜면 된다.

(python -c 'print ~~~~~~~~~~~~';cat) | ./goblin

Flag : hackers proof

'IT > LOB' 카테고리의 다른 글

[LOB] wolfman  (0) 2016.07.17
[LOB] orc  (0) 2016.07.17
[LOB] goblin  (0) 2016.07.17
[LOB] gremlin  (0) 2016.07.12
[LOB] gate  (0) 2016.07.11

+ Recent posts