전체 글(603)
-
exploit-exercise Fusion level-01
fusion1번 문제입니다. 처음에 jmp esp라는가 어째서 내 쉘코드를 실행시키는지 확실하지않아서 조사를 많이해봐서 이를 요약해서 알려드리겠습니다. 먼저 소스코드입니다. 취약점은 이전문제와 같이 realpath내에 memset이 있기때문에 발생하는 취약점으로 판단됩니다. 일단 문제 조건은 : ASLR만 걸려있습니다. 따라서 스택내에서 실행권한이 있는것이죠 1. jmp esp 가젯을 찾는다.2. 리턴값에 jmp esp를 준다.3. esp가 가르키는 위치는 $"jmp esp"로 바뀐다.4. 이때 esp는 바로 자기자신 위에있는 함수를 스택의 끝주소로 판단한다.-> esp란 ? 하나의 스택 프레임의 끝 지점 주소가 저장된다. PUSH, POP 명령어에 따라서 ESP의 값이 4Byte씩 변한다 5. 따라서 ..
2018.08.12 -
exploit-exercise Fusion level-00
맞습니다.. 다음과제는 exploit-exercise funsion이였습니다 :) lob와 비슷해보이는데 조금더 리얼한 코드같습니다. 코드를 먼저확인하죠. 123456789101112131415161718192021222324252627282930313233343536373839404142434445#include "../common/common.c" int fix_path(char *path){ char resolved[128]; if(realpath(path, resolved) == NULL) return 1; // can't access path. will error trying to open//취약점 각 becuase memcmp strcpy(path, resolved);} char *parse_..
2018.08.10 -
[TJCTF2018] - Central Savings Account
아래 문제입니다. 사이트로 접속하니 비밀번호를 입력하라는 창이 하나 뜨는군요 비번을 어떻게 알아낼까 고민하다 main.js를 봤습니다.위에는 md5변환하는 함수고, 값이 저거와 같아야하는군요.decryt합니다! avalon이란 값이 나왔네요. 이값을 입력하면? 성공~!
2018.08.09 -
12. LOS - darknight
LOS11번째문제 darknight입니다. 이전과 달라진 점들은 ascii까지 필터링이 먹었다는 것입니다.이것 또한 구글링을 해보니 ascii -> ord로 가능하다는 사실을 습득! ㅎ 아래는 페이로드입니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950import requestsimport string num_alpha = string.digits + string.ascii_letterspassword = "" #find length passwdresetURL = "http://los.eagle-jump.org/darkknight_f76e2eebfeeeec2b7699a9ae976f574..
2018.08.09 -
11. LOS - golem
LOS 11번 문제 golem입니다. 이전것들과 달라진 점들을보면 or 하고 and는 원래 필터링이 먹혔었고, substr이 필터링이 먹었군요..구글링을 해보니 substr = mid 로 가능하다고 합니다.and가 필터링을 먹는 경우는 and = %26%26 페이로드 입니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import requestsimport string num_alpha = string.digits + string.ascii_letterspassword = "" #find length passwdresetURL = "http://los.eagle-jump.org/golem_..
2018.08.08 -
10. LOS - skeleton
LOS 10번째 문제 skeleton입니다! 먼저 코드를 보면 pw뒤에 and 1 = 0으로 만들어줘서 고의적으로 거짓으로 만들어 줬습니다.그럼 저 부분을 참으로 만들어줘야하는데저는 id에 'admin'을 넣고 뒷부분을 모두 주석으로 처리해주어서 풀었습니다 :)페이로드는 다음과 같습니다. 1234567891011import requestsimport string URL = "http://los.eagle-jump.org/skeleton_8d9cbfe1efbd44cfbbdc63fa605e5f1b.php"payload = "?pw=admin' or id='admin'%23"URL += payload cookies = dict(PHPSESSID = "dvs710ccqajrn9434hc3a00r11")respo..
2018.08.07