본문 바로가기

반응형

분류 전체보기

(246)
NahamCon CTF 2022 Personel Writeup NahamCon CTF 2022 Personel, Flaskmetal_Alchemist Writeup 1. Personel Writeup Description A challenge that was never discovered during the 2021 Constellations mission... now ungated :) Personel 문제 페이지이다. 문제 페이지에서 Name을 검색할 수 있다. 이때 Name을 비워두고 검색하면 모든 사람의 내용이 출력된다. 먼저 문제를 풀기 위해 app.py 코드부터 확인해보자. #!/usr/bin/env python from flask import Flask, Response, abort, request, render_template import random..
webhacking.kr 문제풀이 완료 webhacking.kr 문제풀이 완료 드디어 webhacking.kr 문제풀이가 끝났습니다. 지금까지 응원해주신 분들께 감사합니다. Is_lab 해킹동아리도 화이팅! 자랑하고 싶은데 할 곳이 마땅치 않아서 이곳에 적어봅니다. 많은 것을 배웠고 계속 복습하면서 잊지 않게 노력하겠습니다! 리버싱 핵심 원리 악성 코드 분석가의 리버싱 이야기『리버싱 핵심 원리』. 프로그램의 내부를 깊이 들여다보고 조작할 수 있는 기법인 ‘리버싱’에 필요한 핵심 원리를 50여개 장을 통해 꼼꼼하게 설명한 책이다. 리버싱 기술의 단순한 소개에 그치지 않고, 각 기술의 핵심적인 원리를 깨닫게 하는 데 목표를 두고 있다. 무엇보다 저자 이승원이 안철수 연구소에서의 오랜 경험을 토대로 직접 작성한 다양한 코드는 물론 리버서라면 꼭 알..
webhacking.kr old 52번 문제풀이(Writeup) http 헤더 인젝션 문제. webhacking.kr old 52번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. admin page에 로그인하면 문제가 풀린다. admin page를 누르니 바로 로그인 창이 나온다. 혹시 해서 guest 계정으로 로그인 후 쿠키를 봤는데 쿠키로 푸는 문제는 아니었다. 취소를 누르니 view-code가 나와서 코드를 확인했다. 프록시를 눌러보니 request와 response가 나온다. 여기까지가 문제 사이트를 확인해본 결과이다. 이제 문제를 풀어보자. 먼저 코드를 살펴보면, id가 admin이고, 주소가 172.17.0으로 시작해야 한다. 이후 웹 인증 개념에 대해서 알아야 한다. 이번 문제는 기본 인증 취약점을 통해 해결하는 문제이다. 코드에서 보면 pw는 md5로 암호화하기 때..
webhacking.kr old 57번 문제풀이(Writeup) Timebase SQL Injection webhacking.kr old 57번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드를 보고 확인해보자. msg와 se를 확인하는데 msg와 se가 입력되면 addslashes를 통해 싱글 쿼터, 더블쿼더, Null, /에 역슬래시를 추가한다. 이후 select, and, or, not, &, \, benchmark 등을 se에서 필터링한다. flag는 mysql에서 3번째 컬럼에 존재하고 있다. 이후 0~100까지 랜덤으로 1이 나오면 테이블을 삭제한다. 이번 문제는 timebase SQL Injection을 통해 해결해야할 것으로 보인다. msg를 임의로 넣고 제출을 해보니 msg=123&se=1이 보인다. Python으로 exploit code를 작성해보자. import req..
webhacking.kr old 55번 문제풀이(Writeup) webhacking.kr old 55번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. rank를 누르니 많은 분들의 점수가 나오기도 한다. rank 페이지에 마지막 부분을 보니 쿼리문이 나와있다. 3번째 컬럼이 flag라는 것을 알았다. 하지만 컬럼명을 모르기 때문에 저번 문제에서 사용했던 procedure analyse() 함수와 limit를 사용해보자. limit 0, 1 procedure analyse() 를 하면 0번째 컬럼이 출력될 것이다. 그러니 limit 2, 1 procedure analyse() 로 입력해보자. 입력해보니 컬럼명이 p4ssw0rd_1123581321이라고 나온다. 이제 flag의 길이부터 찾아보자. Burp Suite에서 패킷 캡처 후 Interlude에서..
webhacking.kr old 53번 문제풀이(Writeup)와 procedure analyse() DB, 테이블 이름 확인 webhacking.kr old 53번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드를 보고 시작하자. 코드는 간단하다. answer가 hidden_table가 같으면 문제가 해결된다. 이때 preg_match를 통해 val 값 중 select, by 를 필터링하게 된다. 결과값은 result에 담고 select a from hidden_table where a=val의 구문을 쓴다. 어떻게 우회할까 검색을 하던 중에 select, union, information_schema 가 필터링 될 때 사용하는 SQL 함수로 procedure analyse()가 있다는 것을 알게 되었다. DB.테이블.컬럼이 출력된다. 테이블을 복사해서 answer에 넣었다. 문제가 풀렸다. procedur..
webhacking.kr old 35번 문제풀이(Writeup) webhacking.kr old 35번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. 코드가 있으니 힌트를 얻고 시작하자. phone과 id값을 같이 입력해야 한다. 이때 preg_match는 *, /, =, select, -, #을 필터링하고 있다. 그리고 id의 길이가 5보다 크면 안 된다. 이후 insert 문을 통해 id와 내 IP와 phone 값이 입력된다. 이후 DB에서 server IP와 내 IP가 같으면 통과한다. "insert into chall35(id,ip,phone) values('{$_GET['id']}','{$_SERVER['REMOTE_ADDR']}',{$_GET['phone']})" 현재 insert문은 위와 같다. "insert into chall35(id,..
webhacking.kr old 50번 문제풀이(Writeup) webhacking.kr old 50번 문제풀이(Writeup) 문제를 들어가면 위와 같이 출력된다. SQL Injection을 통해 푸는 문제이고, 코드가 있으니 먼저 확인해보자. 코드를 확인해보니, 방금 전에 푼 old 45번 문제와 유사하다. id와 pw를 받아서 \(역슬래시)를 붙이고, utf-8에서 euc-kr로 바꾸면서 멀티 바이트가 된다. 이후 foreach문을 사용하는데 PHP에서 foreach 문은 배열의 원소나, 객체의 프로퍼티 수만큼 반복하여 동작하는 구문입니다. 반복하면서 from, pw, (, ), 공백, %, =, >, < 를 필터링하고, union도 필터링한다. level 3가 되면 문제가 해결된다. 먼저 필터링에 대한 생각부터 했다. 공백이 필터링이 되니 %09로 우회하고, ..

728x90