### ADMIN UI 3 (pwn-re)
두 개의 패스워드를 통과하면 몇 가지 커맨드를 실행시켜주는 루틴으로 들어간다.
![](https://rls1004.github.io/img/google_adminui3_shell.JPG)
![](https://rls1004.github.io/img/google_adminui3_system.JPG)
quit, version, shell, echo, debug 명령어를 사용할 수 있는데, 이 중에서 shell 명령어를 입력했을 때 shell_enabled 가 1이면 debug_shell()을 호출하고, debug_shell() 에서는 system("/bin/sh") 를 호출한다.
![](https://rls1004.github.io/img/google_adminui3.JPG)
![](https://rls1004.github.io/img/google_adminui3_.JPG)
명령어를 입력받을 때 길이 검사를 하지 않아 `BOF` 취약점이 발생하기 때문에 debug_shell() 함수의 주소를 스프레이해서 return address 를 덮으면 쉘을 획득할 수 있다.
```Unknown command ''BAA'> $ quitBye!$ lsan0th3r_fl44444g_yoflagmainpatchnotes$ cat an0th3r_fl44444g_yoCTF{c0d3ExEc?W411_pL4y3d}```
**CTF{c0d3ExEc?W411_pL4y3d}**