webhacking.kr

webhacking.kr

[webhacking.kr] old-49 (sqli -> hex)

문제분석 & 풀이 이번 문제는 sql injection 문제인 것 같다. 소스를 보고 분석해보자. 1. lv 파라미터 값을 받고 정규표현식으로 검증하여 select , or , and , ( , ) , limit , 콤마 , order , cash , 공백 , 탭 , ' , " 이 들어갈 경우 프로그램을 강제종료한다. (2~4번줄) 2. 정규표현식 검증을 무사히 넘어간 경우 sql 쿼리를 실행하여 id 값을 받아온다. (5번줄) 3. id값이 "admin"이면 문제가 해결된다. 이번 문제는 이전에 풀었던 46번 문제와 유사한 문제인 것 같다. 1. lv=0 or id="admin" 1번 페이로드를 보내면 sql 쿼리의 where 문에서 lv=0이 무시되고 id가 "admin"인 레코드를 찾아서 "admi..

webhacking.kr

[webhacking.kr] old-47

문제분석 & 풀이 메일 제목과 함께 전송버튼이 있다. 메일 제목을 보면 "47번 문제의 flag"인데 아마도 내용에는 flag가 담겨있는 것 같다. 전송하면 보냈다는 문구만 나온다. 어떻게하면 메일의 내용을 읽을 수 있을지 고민하던 중 메일 참조(Cc)라는 것을 알게됐다. Cc는 메일참조로 수신인 뿐만 아니라 여러사람에게 참조하라는 의미로 메일을 추가로 전송하는 경우에 사용한다. Cc 이외에도 Bcc(숨은 참조)도 존재한다. To: Son Cc: Kane, Alli Bcc: secret_people subject: Football is fun~! 보통 위와 같은 양식으로 수신인, 참조인을 모두 포함하여 메일을 전송한다. 그렇다면 제목과 함께 Cc(참조)인을 붙여줄 수 있다면 어떨까? Cc로 나의 메일을 ..

webhacking.kr

[webhacking.kr] old-46

이번 문제도 sqli 문제인 것 같다. 소스를 봐보자. 소스를 분석해보자. 1. lv 파라미터로 값을 받고 addslashes() 를 통해 이스케이프 처리 후 여러번의 치환과정을 거친다. (2~8번줄) 2. lv에 select , 0x , limit , cash 가 들어있으면 프로그램 강제종료된다. (9번줄) 3. sql 쿼리를 실행하여 id, cash 값을 받는다. 4. id가 "admin" 이면 문제가 해결된다. lv 파라미터는 이스케이프 처리됐기 때문에 ' , " 등은 사용할 수 없을 것이다. 그리고 치환 과정을 보면 공백, / , * , % 는 모두 없애고 있어서 이것 또한 사용할 수 없을 것이다. 소스 분석 2번에서 언급한 것들 또한 사용할 수 없다. 이제 위 사실을 참고하여 공격 쿼리를 완성해..

webhacking.kr

[webhacking.kr] old-45 (sqli → addslashes)

문제분석 & 풀이sql injection 문구과 로그인 창이 있다. 써있는 값 그대로 로그인 해보니 guest 계정으로 로그인 됐다. 아마 admin의 계정으로 로그인하는 것이 목표인 문제라고 예상된다. /i",$_GET['id'])) exit(); if(preg_match("/admin|select|limit|pw|=|/i",$_GET['pw'])) exit(); $result = mysqli_fetch_array(mysqli_query($db,"select id from chall45 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}')")); if($result){ echo "hi {$result['id']}"; if($re..

webhacking.kr

[webhacking.kr] old-44 (OS Command Injection)

문제분석 & 풀이페이지에 접속하면 name을 입력하는 창이 나온다. 코드를 확인해보면, name을 POST 형식으로 서버에 전송한다. 다음으로 php 코드를 확인해보자. name으로 전송한 값을 $id에 저장하고 system 명령을 실행한다. 주석을 보면 목표는 ls 명령을 실행하는 것이라고한다. 우리가 이용할 취약점은 OS Command Injection이다. ○ OS Command Injection공격자가 임의의 시스템 명령어를 주입하여 서버단에서 원하는 명령을 실행하는 공격을 뜻한다. 웹 애플리케이션에서 system(), exec()와 같은 시스템 명령어를 실행할 수 있는 함수들이 이와 같은 취약점을 제공한다. 문제에서 system()를 사용하고 있고 $id에 대한 검증이 없으므로 OS Comman..

webhacking.kr

[webhacking.kr] old-43 (file upload)

문제분석 & 풀이웹쉘을 업로드하고 "cat /flag"를 실행하라는 미션이 주어진다. 웹 쉘 코드를 작성하고 업로드했다. wrong type 이라고 뜨면서 업로드가 실패한다. PHP 확장자 파일을 업로드 하지 못하게 검증하는 것 같다. 확장자 검증을 우회하기 위해 webshell.php 뒤에 .jpg 를 붙여서 업로드했다. 업로드 된다! 그러나 이 파일은 .jpg 파일이기 때문에 파일에 접근하더라도 웹 쉘을 실행할 수 없다. 중요한 사실은 확장자에 대한 검증을 수행하는 방식이 아니라 다른 방식으로 업로드 파일에 대한 검증을 수행한다는 점이다. 업로드 과정의 패킷을 잡아보자. 패킷 데이터 영역 부분을 보면, Content-Type이 image/jpeg이다. 여러 차례 테스트를 해보면 알 수 있지만, Con..

keyme
'webhacking.kr' 태그의 글 목록 (3 Page)