본문 바로가기

Back-end/Web hacking8

웹해킹 26번 문제 26번 문제 - 바로 소스코드가 뜬 문제. 먼저 preg_match함수를 몰라 구글링해보니, 패턴이 있으면 true를 반환하는 함수다. -body문에서의 첫번째 if문을 보면 get하여 얻어낸 id의 값이 admin이면 문제가 해결되는 것같다. - urldecode도 구글링해보니, URL인코드된 문자열을 디코드하는 함수이다. - 디코드가 나오는거 보니, url 조작이 필요한 것 같은 느낌이 들었다. admin을 encoding 하는 법을 몰라 구글링 해보니, 16진수로 바꿔서 앞에 %를 붙이면 되는 것 같아 admin을 인코딩한 결과 %61%61%6d%69%6e를 url뒤에 붙여 전달해보니 no라는 문구가 떴다. - 두번째 마지막 if문을 잘 보니 id가 admin 문자열일 때 해결된다는 것을 " " 을.. 2020. 9. 5.
웹해킹 24번 문제 24번 문제 - wrong IP라고 뜨는걸 보아하니 제대로된 ip주소를 cookie창을 통해 입력하면 되는 문제같다. - 소스코드를 보면 extrack 함수를 볼 수 있는데, 구글링 결과 $a[x] = 111;이 있을 결루 extrack(a)는 x=111이 되고, 배열속의 키 값을 변수화 시켜주는 함수라고 한다. - str_replace는(변경하려는 대상 문자, 변경하려는 문자, 변수가 바꾸고자하는 문자열) 의 사용법을 가진 함수이다. - 첫번째 if문을 통해 ..은 ..으로 12와7. 그리고 0.는 공백으로 치환되는 것을 알 수 있다. - 두번 째 if문을 보면 ip가 127.0.0.1일 때 해결되는 것같은 뉘양스를 충기는 것을 알 수 있다. - 127.0.0.1을 입력했지만 달라지는 것은 없었다. 첫.. 2020. 9. 5.
웹해킹 14번 문제 14번 문제 - pw를 찾아내는 문제이고, ul변수에 해당 사이트의 url이 저장되어 있고, 다시ul에는 .kr의 인덱스 번호가 저장되어 있다. 다시 *30한 값이 ul의 값이다. ul의 값이 pw의 값과 같으면 해결되는 문제다. - url에서 .kr이 19번째에 있는 것을 알 수 있었다. 처음에 19*30을 한 570을 입력하니 틀렸다. 그래서 아래의 else 문에서 wrong 말고 ul을 출력할 수 있도록 소스코드 변경을 시도했지만 실패했다. - 구글링에 indexOf 함수가 어떤 특징을 가지고 있는지 더 알아보았다. - index 값을 리턴한다는 것을 알 수 있었다. - 처음의 구한 19는 index값으로 18이였다. - 18*30을 한 540이 정답이다. 2020. 9. 5.
웹해킹 17번 문제 17번 문제 - 위의 회색박스의 코드를 보면 unlock 변수에 계산이 안된 긴 수식이 있고 아래의 if문을 보면 pw가 unlock일 때 문제가 해결되는 것 같다. 그래서 네이버 공학 계산기에 복붙을 했는데^__^ 당연히 안돌아갔다. -그래서 unlock을 임의로 1로 바꾸어서 입력했는데 틀렸다. -그래서 True로 저장했는데도 틀렸다. - else문에 wrong이라고 출력하지 말고 unlock을 출력하도록 수정했는데도 틀렸다.(element창에서) - 마지막으로 consol창에서 alert(unlock)을 하자 계산한 값을 알아낼 수 있었고 그 값을 pw에 넣어 해결할 수 있았다. 2020. 9. 5.
웹해킹 16번 문제 16번 문제 - *표시와 관련된 코드가 위의 코드이다. cd값이 100,97,119,115일 때 별이 움직이고, cd값이 124일 때 문제를 해결할 수 있다는 것을 알 수 있었다. - 자판을 다 눌러보니 asdw가 별의 위치를 조절하는 키임을 알 수 있었다. - asdw를 눌렀을 때 생성되는 코드 - 키보드를 다 쳐봐서 D가 cd==100임을 알 수 있었고, A는 97, W는 119, S는 115, 나머지 하나를 찾기위해 노트북에 있는 모든 키를 다 눌러보아 |일 때 문제가 해결됨을 알 수 있었다. - 110,97,119,115,124는 아스키코드 값을 뜻하는 문제였고, 외우지 않은 나는 무식한 키보드 질로 풀 수 있었던 문제. 2020. 9. 5.
웹 해킹 10번 문제 10번 문제 - 위의 그림의 O를 클릭해 보면 오른쪽으로 움직이는 것을 확인할 수 있다. O를 goal에 도착할 때 까지 클릭을 해보니 문제를 풀 수 있었다. - 노가다..?성이 짙은 문제라 수상해서 cookie를 확인해 보았는데 별다른 힌트는 없었다. - 소스코드를 확인해 보았다. 10번째 라인의 onclick="this.style.left ...을 보면 O를 클릭하면 왼쪽으로 한 픽셀씩 움직인다는 것을 알 수 있었고, if(this.style.left == '1600px')을 보면 1600px에 다달았을 때 어떤 페이지로 이동한다는 것을 알 수 있었다. - O는 239칸에 위치함 (239를 1580으로 설정) - 해당 칸을 먼저 1580으로 바꾼 후 몇번의 클릭을 통해 1600px에 다다랐고 문제를 .. 2020. 9. 5.