전체 글 76

Raspberry Pi 3로 WOL 패킷 전송

하루종일 데탑을 켜놓기엔 전기세 아깝고 하루종일 돌아가고 있는 라즈베리 파이 서버를 이용해서 WOL을 구현하면 어떨까 싶어 환경을 만들었다. 참고로 라즈베리파이에 외부접근이 이미 설정되어 있는 전제 하에 작성된 글이다. 오직 WOL을 위해 라즈베리파이를 사서 OS도 올리고 포트포워딩도해주고 원격접속 설정도 해줄 거라면 iptime 공유기나 팀뷰어 등 유명한 기업들에서 이런 기능을 이미 지원하고 있기 때문에 그 쪽을 이용하는 것이 용이하다. WOL은 Wake On Lan으로 특수한 매직 패킷으로 원격에서 부팅하는 기술이다. 워낙 유명한 기술이기 때문에 팀뷰어나 iptime에서 기능을 다 지원하고 있다. 팀뷰어와 iptime이 지원하는 WOL의 형태는 다음과 같다. 팀뷰어의 경우 외부의 어느 포트와 원격 부..

Raspberry Pi 2019.12.24

Webhacking.kr(old) 52번

리뉴얼 전의 웹해킹 문제를 풀어본 사람이라면 리뉴얼 전 문제에서 어느정도 힌트를 찾을 수 있다. 이전 문제는 입력 벡터 하나에 파라미터로 헤더에 특정 값만 삽입하면 클리어되었기 때문에 해당 문제의 기술이 언제 쓰이는가에 대한 시나리오 적인 요소를 추가해서 리뉴얼한게 의도가 아닌가 싶다. admin 페이지와 proxy 페이지 가 존재하고 admin 페이지에서 인증 로그인을 실패했을 때 admin페이지의 소스코드 URL을 볼 수 있다. 소스코드는 아래와 같다. view-source 세션이 존재할 때와 존재하지 않을 때, 두 부분으로 나눠서 분석한다. 먼저 세션이 존재하지 않을 때에 소스 if($_SERVER['PHP_AUTH_USER']){ $id = $_SERVER['PHP_AUTH_USER']; $pw ..

Webhacking.kr(old) 4번

웹케알이 리뉴얼 되었다. 너무 옛날 버전의 취약점은 약간씩 고쳐지고 문제의도를 잘 모르겠는 문제들도 개편되었다. 4번도 이에 해당된다. 기존문제는 base64로 인코딩된 값을 풀어 나오는 sha1의 값을 rainbow 테이블로 찾아내면 되는 문제였다. sha1의 레인보우 테이블은 웹에서 지원하는 경우가 많기 때문에 쉽게 찾을 수 있었지만, 리뉴얼 되면서 의도된 바는 레인보우 테이블이 어떻게 만들어지는 지에 대한 원리를 직접 느껴보길 바라는 의도인 것으로 보인다. 바뀐 문제를 풀어보자. Password [view-source] $hash = rand(10000000,99999999)."salt_for_you"; 10000000에서 99999999 사이의 숫자를 하나 뽑아 salt_for_you와 합친다. ..

[Tools] Web, Mobile 취약점 진단 분석 Tool & 설정

Web, Mobile 취약점 진단 분석 Tool & 설정 포맷하고 생각해내기 귀찮음. USB 복구 드라이브 만들자. NetWork Tool WireShark sslyze (환경변수 설정) ncat (윈도우 방화벽 디바이스 허용/환경 변수 설정) Proxy Tool Fiddler Tools > HTTPS > decrypt HTTPS traffic Rules > Remove All Encodings Burp Suite Community 크롬 확장 프로그램 EditThisCookie 언어 및 플랫폼 java jdk 8 Python 2.x, 3.x (2.x, 3.x 둘 다 설치 후 환경변수 설정 / 2.x의 python.exe를 python2.exe로 변경) adb(sdk manager) (환경변수 설정) 안드..

Web,Mobile/Tool 2019.11.05

[LOS] siren

소스코드 분석 1. $db = mongodb_connect(); > DB 환경 MongoDB 2. if($result['pw'] === $_GET['pw']) solve("siren"); > 요청값과 반환 값을 엄격한 비교. pw를 알 필요가 있으므로 Blind SQL Injection 시도 문제 풀이 pw 값을 알아야 하므로 $ne를 사용하여 인증우회 할 수 없다. 이번엔 부등호인 $gt를 이용하여 pw 값을 한자리 씩 알아낸다. 다음과 같이 요청한다. ?id=admin&pw[$gt]=3 ?id=admin&pw[$gt]=1 두 번의 요청으로 pw가 1보다는 크지만 3보다는 작다는 것을 알 수 있다. pw의 첫 글자는 1이거나 2일 것이다. 이런 식으로 참과 거짓으로 패스워드 값을 유추해 나간다. 부등호..