분류 전체보기
SuNiNaTaS 4 (WEB 122pt)
  Point User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36 Auth key ????? 소스를 보면 별게 없고, 대신 마지막 줄에 힌트가 있다. Make your point to 50 & 'SuNiNaTaS' 'Plus' 버튼을 누르면 Point가 1씩 올라간다. 그리고 그 사이 URL이 변하는 것을 발견했다. http://suninatas.com/challenge/web04/web04.asp에서 http://suninatas.com/challenge/web04/web04_ck.asp로... '_ck'를 .asp 앞에 ..
SuNiNaTaS 18 (FORENSICS 153pt)
처음에 딱 보고 이 숫자들이 아스키코드고 chr() 변환을 통해 문자열을 얻으면 된다고 생각했다. a=[] a_input=input() a=a_input.split() a=list(map(int,a)) i=0 while(1): b=a[i] print(chr(b), end="") i+=1 if(i==len(a)): break 그래서 위와 같은 코드를 작성하고 돌려봤더니 아래와 같은 문자열이 출력되었다. VG9kYXkgaXMgYSBnb29kIGRheS4gVGhlIEF1dGhLZXkgaXMgVmVyeVZlcnlUb25nVG9uZ0d1cmkh 처음에 딱 보고 음 아닌가 싶었지만 디코딩을 해보기로 했다. base64 디코딩으로 Authkey를 얻었다. Today is a good day. The AuthKey i..
SuNiNaTaS 3 (WEB 133)
  Write articles in Notice Board! 소스도 모두 디자인에 관한 것뿐, 주어진 거라고는 노티스 보드에 글을 쓰라는 문장 뿐이다. 아무리 찾아봐도 없길래 notice board에 글을 써보기로 했다. 하지만 notice board에는 글쓰기 버튼이 없었다. 아래는 free board다. 글 쓰기 버튼도 있다. 간단하게 글을 써봤지만 아무 것도 나오지 않았다. 그러다가 URL을 보게되었다. 위 사진은 FREE BOARD에서 글 쓰기 버튼을 눌렀을 때의 URL이다. 저 free 부분을 notice로 바꿔보면 되지 않을까? 그랬더니 원래 없었던 NOTICE WRITE 창을 찾았다. 이 곳에 글을 써보니 Authkey가 팝업되었다.
