Orge
-
Level8 (orge -> troll)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:24
이번에도 마찬가지로 소스코드를 확인해 보겠습니다. 소스코드를 확인해 보면 if(argc != 2) 라는 조건이 추가 되어서 argv[2]을 사용할 수 없습니다. 결국 argv[0] , argv[1]만을 사용 해야 하고, 맨 아래에 memset(argv[1], 0, strlen(argv[1]))을 보면 argv[1]이 초기화 됩니다. 그렇기 때문에 쉘 코드를 삽일 할만한 곳이 argv[0]에만 가능합니다. 그래서 심볼릭 링크를 파일에 걸어서 실행 하는 방법으로 문제를 해결 해야 할 것 같습니다. 심볼릭 링크가 걸리지 않습니다. 그 이유는 삽입한 쉘 코드에 / 인 \x2f가 들어 있어서 경로에 지장이 생기기 때문입니다. 그래서 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\..
-
Level7 (darkelf -> orge)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:23
소스코드를 확인해 보겠습니다. 여기서 유의해서 확인해 봐야할 소스코드는 strlen(argv[0]) != 77 입니다. argv[0]의 길이가 77이어야 한다는 뜻입니다. 그래서 한번 77글자를 넣어서 우회해 보겠습니다. 이렇게 우회가 가능한거 같습니다. a를 넣어준 이유는 argv error 를 우회하기 위해서 입니다. 그리고 level6문제랑 똑같이 하면 될 것 같습니다. core dump를 만들어 보겠습니다. orge 를 arge로 복사 해서 arge로 core를 만들었습니다. gdb -q -c core를 이용해서 분석을 해보겠습니다. 쉘코드 시작 주소는 0xbffffbc2 입니다. expliot 페이로드를 작성해 보겠습니다. login : orge password : timewalker
-
[Lord of SQL_injection] #7 orge$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:07
이문제는 전에 나왔던 blind sql injection보다 좀더 난이도가 높아 보인다... 저번에는 pw만 구하면 됬었지만 해당문제에서는 여러가지의 조건을 던진다. or 와 and가 필터링 되어있다. id의 값이 admin이 아닌 guest로 고정되어있다. 그렇가면... 일단 pw를 구하는 것은 소스코드 아래에서 2번째 문장을 보면 저번 문제와 같이 실제 디비의 pw값을 구해야 하므로 잠시 뒤로 미루고 id의 값을 admin으로 변경 시켜 보겠습니다. ?pw=' || id='admin id의 값이 admin이 되면 Hello admin을 출력합니다. 뒤에 &&를 이용해서 참의값을 넣어주면 어떻게 되는지 확인해 보겠습니다. ?pw=' || id='admin' %26%26 '1 다행히도 Hello admi..