티스토리 뷰



LOB wolfman -> darkelf


id : wolfman

pw : love eyuna



코드입니다.


전 레벨과 달라진 점이 인자의 길이를 체크합니다.


argv[1] 의 길이가 48이상이면 프로그램이 종료되는군요.


그러면 argv[2]를 이용해서 쉘코드를 전달하고 ret주소를 argv[2]의 주소로 뛰어주면 될 것 같습니다.


분석을 위해 tmp폴더를 만들고 cp하도록 하겠습니다.



어셈블리 코드입니다.


중요한 부분만 보도록 하겠습니다.



44만큼 스택 프레임을 구성하고 있습니다.



ebp-40부터 strcpy를 합니다.


따라서 메모리구조는


i(4) | buf(40) | sfp | ret 이 되겠습니다.


저희는 argv[2]의 주소를 구해야합니다.



이렇게 해보겠습니다.



보니까 답이 나오네요 bf구간은 argv1구간이고 4141414141은 argv 2의 구간입니다.


ret주소를 대략 0xbffffb30으로 잡고 공격해보겠습니다.


공격에 성공했습니다.


실제 파일에 공격을 해보겠습니다.




권한을 얻었습니다.


darkelf의 키는 kernel crashed 입니다.








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

[LOB] orge -> troll write-up  (0) 2018.02.11
[LOB] darkelf -> orge write-up  (0) 2018.01.27
[LOB] orc -> wolfman write-up  (0) 2018.01.27
[LOB] goblin -> orc write-up  (0) 2018.01.27
[LOB] cobolt -> goblin write-up  (0) 2018.01.26
Comments