전체 글

오늘은 shellshock문제를 풀어보겠습니다. 힌트를 보면 bash에 문제가 있다고 나오네요. 그래서 shellshock취약점에 대해서 검색을 해보았습니다. 구글에 보니까 취약점을 확인할 수 있는 방법이 있네요!! 바로 사용해 보도록 합시다. 명령어가 실행되네요?? 그렇다면 flag를 실행시킬수 있겠네요. 하하하 flag를 얻었습니다. 새로운 취약점에 대해서 알게된 문제였네요
벌써 두번째 줄이네요 와~~~ 빨리 문제를 확인해 볼까요?? 문제를 보면 hint가 있네요 operator priority를 검색해보면 연산자 우선순위라고 나옵니다. 그렇다면 이번문제는 연산자 우선순위에 관련된거라고 예측해 볼 수 있겠네요. 코드를 보면 이상한점이 보이시나요?? if문을 보면 괄호가 이상하게 되어있습니다. 원래대로라면 괄호가 있어서 =연산을 먼저하고
자 pwnable.kr 사이트를 보면 코드와 어셈블리 코드를 주네요. 코드를 해석해보면 key1값 key2값 key3값을 다 더하면 key가 되고 flag를 얻을수 있습니다. 그럼 이제 어셈블리 코드를 보며key1,2,3값을 구해봅시다. 어셈블리 main문의 코드를 보면 key 1,2,3,밑에줄에는 모두 mov라는 레지스터를 이용해서 r0의 값을 옮기고 잇습니다. arm레지스터에서는 r0은 주소값을 담고 있는데 그렇다면 r0의 주소값을 구해야 합니다. 그렇다면 key 1,2,3의 주소값을 구해볼까요 우선 key1을 보면 pc의 값을 r3에 옮기고 r3의 값을 r0에 옮기고 있네요 근데 여기서 pc는 파이프라인으로 pc가 있는 값에 8만큼 뒤에 값을 가르킵니다. 그래서 key1의 값은 00008ce4가 되..
· 기법
pwnable.kr의 leg문제를 풀게되면 pipeline이라는 것을 알아야 합니다. 그래서 Pipeline이 무엇이냐 바로 CPU와 같이 디지털 집적회로의 속도를 향상시키기 위한 회로설계 기법입니다. 예를 들어 설명을 드리겠습니다. 만약 건듀가 친구들과 함께 동아리실을 청소 한다고 치면 일단 청소를 하려고 하면 첫 번째로 쓸고 두 번째로 걸레를 빨고 바닥을 닦고 세 번째로 쓰레기통을 비워야겠죠 근데 청소를 하는데 저만 쓸고 닦고 쓰레기통을 비우고 나머지 친구들이 쉬고 있다가 차례대로 한명씩 청소를 한다면 엄청 비효율 적이겠죠?? 하지만 파이프 라인을 이용한다면 제가 바닥을 쓸동안 저의 친구들은 걸레를 빨고오고 쓰레기통을 비우고 온다면 모두 동시에 하기 때문에 원래 하는것보다 작업속도가 3배나 빠르게 처..
3번째 문제는 bof문제입니다. FTZ와 LOB를 풀어보신분들은 다 들어보셨을 내용인데요 우선 코드를 먼저 봅시다. main함수부터 보시면 func함수는 0xdeadbeef네요. 그리고 func함수를 보시면 문자형인 overflowme[32]바이트를 선언하고 print를 통해서 overflow me : 를 출력하네요. gets라는 함수를 통해서 (overflowme)를 입력받는데 이때 취약점이 발생합니다. // gets라는 함수는 문자열을 입력받는데 문자열의 개수를 검사하지 않습니다. key와 0xcafebabe가 같으면 /bin/sh 권한을 얻을수 있네요. 그렇다면 cafebabe의 값을 오버플로우를 이용해서 덮어주면 /bin/sh권한을 얻을 수 있겠죠 그렇다면 overflowme와 key의 거리를 알..
애기건듀
건듀의 블로그