분류 전체보기 (214) 썸네일형 리스트형 LOS _goblin no를 입력 값으로 받고 있다 Hint guest는 no=1 admin의 no=? and 연산자가 or 연산자보다우선 ...더보기 query no=2 or no=2 LOS _cobolt id와 pw를 받는데 pw는 md5로 암호화 query를 데이터 베이스에 넘겼을 때 나오는 id가 admin일 시 클리어 Hint: 주석처리 ...더보기 query: id=admin' %23 LOS _gremlin GET방식으로 id와 pw를 전달 query문이 데이터 베이스에 전달 됐을 때 id가 뭐라도 나온다면 클리어 query: id=' or 1%23 %23은 #으로 한줄 주석 --으로 해도 가능하다 SQL Injection SQL Injection SQL 쿼리에 사용자의 입력 데이터가 삽입되어 사용자가 원하는 쿼리를 실행할 수 있는 취약점 사용 목적과 행위에 따라 다양한 구조가 존재하며 대표적으로 아래와 같이 구분 DDL (Data definition language) 데이터를 정의하기 위한 언어 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행 DML (Data manipulation language) 데이터를 조작하기 위한 언어 실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행 DCL (Data control language) 데이터베이스의 접근 권한 등의 설정을 하기 위한 언어 데이터베이스내에 사용자의 사용 권한을 부여하기 위한 GRANT와 권한을 박탈.. ftz level3 소스코드의 내용은 실행할 때 인자가 2개가아니면 중간에서 끝나버리니까 무조건 2개를넣어준다 ./autodig 123123이렇게 2번째 인자를 cmd배열안에 넣고 system함수로 cmd배열의 내용을 실행 시킨다 넣어야 할 명령은 /bin/bash와 my-pass 동시에 여러 명령어를 사용하려면? ';'를 명령 사이에 넣으면 된다 /bin/bash와 my-pass를 동시에 사용하려면 /bin/bash;my-pass 문자열 형태로 명령어를 전달하려면? "을 사용한다 "/bin/baash"처럼 기존 사용하던 find 명령어에서 -name옵션을 추가해 autodig를 찾는다 find / -name autodig -user level4 -perm -4000 ftz level2 "shift +"로 입력모드를 들어가고 esc를 눌러 입력모드 종료 qq를 쳐서 recoding이 뜰 때 !하고 다른 문자를 입력하면 위 사진처럼 글자가 보인다 보통 저장하고 나가기wq!를 쓸 때하는 기능 !/bin/bash를 입력하고 enter를 치면 level3의 권한으로 shell을 실행 ftz level1 ls 명령어를 하면 hint가 있다 cat hint의 내용 ftz trainer에서 배운 find명령오로 level2의 유저로 setUID가 걸린 파일을 찾으면 /bin/ExecuteMe라는 파일만 permission denied 가 안되어 있다 my-pass는 바로 안되므로 level2의 쉘을 실행 /bin/bash bash만 입력해도 되긴하더라 level2의 권한을 획득하고mypass를 입력한다 stack7 6번이랑 별 달라진게 없지만 ret가 갈 주소를 검사하는 부분이 더 엄격해졌다 이젠 6번 처럼 ret에 system함수의 주소를 삽입하는 것도 불가능해 보인다 system의 위치가0xf로 시작하기 때문에 f &(and) b 연산으로 하면 b가나와서 걸리기 때문 이럴 때는 이런식으로 getpath의 ret을 main의 ret주소를 넣어주면 ret를 검사하는 부분에 걸리지 않고 그밑에 system과 /bin/sh로 채울 수 있다 (main문엔 ret를 검사하는 부분도 없고) 이러한 방식을 ROP(Return Oriented Programming)이라고 함 이제 구해야 할 것 buffer에서 ret(getpath)까지의 길이 main의 ret주소 system 주소 /bin/sh 주소 buffer에서 ret까지.. 이전 1 ··· 21 22 23 24 25 26 27 다음