일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 인공지능
- 보안
- php
- sql injection
- 웹
- MySQL
- 알고리즘
- webhacking.kr
- 자바스크립트
- 넘파이
- 백준
- abex crackme
- 회귀 수식
- CodeEngn
- 머신러닝
- 웹해킹
- 워게임
- 컴퓨터 구조
- 백준 알고리즘
- 리버싱 워게임
- webhacking
- 리버싱
- 리눅스
- writeup
- html
- 리버싱 문제
- 어셈블리어
- 해킹
- 리액트
- C언어
- Today
- Total
목록보안/해킹 워게임 (10)
인공지능 개발일지
아래는 1번의 초기화면이다. view-source로 코드를 봤다. 위 첫 번째 네모 친 부분을 보면 SetCookie로 "user_lv"란 이름의 쿠키를 생성하고 $_COOKIE ['user_lv']로 생성한 쿠키에 접근하는 것을 볼 수 있다. 다음으로 두 번째 박스를 보면 아래 수식과 같이 3보다 크면 풀리는데(solve) 4보다 크거나 같으면 1로 쿠키를 초기화한다. 따라서 3과 4사이의 실수로 쿠키를 변조하면 풀린다.
앞에 풀었던 문제는 다 $_GET[ ]문의 파라미터를 ‘no’라는 이름으로 했는데 여기서는 ‘id’로했다. 그러니까 앞의 걸로 치면 if($result[‘no’]==2)로 ?no=2만 붙이면 된다. 그런데 admin은 문자열이라 따옴표가 있기 때문에 addslashes가 따옴표 앞에 \를 넣어 조건문의 참 조건이랑 달라진다. 따라서 admin을 16진수로 바꾼 0x61646d696e를 id에 넣어주면 된다. 그런데 여기서 select from문을 사용했으므로 값 (as) 변수 형식으로 0x61646d696e (as) id를 입력하면 되는데 여기서 as는 생략하고 공백문자를 %09로 바꿔서 대입하면 아래와 같이 풀린다.
아래는 42번의 초기화면이다. Test.txt를 먼저 다운 받았다. 이어서 flag.docx 도 바로 다운 받았다. 뭐지..?접근 거부가 뜨고 flag파일의 subject가 read me 읽어달라는 것을 보니 flag 파일에 접근하라는 힌트 같다. 일단 url접근은 아닌 것 같으니 버프슈트를 써봤다. 버프슈트로 flag파일을 다운 받으려 할 때 세션을 탈취해서 코드를 보는 것이 목적이다. 그런데 예상과 달리 test는 코드가 세션을 탈취하는데는 성공했지만 별 다른 특별한 코드가 보이지 않는다. 왜냐하면 내가 원하는 코드는 접근 거부를 시키는 내용이 들어간 코드이기 때문이다. 그래서 개발자 모드(F12)로 flag부분의 코드를 봤더니 alert()창을 띄우는 코드가 있고, test부분 코드는 아래와 같다...
안녕하세요! 오늘은 webhacking 27번을 풀어 봤습니다. 27번 초기화면은 아래와 같다. 이번에 완성할 것은 쿼리문 라인의 {$_GET[‘no’]}임을 알고 차례로 다시 보겠다. If preg_match에서 거르는 것들을 보면 여기선 등호와 괄호까지 거른다. 근데 자세히 보면 preg_match함수는 거르는 것들의 파라미터를 |로 구분하는데 괄호 양쪽이 아니라 ‘(‘ 이 여는 괄호만 거른다 했다. 여기서도 no==2면 관리자니까 쿼리문 라인의 {$_GET[‘no’]}자리에 0) or no = (2 가 들어가면 풀린다. 그런데 등호랑 여는 괄호도 거른다고 했으므로 등호는 like로 여는괄호는 주석처리로 – 공백은 특수 문자 %09로 바꿔주면 no=0)%09or%09no%09like%092%—%09이..