WEB/webhacking.kr (old) 52

webhacking.kr 5번

Join을 누르면 Access_Denied 창이 뜨고, Login을 눌렀을 때는 아이디와 패스워드를 입력하는 폼이 나온다. 이것저것 입력해봤지만, Wrong password만 출력되고 다른 반응이 없다. login하기전에 join을 해야될 것같아 /mem/join.php로 들어가봤다. bye창이 뜨고, 소스코드를 보니 이상한 문자들로 되어있었다 ! console창에 입력해 코드를 실행시켜보았다. l='a';ll='b';lll='c';llll='d';lllll='e';llllll='f';lllllll='g';llllllll='h';lllllllll='i';llllllllll='j';lllllllllll='k';llllllllllll='l';lllllllllllll='m';llllllllllllll='n';..

webhacking.kr 33번

Challenge 33-1 GET방식으로 변수 get에 hehe를 저장하여 전송한다. Challenge 33-2 POST방식으로 post와 post2 변수에 각각 hehe와 hehe2를 저장해 전송한다. POST POST2 이렇게 html 코드를 수정해서 전송해줄 수도 있지만, 나는 프록시를 이용해 문제를 풀었따. Challenge 33-3 GET방식으로 내 아이피주소를 전송한다. Challenge 33-4 이번에는 hint가 있다. time을 md5암호화한 값을 password에 넣어 GET방식으로 전송하면 된다. hint에 time이 나와있으니, hint에 나와있는 시간에서 좀 더 더한 값을 계속 전송하면 될 것같다. >>> import hashlib >>> hashlib.md5('1586023770..

webhacking.kr 57번

view-source 클릭 ~! isset() : 변수가 존재하면 true, 존재하지 않으면 false 리턴 $_GET['se']에는 select, and, or, not &, |, benchmark가 있으면 Access Denied가 출력된다. $_SESSION['id'], $_GET['msg'], $flag, $_GET['se']는 각각 chall57테이블의 id, msg, pw, op 칼럼의 값으로 삽입된다. 일단 문제를 풀기 위해서는 $flag값인 pw를 알아내야할 것같다. msg와 se에 이것저것 입력해봤지만 다른 오류메세지 없이 Done으로 출력된다. 따라서 출력값으로 반응을 보지않고, sleep함수를 이용해 반응속도(?)로 참인지 거짓인지 확인해야할 것같다 ʕ•̀ω•́ʔ 다음은 flag길이와..

webhacking.kr 45번

SQL Injection문제 진짜 많댜..( ˘・з・˘) mb_convert_encoding(문자열, 바꿀 인코딩, 현재 인코딩) : 문자인코딩을 바꿔주는 함수 GET방식으로 id와 pw를 받는데, 만약 admin,select, limit, pw, =, 가 포함되어있으면 필터링된다. $_GET['id']와 $_GET['pw']는 select문에 삽입되는데, $_GET['pw']는 md5로 인코딩되어 들어간다. 그리고, select문 출력값의 id가 admin이면 문제가 해결된다 ! 여기서 주목해야할 점은 mb_convert_ecoding함수에서 $_GET['id']의 문자인코딩을 'utf-8'로 바꿔주는 것과 addslashes함수이다. 멀티바이트를 사용하는 환경에서 백슬래쉬 앞에 %a1~%fe의 값이 ..

webhacking.kr 30번

./upload/ChU92oQ7XoBb/index.php?view_source=1 를 클릭했더니 php코드가 나왔다. $result 쿼리문에서 값이 출력되면 /flag를 보여준다는 내용이다. 그런데 이전 SQL Injection문제들과 다르게 쿼리문에 우리가 직접 삽입할 수가 없다.. (,,•ㅅ•,,) 파일 업로드 취약점인가 하고 py,php 확장자를 가진 파일을 업로드해봤지만 아무 반응도 없었다. 소스코드 외에는 취약점을 찾을만한게 없어서 계속 구글링해보니, mysqli_connect 함수에 아무런 파라미터값이 없는 것이 문제라는 것을 알게 되었따...ㄟ( ・◇・ )ㄏ 먼저 mysqli_connect 함수를 알아보자 ! mysqli_connect함수는 host, username, passwd, dbna..

webhacking.kr 44번

php코드를 해석해보면, POST방식으로 받은 id값을 1번째부터 5번째 글자까지 $id에 저장한다. 그리고 우리는 system함수를 통해 ls명령어를 실행시켜야한다. system함수안에서 2개의 명령어를 실행시키기 위해서는 첫번째 명령어 뒤에 세미콜론(;)을 붙여주면 된다. 따라서 $id에 ;ls를 입력하면 될 것같지만 !! {$id}뒤에 작은따옴표(')가 붙어있기 때문에 ';ls' 를 입력해줘야한다. 그리고, http://webhacking.kr:10005/flag_29cbb98dafb4e471117fec409148e9386753569e 에 들어가면 FLAG값 등장 ~~!~!! (๑˃؂˂๑)

webhacking.kr 40번

이번 문제도 SQL Injection문제인 것같다 (•ε•;) login을 하면, GET방식으로 no=1&id=guest&pw=guest가 전달되어 Success-guest라고 출력되는 것을 볼 수 있다. 이것저것 입력해본 결과, access denied와 Failure가 출력되는 것을 볼 수 있었다. no=1' or 1=1 -- &id=guest&pw=guest no=1' or 1=2 -- &id=guest&pw=guest -->no에서 or과 and가 필터링됨 no=1&id=guest' or 1=1#&pw=guest no=1&id=guest' or 1=2#&pw=guest -->id에서는 or과 and가 필터링되지 않음 no=2&id=guest&pw=guest no=2&id=admin&pw=admin..

webhacking.kr 4번

view-soure 클릭 ! sleep(지연시간) : 입력된 초만큼 php코드의 실행을 지연시키는 함수 $_SESSION['세션 변수이름'] : 세션이 생성되고 나면 세션 변수를 $_SESSION 배열에 등록할 수 있고, 생성된 변수는 $_SESSION['세션 변수이름']으로 접근할 수 있다. rand(최소값, 최대값) : 난수 생성기 코드를 해석해보면, 'chall4'라는 세션이 존재하고 'chall4'세션 값이 $_POST['key']와 같으면 문제가 해결된다. 값이 같지않으면 $hash는 10000000~99999999사이의 값 중 하나에 "salt_for_you"를 더한 값으로 설정된다. $hash는 'chall4'세션값이 되고, sha1해시로 500번 암호화한다. 그리고 그 500번 암호화된 값..

webhacking.kr 61번

문제 들어가자마자 보이는 view-source 클릭 ! 코드를 해석해보면, GET방식으로 id값을 받고, 값이 없으면 $_GET['id']는 guest가 된다. $_GET['id']에 (, ), select, from, ,(콤마), by, .(따옴표)가 존재하면 Acess Denied가 출력된다. 입력된 $_GET['id']는 select문에 들어가게 되는데, 이전 문제와 달리 $_GET['id']가 삽입되는 위치는 where절이 아니라 칼럼명 자리에 들어가게 된다. select {$_GET['id']} from chall61 order by id desc limit 1 => chall61테이블에서 $_GET['id']칼럼을 조회하는데, 검색결과를 id값의 내림차순으로 1행만 출력한다. 이 때, sele..

webhacking.kr 59번

역시 view-source 먼저 보기 ㅎㅅㅎ 코드를 해석해보면, $_POST['lid']와 $_POST['lphone']을 입력받고 이 값들을 select문의 id,phone칼럼의 값으로 쓴다. 이 때, $result['lv']이 admin이면 문제가 해결된다. $_POST['id']와 $_POST['phone']도 입력을 받는데, $_POST['phone']의 길이는 20을 넘으면 안된다. $_POST['id']에는 admin이 포함되면 안되고, $_POST['phone']에는 admin, 0x, hex, char, ascii, ord, select가 포함되면 안된다. ( Access Denied 출력 ) $_POST['id']와 $_POST['phone']은 insert문의 value에 삽입된다. 먼..