일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 곱셈 암호
- 덧셈 암호
- function scope
- 백엔드입문
- node.js
- 마감임박
- 모듈러 연산
- 한국산업인력공단
- 국가인적자원개발컨소시엄
- 유클리드_알고리즘
- 동적타이핑
- 확장 유클리드 알고리즘
- 개인정보보호위원회
- 한국정보보호산업협회
- package-lock.json
- 개인정보안전성
- arrow function
- 호이스팅
- 백엔드
- 디오판투스 알고리즘
- Writeup
- 개인정보보호교육
- package.json
- pwnable.tw
- 한국정보보호산업협회기자단
- 웹 프레임워크
- 개인정보보호
- 무료교육
- 가명정보처리
- 포너블
- Today
- Total
목록Web hacking (15)
짱짱해커가 되고 싶은 나

Background url 인코딩 - hex값 앞에 %를 붙힌 값. (url에 포함되는 문자들을 안전하게 웹서버에 전달하기 위해, 특수한 기능을 가진 문자들을 브라우저가 인코딩해서 전달) 블라인드 SQL injection : 정보를 직접적으로 알아낼 수는 없지만 true/false를 통해 DB의 구조를 알아내는 공격 기법. information_schema.tables Exploit 100점 짜리 문제..! sql injection 문제로 보인다. 1을 입력하고 제출을 누르면 이렇게 데이터베이스 형식으로? result column에 값이 저장된다. 다른 값을 넣으면 추가되나 확인해보려고 2를 입력해서 제출해보니 0이 떴다. 3도 마찬가지. 그런데 0을 뜨면 아예 result가 뜨지 않는 것을 볼 수 있다..

소스를 확인해보면 다음과 같다. php에서 extract() 함수는 배열 속의 키 값을 변수화 시키는 함수다. REMOTE_ADDR의 값에서 ..은 .으로 12, 7. 0. 은 없는 값으로 변경시킨다. 그러면 127.0.0.1 은 1만 남게 된다. 127.0.0.1이 나오려면 17.2712..0...0...1 을 넣으면 된다. 우선 $REMOTE_ADDR 에 값을 넣어야하기 때문에 쿠키에 REMOTE_ADDR를 만들어서 값을 넣자. 안된다. 다시 생각해보니 12가 없어지면 7. 이 되서 다시 없어지게 된다. 그리고 0.에서 0 없어지는 걸 고려안했다 ㅎ;; 수정해서 112277...00...00...1를 넣으면 된다.

SQL 인젝션 문제라고 한다. 소스를 보면 다음과 같다. id를 admin으로 들어가면 되는 것 같다. select문을 보면 일단 Id가 guest로 세팅되어있어서 no 에서 or를 넣어서 앞에 부분을 무시하고 admin으로 바꾸면 될 것 같다. preg_match에서 공백 / ( ) | & select from 0x/i 등을 확인하기 때문에 뛰어쓰기를 할 수 없어서 url 코드로 입력했다. url 코드에서 탭은 %09이다. 따라서 url에 ?%no=-1%09or%09no=2 를 입력하면 된다.

입력 칸이 하나 나온다. 소스를 보면 버튼을 누르면 sub()함수가 실행이된다. sub함수를 보면 입력한 값이 unlock 연산의 값과 같으면 된다. 직접 하기 귀찮으니까 코드를 실행시켜보자. 7809497을 입력해보자. 안된다... 소수점이 문젠가 싶어서 float으로 했는데 딱 떨어진다. 그래서 그냥 크롬 콘솔에다가 했는데 다른 값이 나온다. 나누기 처리가 다른가 싶기도.. 아마 여기서는 1/10하면 c에서는 둘다 정수여서 0으로 반환하는데 여기서는 0.1로 나오고 이런 차이인것 같다. 그래서 7809297.1 입력하면 끝!

다음과 같은 화면이 뜬다. 소스를 확인해보자. star는 가장 처음에 나오는 별이고 그 다음에 보이는 aa는 두번째 노란 별이다. kk함수를 확인해보자. - Math.floor() : 해당 숫자가 같거나 작은 수 중에 가장 큰 정수 반환 - Math.random() : 0이상 1미만의 구간에서 난수를 반환 따라서 rndc에 나올 수 있는 값은 900000 -1 = 899999 이다. 이렇게 되면 font color가 #899999 인데 이 색깔은 다음과 같다. (1,1) 위치에 해당 컬러의 *이 나타난다. event.keyCode는 키의 입력을 아스키코드를 기반하여 감지하고 함수를 처리할 수 있다. 키가 입력이 되면 해당 키 입력 값이 cd이며 mv함수가 실행된다. mv 함수를 확인해보자. 각 키 값에 ..

검은 화면에 input칸과 check 버튼이 하나 있다. hi를 넣고 check를 해보니 wrong 메시지가 뜨고 input_pwd에 값이 들어간다. 페이지 소스를 확인해보자. check버튼을 누르면 ck 함수가 실행된다. document.URL.indexOf() : 해당 인덱스가 몇번째에 있는지를 봔한한다. (0부터 시작) webhacking.kr 이기 때문에 10번째에 해당한다. 따라서 ul은 10*30 = 300 아니었다. 앞에 있는 htts://를 빼먹었다. 18*30 = 540 540을 입력하면 다음과 같이 뜨고 성공한다.