Season 1/워게임
-
- md5() 취약점에 관련한 문제로 보인다. - Start - get source - 패스워드가 $ps = mysql_real_escape_string($_POST['ps']); 을 통해 필터링 되는 것을 확인 - 패스워드는 md5($ps, true); 함수를 통해 MD5해시 값으로 변환되어 SQL쿼리문이 된다. - 이때, 파라미터'true'가 설정된 md5함수는 SQL문에서 사용될 때, SQL Injection 공격에 취약하게 된다. - 파라미터'true'는 raw_output=true 라는 의미로 16진수 문자열대신 바이너리 형태로 해시 값를 반환하게 된다. - 따라서 SQL쿼리가 참이 되도록 하는 바이너리 형태의 md5값의 입력 문자를 찾으면 문제를 해결할 수 있다. - 구글링을 통해 'DyrhG..
Wargame.kr - md5 password- md5() 취약점에 관련한 문제로 보인다. - Start - get source - 패스워드가 $ps = mysql_real_escape_string($_POST['ps']); 을 통해 필터링 되는 것을 확인 - 패스워드는 md5($ps, true); 함수를 통해 MD5해시 값으로 변환되어 SQL쿼리문이 된다. - 이때, 파라미터'true'가 설정된 md5함수는 SQL문에서 사용될 때, SQL Injection 공격에 취약하게 된다. - 파라미터'true'는 raw_output=true 라는 의미로 16진수 문자열대신 바이너리 형태로 해시 값를 반환하게 된다. - 따라서 SQL쿼리가 참이 되도록 하는 바이너리 형태의 md5값의 입력 문자를 찾으면 문제를 해결할 수 있다. - 구글링을 통해 'DyrhG..
2021.06.04 -
SQLi 공격이 문제가 나왔다. if($_GET['id'] && $_GET['pw']){ $db = dbconnect(); $_GET['id'] = addslashes($_GET['id']); $_GET['pw'] = addslashes($_GET['pw']); $_GET['id'] = mb_convert_encoding($_GET['id'],'utf-8','euc-kr'); foreach($_GET as $ck) if(preg_match("/from|pw|\(|\)| |%|=|>|| \', \", \\, \0\0 preg_match 함수 : union 지금까지는 못봤던, mb_convert_encoding 함수가 보였다. 해당 mb_convert_encoding($_GET['id'],'utf-8','e..
[Webhacking.kr] Old - 50 Write UpSQLi 공격이 문제가 나왔다. if($_GET['id'] && $_GET['pw']){ $db = dbconnect(); $_GET['id'] = addslashes($_GET['id']); $_GET['pw'] = addslashes($_GET['pw']); $_GET['id'] = mb_convert_encoding($_GET['id'],'utf-8','euc-kr'); foreach($_GET as $ck) if(preg_match("/from|pw|\(|\)| |%|=|>|| \', \", \\, \0\0 preg_match 함수 : union 지금까지는 못봤던, mb_convert_encoding 함수가 보였다. 해당 mb_convert_encoding($_GET['id'],'utf-8','e..
2021.06.03 -
마우스를 따라오는 슬라임이 있는 페이지가 나왔다. 슬라임이 움직이면 Score도 증가가 되었다. 랭크 페이지가 있길래 들어가보니, Insert문이 밑에 나와있었다. 게임이 종료가 된 후 DB에 저장이 될 때, 저 Insert문이 작동되는 것으로 추측이 된다. Score 부분에도 a태그로 되어 있어서 클릭해보니, 서버에 score 파라미터를 보내고 있었다. 그래서 혹시나 해서 점수 뒤에 작은 따음표를 넣어서 서버로 보내니, 'no hack'이 출력이 되었다. 입력값에 대한 검증을 한다는 것을 확인을 하고, 나는 어떤 문자를 검증하는지 확인하였다. 몇가지 테스트를 해보니, 작음 따음표와 큰 따음표에 'no hack'를 출력하였다. 생각을 해보니, 점수는 INT 타입으로 들어가니 작음 따음표와 큰 따음표가 들..
[Webhacking.kr] Old - 55 Write Up마우스를 따라오는 슬라임이 있는 페이지가 나왔다. 슬라임이 움직이면 Score도 증가가 되었다. 랭크 페이지가 있길래 들어가보니, Insert문이 밑에 나와있었다. 게임이 종료가 된 후 DB에 저장이 될 때, 저 Insert문이 작동되는 것으로 추측이 된다. Score 부분에도 a태그로 되어 있어서 클릭해보니, 서버에 score 파라미터를 보내고 있었다. 그래서 혹시나 해서 점수 뒤에 작은 따음표를 넣어서 서버로 보내니, 'no hack'이 출력이 되었다. 입력값에 대한 검증을 한다는 것을 확인을 하고, 나는 어떤 문자를 검증하는지 확인하였다. 몇가지 테스트를 해보니, 작음 따음표와 큰 따음표에 'no hack'를 출력하였다. 생각을 해보니, 점수는 INT 타입으로 들어가니 작음 따음표와 큰 따음표가 들..
2021.06.02 -
[WEB] csrf-1 문제풀이 CSRF(Cross-site request forgery) 취약점은 웹사이트 취약점 공격방법중 하나로, 사용자가 자신의 의지와는 상관없이 공격자가 의도한 수정, 삭제, 등록 행위 등 특정 웹사이트에 요청하게 하는 공격이다. 문제를 확인해보자. 입력받은 URL을 확인하는 봇이 구현된 서비스에서 CSRF 취약점을 이용한 FLAG 획득 문제이다. 접속해보자. csrf 페이지에 접속해보자. csrf 페이지에 접속하면 csrf 파라미터로 alert(1)를 실행하는 스크립트 구문을 전달한다. 응답 화면에서는 script 구문이 필터링된 것을 볼 수 있다. -> alert(1) memo 페이지에 접속해보자. memo 페이지에 접속하면 memo 파라미터로 hello를 전달하고, 응답 화..
[dreamhack] csrf-1 문제풀이[WEB] csrf-1 문제풀이 CSRF(Cross-site request forgery) 취약점은 웹사이트 취약점 공격방법중 하나로, 사용자가 자신의 의지와는 상관없이 공격자가 의도한 수정, 삭제, 등록 행위 등 특정 웹사이트에 요청하게 하는 공격이다. 문제를 확인해보자. 입력받은 URL을 확인하는 봇이 구현된 서비스에서 CSRF 취약점을 이용한 FLAG 획득 문제이다. 접속해보자. csrf 페이지에 접속해보자. csrf 페이지에 접속하면 csrf 파라미터로 alert(1)를 실행하는 스크립트 구문을 전달한다. 응답 화면에서는 script 구문이 필터링된 것을 볼 수 있다. -> alert(1) memo 페이지에 접속해보자. memo 페이지에 접속하면 memo 파라미터로 hello를 전달하고, 응답 화..
2021.06.02 -
[WEB] image-storage 문제풀이 파일 업로드 취약점이란 파일 업로드 기능이 존재하는 웹 어플리케이션에서 확장자 필터링이 제대로 이루어지지 않았을 경우 공격자가 악성 스크립트 파일(웹쉘)을 업로드하여 해당 웹쉘을 통해 원격에서 시스템을 제어할 수 있는 취약점을 말한다. 문제를 확인해보자 PHP로 작성된 이미지 저장소를 이용하여 파일 업로드 취약점을 동작시키고, flag를 획득하는 문제이다. 접속해보자. 업로드를 성공시켜야 하니 Upload 페이지를 들어가보자. 이런거 또 파일 바로 안올려보면 섭섭하지. 하수들은 업로드 구간이 보이면 웹쉘부터 때려박지만 나는 부끄럼이 많기 떄문에 print 구문부터 올려볼거다. php 구문으로 echo에 작성된 내용을 출력하는 JJANG.py 파일을 생성한다. ..
[dreamhack] image-storage 문제풀이[WEB] image-storage 문제풀이 파일 업로드 취약점이란 파일 업로드 기능이 존재하는 웹 어플리케이션에서 확장자 필터링이 제대로 이루어지지 않았을 경우 공격자가 악성 스크립트 파일(웹쉘)을 업로드하여 해당 웹쉘을 통해 원격에서 시스템을 제어할 수 있는 취약점을 말한다. 문제를 확인해보자 PHP로 작성된 이미지 저장소를 이용하여 파일 업로드 취약점을 동작시키고, flag를 획득하는 문제이다. 접속해보자. 업로드를 성공시켜야 하니 Upload 페이지를 들어가보자. 이런거 또 파일 바로 안올려보면 섭섭하지. 하수들은 업로드 구간이 보이면 웹쉘부터 때려박지만 나는 부끄럼이 많기 떄문에 print 구문부터 올려볼거다. php 구문으로 echo에 작성된 내용을 출력하는 JJANG.py 파일을 생성한다. ..
2021.06.02 -
문제 페이지에 들어가보니, admin 페이지로 넘어가는게 미션인 듯하다. here is proxy just for fun 부분의 proxy를 클릭하니, 문제 서버에서 프록시를 해주는 것으로 판단이 된다. admin페이지로 넘어가니, 로그인을 하라고 해서 일단 내가 알고 있는 guest/guest를 입력해봤다. 아무 소득이 없었다. 그래서 혹시 쿠키에 뭔가 저장이 됬는지 확인을 해봤는데, 아무것도 없었다. 우연히 로그인 취소 버튼을 클릭하니, 저런 사이트가 나왔다. include "config.php"; if($_GET['view_source']) view_source(); if($_GET['logout'] == 1){ $_SESSION['login']=""; exit(""); } 로그아웃 시 login ..
[Webhacking.kr] Old - 52 Write Up문제 페이지에 들어가보니, admin 페이지로 넘어가는게 미션인 듯하다. here is proxy just for fun 부분의 proxy를 클릭하니, 문제 서버에서 프록시를 해주는 것으로 판단이 된다. admin페이지로 넘어가니, 로그인을 하라고 해서 일단 내가 알고 있는 guest/guest를 입력해봤다. 아무 소득이 없었다. 그래서 혹시 쿠키에 뭔가 저장이 됬는지 확인을 해봤는데, 아무것도 없었다. 우연히 로그인 취소 버튼을 클릭하니, 저런 사이트가 나왔다. include "config.php"; if($_GET['view_source']) view_source(); if($_GET['logout'] == 1){ $_SESSION['login']=""; exit(""); } 로그아웃 시 login ..
2021.06.01