목록hacking study (69)
wonder

기존에 있던 기능에 부트스트랩을 이용해 로그인 페이지 디자인을 입혔습니다. 또한 기능에 대한 세부적인 디테일을 수정했습니다. 주소 직접 입력 제한 주소를 검색해서 입력해야하는데 고의로 직접 입력할 수 있어서, 입력기능을 차단하기 위해서 입력값 제한을 0으로 하였습니다. 주소 폼을 클릭하기만 해도 자바스크립트 함수로 연결되서 창이 열리게 했습니다. 지난 번에 구현한 리스팅기능을 주소 검색 결과에 추가했습니다. 테이블로 감싸서 결과를 불러왔습니다. 리스팅 기능이 잘 작동하는 것을 볼 수 있습니다. 기존 페이지에 주소 전달 새창으로 검색한 주소를 사용하기 위해서 주소를 원래 페이지에 전달 해야합니다. 사용하기를 누르면 자바스크립트 use함수가 실행됩니다. 원래 페이지를 부모 변수로 지정했습니다. 원래 페이지의..

Reflected XSS 먼저 일단 사이트의 여러 기능들을 사용해봅니다. 개인정보 입력, 작성자/내용/제목별 검색창이 있네요. 다둘러보고 history를 확인해서 param이 체크되어있는 페이지들 위주로 봅니다. reflected의 실행 조건이라고 한다면 파라미터 변수가 있어야합니다. 검색기능, 글 수정, 연도설정, 페이지설정 등이 변수페이지입니다.. 내가 입력한 값이 응답하는 구조라면 모두 테스트해봅니다. 일단 글 수정으로 테스트를 하기위해 Repeater로 불러옵니다. 빠른 검색을 위해 auto scroll을 실행시켜줍니다. 글수정 확인 - Stored XSS 페이지번호: 62, 제목, 내용 변수를 수정할 수 있도록 구성되어 있습니다. 제목, 내용 부분이 div 태그 에 쌓여 있는 것을 확인합니다. ..

XSS XSS는 서버 측이 아니라 클라이언트 측 스크립트를 삽입하여, 웹 브라우저에서 실행하게 만드는 공격입니다. 공격자가 스크립트를 주입하면 서버는 그대로 저장하고 응답을 줍니다. 보통 alert(1) 로 많이 테스트를 해서 성공하면 다른 악의적인 스크립트도 주입이 가능합니다. 예를들면 이용자의 세션ID를 탈취할 수 있습니다. 주로 자바스크립트, HTML 으로 동작합니다. 발생 가능한 위치는 input 뿐만 아니라 파라미터 값을 입력해서 응답페이지가 나오는 곳입니다. 서버에 저장되는 Stored xss 입력값을 반사시키느 Reflected xss 숨겨져 있는 Dom based xss 가 있습니다. Stored xss 같은 경우에는 게시판 같은 곳에 남들이 많이 들어오는 곳에 스크립트 alert를 삽입을..

이런식으로 글 내용이 너무 많이 나와버리면 안되기 때문에 필수인 작업이 페이징 기능 구축입니다. 너무 당연해서 쉬워보였지만 그 안의 구조는 생각보다 까다롭습니다. 노출할 칼럼 수 제한 전체 칼럼 수 확인 일단 전체 칼럼이 몇개인지 출력합니다. 현재 주소가 담긴 DB에서 세종특별시 테이블의 칼럼수는 27389개입니다. 한 페이지에 10개의 글이 나올 것으로 지정했습니다. 그리고 현재 페이지 번호가 없다면 페이지 번호를 1로 바로 만들어 줍니다. 그리고 Sql 에서도 데이터 모두 불러오는 게 아니라 10개의 데이터만 불러와줘야하기 때문에 저렇게 제한을 둡니다. 현재 페이지가 2번이라면 10번부터 20번까지 10개의 열을 불러오라는 게 됩니다. 여기서 query는 중복이 아니라 재정의 됩니다. 그리고 반복문으..

DB에 주소 txt파일 불러오기 주소 검색 기능 구현하는게 내부적으로 제일 고민하고 어려웠던 것 같습니다. 처음에 어떻게 데이터를 불러올까 고민하다가 txt 파일에서 불러와서 검색을 할까 고민도 하다가 일단 100만 줄이 넘는 주소 자료를 txt로 모두 불러와서 처리한다는 게 너무 시간이 오래걸릴 것 같았습니다. 주소 사이트 자체에서도 DB 활용하는 방법을 소개해주고 있기 때문에 SQL DB로 구현을 했습니다. 주소 사이트에서 가져오는 것 보다 우체국에서 DB 정리가 잘되어 있어서 해당 zip파일을 가져왔습니다. 한번에 모든 자료를 불러오기는 파일 크기가 크기 때문에 세종특별시.txt를 예시로 일단 해결하겠습니다. 처음에 이렇게 떠서 당황스러웠지만 엑셀에서 텍스트/CSV로 데이터를 가져와 파이프 | 를 ..

Blind Based Injection Blind based Injection은 SQL Injection이 가능한 모든 곳에서 사용 가능합니다. 화면에 출력이 안되서 Union/Error based injection 둘다 못 쓸때 사용합니다. 하지만 수작업으로는 오래 걸린다는 단점이 있습니다. 그래서 자동화화는 능력, 프로그래밍 능력이 필요합니다. 값이 화면에 출력이 안되서 확인을 못하면 어떤 방법을 사용할 수 있을까요? 값이 화면에 한글자라도 출력이 되면 좋을텐데.. 안그러니까 참/거짓으로 따지면 됩니다. 참일때는 페이지가 로그인 성공이 뜨겠고 거짓이면 로그인 실패가 뜨겠습니다. 생각보다 DB의 참/거짓이 들어가는 기능과 기능에 대한 취약점이 있는 페이지가 많기 때문에 blind injection이 실..