전체 글

[Webhacking.kr] old-30 (X)

문제 문제풀이 데이터베이스 반환 결과가 존재할 때, flag 출력한다. 페이지에 접근하면 flag 출력되지 않는데, 데이터베이스 연결이 되지 않았거나 데이터가 존재하지 않아서이다. mysqli.connect() 함수에 아무것도 설정되지 않았다. 설정하지 않으면 php.ini에 설정된 디폴트 값을 전달한다. public mysqli::__construct( ?string $hostname = null, ?string $username = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null ) .htaccess 파일을 이용해 php.ini 파일 설정 값을 변경할 수 있다. php_v..

[Webhacking.kr] old-29

문제 flag는 다른 테이블에 있다. 문제풀이 테스트로 파일 하나를 올리면 아래와 같이 화면에 나타나며, 파일에 접근은 불가하다. burp suite로 잡아보면 filename 파라미터가 전송되는 것을 알 수 있다. ip와 time은 자동으로 설정된다. filename 파라미터를 조작하여 sql injection을 시도할 수 있다. 아래처럼 파라미터 조작해서 전송하면 변조된 값들이 화면에 보인다. time이 변조되어 전송되었다. filename="filename,1,'115.92.150.222')#" 화면에 나타나는 것과 다르게 ip주소는 세번째에 입력되어야 한다. 그리고 IP주소가 정확해야 전송된다. sql 쿼리에 맞지 않거나 IP주소가 틀리거나 삽입되는 컬럼 순서가 다르면 upload error! 가..

[Webhacking.kr] old-22

문제 로그인과 회원가입 기능이 존재한다. 문제풀이 guest/guest로 로그인하면 해시값을 확인할 수 있다. md5 복호화 결과, guestapple임을 알 수 있고, 비밀번호+apple이 해시값으로 만들어지는 것을 알 수 있다. import requests url = 'https://webhacking.kr/challenge/bonus-2/index.php' cookie = {'PHPSESSID':'bmvg2k4nh4momseflhkh18371h'} pw_len = 0 for i in range(100): params = {"uuid":"admin\' and length(pw)={}#".format(i),"pw":"123"} res = requests.post(url, cookies = cookie,..

[Webhacking.kr] old-21

문제 문제풀이 id:guest/pw:guest : login success id:admin/pw:123 : login fail id:admin’#/pw:123 : wrong password wrong password 반환할 때를 이용해 blind injection 수행이 가능하다. 비밀번호 길이 id : admin’ and length(pw)>30# / pw : 123 위와 같이 유추하여 id : admin’ and length(pw)=36# / pw : 12 -> wrong password 비밀번호 길이가 36임을 찾을 수 있다. 비밀번호 문자열 id : admin’ and ascii(substr(pw,1,1)=116# import requests url = 'https://webhacking.kr/c..

[Webhacking.kr] old-20

문제 문제풀이 2초마다 captcha 부분이 갱신된다. 바뀌는 captcha 부분을 빠르게 입력해서 제출하면 문제가 해결된다. submit 부분의 코드를 보면 아래와 같다. function ck(){ if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } if(lv5frm.captcha.value=="") { lv5frm.captcha.focus(); return; } if(lv5frm.captcha.value!=lv5frm.captcha_.value) { lv5frm.captcha.focus(); return; } lv5frm.submit(); } 새로고침 후..

[Webhacking.kr] old-19

문제풀이 admin을 입력하고 submit을 누르면 오른쪽과 같이 화면이 출력된다. guest를 입력하고 제출하면 아래와 같이 로그인이 되고, 쿠키가 설정된다. YjJmNWZmNDc0MzY2NzFiNmU1MzNkOGRjMzYxNDg0NWQ3Yjc3NGVmZmU0YTM0OWM2ZGQ4MmFkNGY0ZjIxZDM0Y2UxNjcxNzk3YzUyZTE1Zjc2MzM4MGI0NWU4NDFlYzMyMDNjN2MwYWNlMzk1ZDgwMTgyZGIwN2FlMmMzMGYwMzRlMzU4ZWZhNDg5ZjU4MDYyZjEwZGQ3MzE2YjY1NjQ5ZQ%3D%3D 문자열의 맨 뒤에 %3D%3D(==)가 설정된 것을 보아 base64로 인코딩 되어 있는 것 같다. base64 디코딩 하면 아래와 같은 문자열이 나온다. ..