SuNiNaTaS 2 (WEB 110)
소스 코드를 보면 id와 pw가 다를 때 폼이 전송된다. 그런데 주석 처리된 힌트 부분에는 id와 pw가 같다고 되어있다. id와 pw를 같지만, 다르게 해야 한다는 생각으로 id: admin / pw: 0x61646d696e or char(97, 100, 109, 105, 110) 이렇게 우회를 해봤지만 되지 않아서 프록시 툴을 사용해봤다. 일단 id랑 pw를 같게 하라고 하니 둘 다 admin으로 로그인을 시도할 것이다. id: admin / pw: admin 그리고 소스코드에서 if 절의 조건을 바꿔준다. id == pw -> id != pw 이 상태로 로그인 하면 Authkey가 뜬다! 프록시툴로 if 조건절을 바꾸는 방법 뿐만 아니라 id나 pw를 직접 수정해줄 수도 있고 콘솔 창에서 코드 수정..
SuNiNaTaS 1 (WEB 100)
asp 소스 코드가 있다. Reuqeust 객체를 통해 str을 받아오는데 str에 아무 것도 없다면 Then 다음 코드를 실행한다. replace(): a는 aad로, i는 in으로 바꾼다. mid(): 2번째부터 2글자를 떼어오고 4번째부터 6글자를 떼어와 그 둘을 붙여 result를 만든다. 그렇게 만든 result의 값이 admin이면 문제가 풀릴 것 같다. 저 일련의 과정을 거쳐 admin이 될 수 있도록 초기값을 찾으면 된다. 먼저, replace() 함수에는 a를 aad로, i를 in으로 바꾸기에 a와 i는 필수적으로 포함할 것이다. 만약 초기값이 "ai"라면, "ai" - "aadi" - "aadin"의 순서로 replace() 를 거친다. 이후 mid()를 거치면 ad와 in이 합쳐진, ..
SQLD 실습 환경 준비하기: 데이터셋 임포트
SQLD 자격증 준비를 위해 실습 환경을 꾸렸다. 이제 각종 쿼리문을 하나하나 입력해보며 실습을 진행할 것이다. 난 DBGuide.net에서 제공하는 자료와 이기적 SQL 개발자 수험서를 통해 공부하는데 DBGuide.net과 똑같이 실습을 진행하기 위해서는 내 Oracle에도 같은 데이터셋을 임포트 해야 한다. 먼저 데이터셋은 DBGuide.net에서 제공한다. 아래 링크에서 다운받도록 하자. https://www.dataq.or.kr/www/board/view.do 데이터자격시험 www.dataq.or.kr 다운받은 내용은 아래와 같다. 일단 난 Oracle로 실습할 예정이므로 oracle용 파일 2개를 선택해 알아보기 쉬운 이름으로 바꿔주었다. 이제 SQL PLUS에 'SYS' 계정으로 로그온하자...
Toad 설치
토드를 설치해보자. 학습을 위한 프리웨어인 Toad for Oracle을 설치할 것이다. 이전 글을 참고해 Oracle XE를 미리 설치하고 시작하자. 1. 토드 월드 접속하기 https://www.toadworld.com/ Toad World Toad World homepage Join the millions of users who trust Toad products. With nearly 20 years of development, Toad leads the way in database development, database management, and data analysis. www.toadworld.com 2. Download - Toad for Oracle 클릭 3. 몇 가지 정보 입력 후 다..
*Challenge old 35 (350)
5) exit("no hack"); if(preg_match("/admin/i",$_GET['id'])) exit("you are not admin"); mysqli_query($db,"insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})") or die("query error"); echo "Done";}$isAdmin = mysqli_fetch_array(mysqli_query($db,"select ip from chall35 where id='admin' and ip='{$_SERVER['REMOTE_ADDR']}'"));if($isAdmin['ip'] == $_SE..
UTCTF 2020 Chatt with Bratt: Write-Up
라업을 쓰려고 보니 이미 죽어있어서 캡쳐를 못 떴다. 풀이 기록용으로 미리 써둔 문서를 먼저 사용하고 다른 사람의 라업을 참고해서 마무리 짓겠다. 'Bratt Pid'라는 스타와 1:1 채팅을 할 수 있다는 가정 아래 플래그를 얻으면 된다. flag를 물어봤더니 agent한테 물어보라고 한다. 그래서 코드를 바꿔봤다. 네모 친 부분이 Bratt Pid 였던 것 같다. agent로 바꾸고 다시 flag를 물어봤다. 알 수 없는 문자열을 얻었는데 뭔가 의미있어 보여서 좋아했었다.. 물론 저게 플래그는 아니다. 또 몇 개 물어보는데 개발자가 나에게 더 많은 것을 답할 수 있게 했으면 좋았을 거라고 해서 메시지에 붙는 value를 Anon에서 creator로 바꿨다. admin으로도 바꿔봤다(의미 없는 것 같다..
UTCTF 2020 Zero: Write Up
제공받은 zero.txt를 열면 다음과 같다. 전문은 이렇다. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis tempus ante, nec vehicula mi. Aliquam nec nisi ut neque interdum auctor. Aliquam felis orci..
1과목 - 02
[1] List Partitioning > 2 [2] 3 > 4 [3] [4] 1 > 3 1. 매각기일은 일자별 매각이 시행되는 장소, 시간이므로 일자별매각물건 엔터티의 매각시간, 매각장소는 매각일자에만 종속됨 -> 2차 정규화의 대상 2. 매각기일 엔터티는 일자별매각물건의 PK 중 일부로부터 독립했기 때문에 매각기일과 일자별매각물건은 1:M 관계 [5] 4 > 3 [6] 2 > 4 [7] 3 > 1 컬럼 단위에서 중복된 경우도 1차 정규화의 대상이다. 이에 대한 분리는 1:M의 관계로 두 개의 엔터티에서 분리된다. [8] 3 > 1 1. 다량 데이터 탐색의 경우 인덱스가 아닌 파티션 및 데이터 클러스터링의 다양한 물리 저장 기법을 통해 성능을 개선할 수 있다. 하지만 결과셋을 추출하기 위해 다량의 데이..
Oracle Database 18c XE 설치 2: SQL 계정 설정과 로그온
이전 포스팅에 이어 데이터베이스 계정을 설정하고 로그온해보자. 먼저 SQL Plus를 실행하자. 1. Oracle Database 사용하기 Oracle XE를 설치하면 자동으로 "SQL Plus"가 설치되고 이를 통해 DB에 연결한다. 초기화면은 다음과 같다. 사용자명을 입력받는데, 이곳에 "SYSTEM"을 입력해 SYSTEM 계정으로 로그온한다. 비밀번호는 설치 중 설정했던 비밀번호를 입력한다. 성공하면 다음과 같이 출력된다. cmd에서 바로 SQL Plus에 접속하는 방법도 있다. cmd에서 'sqlplus 계정명/비밀번호'를 입력한다. 우리는 설치 과정에서 SYSTEM 계정의 비밀번호를 설치했으니 'sqlplus SYSTEM/비밀번호'를 입력한다. 접속이 완료되었다면 간단한 select 문을 실행해..