본문 바로가기

전체 글202

[Webhaking.kr] old 16번 16번 문제이다. php 문제이다보니 소스 코드를 확인해보자. 페이지 소스코드를 보자. 여기서 주의해야 할 부분은 부분이다. 코드를 해석해보면 mv 함수으 경우, 100, 97, 119, 115, 124를 cd에 넘겨주게 되면 별이 움직이는 스크립트이다. 아스키코드로 넘겨주는 것 같다는 생각이 들었다. 확인해보니 100: d 97: a 119: w 115: s 124: |(파이프) 이제 키보드를 이용하여 눌러보자. 문제를 풀었다. 2021. 9. 30.
[Webhaking.kr] old 26번 26번 문제에 들어가면 'view-source'만 있다. GET 형식으로 받은 id 값이 admin이면 풀리는 문제인 것 같다. 하지만 조건문보다 위에 preg_match 함수로 admin이란 값을 필터링하고 있기 때문에 admin이란 값을 넣어줄 수 없을 것 같다. 또한, 그 밑에 id의 값을 urldecode() 함수를 통해서 변조시키는 것을 확인할 수 있다. 그럼 admin의 값을 url 인코딩으로 입력해보다. url 인코딩 표를 이용해서 admin을 바꾸면 %61%64%6D%69%6E의 값이 된다. 이 값을 id로 입력해보자. no! 라는 값이 나온다. 맨처음 조건절에서 preg_match() 함수의 막힌 것 같다. 그 이유는 웹서버와 브라우저 사이에서 데이터를 교환할 때 브라우저는 폼에서 입력받.. 2021. 9. 29.
[Webhaking.kr] old 24번 24번 문제이다. 아래의 화면처럼 'client ip'와 'agent' 옆을 보니 사용자의 환경을 뜻하는 것이도고, 'client ip'는 난수가 들어가있는 것처럼 보였다. 그리고 'Wrong IP!'까지 현 화면에서는 문제를 풀 수 없는 것들만 보였다. 처음 화면에서는 아무것도 발견할 수 없었다. 따라서 'view-source'에 들어가서 소스코드를 확인해보기로 했다. 아래 화면은 24번 문제의 소스코드이다. 문제를 풀기 위해서는 쿠키 하나를 추가시켜줘야 한다. "EditThisCookie"라는 확장 프로그램을 이용해서 'REMOTE_ADDR'를 추가시켰다. REMOTE_ADDR에 값을 넣어서 ip 값을 127.0.0.1이 출력되게 하려면 "112277...00...00...1"을 넣어주면 된다. 쿠키.. 2021. 9. 29.
[BAEKJOON] 1074번: Z 1074번 문제이다. 사진을 누르면 문제로 이동한다. 문제는 C++언어로 구현하였다. #include using namespace std; int n, r, c; int ans; void Z(int y, int x, int size) { if (y == r && x == c) { cout = x) { // 1사분면 탐색 Z(y, x, size / 2); // 2사분면 탐색 Z(y, x + size / 2, size / 2); // 3사분면 탐색 Z(y + size / 2, x, size / 2); // 4사분면 탐색 Z(y + size / 2, x + size / 2, size / 2); } else { ans += size * size; } } int main() { ios_base::sync_with.. 2021. 9. 27.
[BAEKJOON] 2018번: 수들의 합 5 2018번 문제이다. 사진을 누르면 문제로 이동한다. 문제는 C++언어로 구현하였다. #include using namespace std; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); int N; cin >> N; int result = 0; int num = 1; while (1) { long long temp = 1LL * (num * (num + 1) / 2); if (temp > N) break; if ((N - temp) % num == 0) result++; num++; } cout 2021. 9. 26.
[Anti-Virus] 9장, 플러그인 백신 엔진 개발하기 init: 플러그인 엔진을 초기화한다. uninit: 플러그인 엔진을 종료한다. scan: 악성코드를 검사한다. disinfected: 악성코드를 치료한다. viruslist: 플러그인 엔진이 진단/치료 가능한 악성코드의 목록을 알려준다. getinfo: 플러그인 엔진의 주요 정보를 알려준다 KavMain 클래스는 기본적으로 플러그인 엔진이라면 반드시 가져야 한다. 만약 KarMain 클래스가 선언되어 있지 않다면 백신 커널은 비정상적인 플러그인 엔진이라고 규정한다. ■ init 함수 : 플러그인 엔진 초기화 시점에 백신 커널에 의해 호출된다. 이 시점에서 플러그인 엔진은 각자의 악성코드 패턴 파일을 로딩, 필요한 메모리 확보 등의 일을 처리할 수 있다. plugins_path: 플러그인 엔진 초기화 악.. 2021. 9. 25.