Web 22

[Webhacking.kr] old-24

view-source 를 확인해보자. extract() 배열 속의 키 값들을 변수화 시키는 함수 $_SERVER 와 $_COOKIE 값을 변수화 $REMOTE_ADDR 클라이언트의 IP를 가져오는 PHP의 환경변수 $REMOTE_ADDR 값을 $ip 에 저장 $HTTP_USER_AGENT 클라이언트의 접속 환경 정보를 가져오는 PHP의 환경변수 $HTTP_USER_AGENT 값을 $agent 에 저장 htmlspecialchars() 특수 문자를 HTML 엔티티로 변환해주는 함수. 특정 문자는 HTML에서 특별한 의미가 있으며, 의미를 보존하려면 HTML 엔티티로 표시해야 함. ex) & -> & / " -> " / ' -> ' / &lt / > -> &gt $REMOTE_ADDR 값이..

Web/wargame 2021.11.21

[Webhacking.kr] old-01

user_lv 쿠키가 존재하지 않으면 SetCookie() 로 쿠키를 설정 is_numeric(파라미터) 지정한 파라미터가 숫자인지 아닌지 확인해주는 함수. 반환값은 bool, 숫자인 경우 true, 아닌 경우 false user_lv 쿠키 값이 숫자가 아니면 1로 설정 user_lv 쿠키 값이 4 이상이면 1로 설정 user_lv 쿠키 값이 3보다 크면 solve(1) 실행 즉, user_lv 쿠키 값을 3 초과 4 미만의 값으로 설정하면 문제가 해결될 것 같다. 개발자 도구로 user_lv 쿠키를 확인할 수 있다. user_lv 쿠키 값을 3.5로 변경하고, 새로고침 해주면 해결!

Web/wargame 2021.11.21

[Webhacking.kr] old-12

부분을 자세히 보면, 이렇게 이모티콘으로 난독화 되어 있는 걸 볼 수 있다. 이는 자바스크립트문을 이모티콘으로 인코딩하는 aaencode 기법이라고 한다. 디코딩 사이트를 통해 디코딩해보자! 복호화 사이트 https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html aadecode - Decode encoded-as-aaencode JavaScript program. ['_'] aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_'] Enter ... cat-in-136.github.io 위의 디코딩된 코드를 좀 정리해서 보면, var enco=''; var ..

Web/wargame 2021.11.11

[Webhacking.kr] old-26

GET 방식으로 id 값이 admin이면 문제가 해결되는 것 같다. 하지만 preg_match()로 admin을 필터링하고 있어서 no!라는 경고만 뜨게 된다. 코드를 다시 보면, GET 방식으로 전달받은 id 값을 urldecode()를 통해 다시 id 값에 대입하는 것을 알 수 있다. 그래서, 반대로 admin을 인코딩해준 값인 %61%64%6d%69%6e를 다시 id 값으로 전달해보면 자동으로 admin으로 디코딩이 되고, 이전과 같이 no!라는 경고만 뜨는 것을 알 수 있다. 따라서, admin을 2번 인코딩한 값인 %2561%2564%256d%2569%256e를 다시 전달해보면 해결!

Web/wargame 2021.11.07

[Webhacking.kr] old-20

일단 빈칸에 차례대로 정보를 입력해봤고, 마지막 빈칸은 오른쪽의 문자가 캡차인 것 같아서 그대로 입력해줬다. 그리고 Submit 버튼을 누르면, 이런 창이 뜨는데, 아무래도 처음 화면 상단의 time limit : 2 second 때문인 것 같다. 아무래도 2초 내에 정보를 입력하는 것은 불가능하다고 생각되어 일단 소스코드를 확인해봤다. id, cmt, captcha를 차례대로 입력하고, Submit 버튼을 클릭하면, ck() 가 실행된다. ck() 를 살펴보면, 만약 id, cmt, captcha 값이 공백일 경우 각각의 입력 빈칸에 커서를 두고, lv5frm.captcha.value 값이 lv5frm.captcha_.value 값과 같지 않은 경우에도 입력 빈칸에 커서를 둔다는 것을 알 수 있다. 따..

Web/wargame 2021.10.31

[Webhacking.kr] old-06

view-source 를 클릭해서 소스코드를 보자. 2개의 부분으로 나눠서 보려고 한다. user 라는 쿠키 값이 존재하지 않다면, guest 와 123qwe 를 변수 val_id 와 val_pw 에 각각 대입, for문을 통해 변수 val_id 와 val_pw 를 20번 base64 인코딩, 인코딩된 val_id 와 val_pw 를 str_replace() 를 통해 문자 치환, 변환된 val_id 와 val_pw 를 user 쿠키 값과 password 쿠키 값으로 지정. base64_encode() 64진법. 0부터 63까지 각각 문자를 지정해준 후, 그에 맞게 문자를 치환하는 방식. 즉, 이진 데이터를 ASCII 문자열로 바꾸는 인코딩 방식을 의미함. 참고 https://poci.tistory.com..

Web/wargame 2021.10.03

[Webhacking.kr] old-14

onclick=ck() function ck() 를 살펴보면, 변수 ul 에 document.URL (현재 페이지의 url) 을 대입 ul 에 ul.indexOf(".kr") 을 대입 indexOf() : 문자열에서 원하는 문자열을 검색해주는 내장함수로 위치값을 index로 반환 https://webhacking.kr/challenge/js-1/ 이므로 ul 은 18 ul=ul*30 이므로 ul 은 540 콘솔 창에서 ul 확인 540을 입력해주면 해결! url 이 ?ul*pw.input_pwd.value 인 ?540*540 으로 이동했음을 알 수 있음

Web/wargame 2021.09.26