본문 바로가기

분류 전체보기

webhacking.kr(old) 21번(실패) 들어가보니 이 화면이 나온다. guest, guest를 넣었더니 'login success'가 나왔다. 근데 진전이 없는 듯 했다. admin, admin을 넣었는데 login fail이었다. admin' or 1=1, 1을 넣어도 안 돼서 검색해 코드로 풀 수 있었다. 코드 보고 한번 더 공부를 해봐야겠다! 더보기
webhacking.kr(old)46번 오늘은 46번을 풀어봤다. 들어가보니 이 장면이 보인다. 제출을 눌러보니 이 화면이 떴다. 뭔진 모르겠으니 view-source를 누른다. 밑에 php코드만 살펴본다. lv에 addslash를 하고 공백, '/', '*', '%'을 없애버림을 확인할 수 있다. 또, select, '0x', '|'이런 게 들어가면 exit()한다고 한다. result에서는 lv인 것에서 id, cash를 고른다고 한다. result['id']가 admin이어야 solve된다고 한다. 일단 && id=admin을 넣으러 간다. %26%26id=0x61646D696E를 넣어봤다. 근데 잘 안 됐다. 그래서 && id=char(97,100,109,105,110)을 넣기로 했다. %26%26id=char(97,100,109,10.. 더보기
webhacking.kr(old) 45번 오늘은 webhacking.kr 45번을 풀어보았다. 일단 id와 pw가 guest로 되어 있다. view-source를 눌러서 본다. '/admin|select|limit|pw|=|\i'가 id, pw에 들어가면 exit한다고 한다. result['id']가 admin이어야 solve된다고 한다. 일단 표시한 부분을 보면 id가 id이고 pw가 pw의 md5인 것을 고르라고 한다. pw에 md5가 들어가는 걸 보면 일단 pw는 알아내기 힘들 것 같다. 코드를 보니 id와 pw에 각각 addslashes를 해준다고 한다. +addslashes()? 문자열에 특수 문자(ex ('), ("), (\) )가 포함되어 있다면 그 문자 앞에 '\'를 붙이는 역할 밑엔, mb_convert_encoding가 보인다.. 더보기
PE파일 분석-메모장 우리는 평소 메모장을 많이 씁니다. 그래서 PEview를 통해 메모장을 분석해봤습니다. -PEview에서 메모장을 열었습니다. :4D 5A가 먼저 적힘을 보아 little Endian을 통해, 시작점이 5A4D임을 확인할 수 있었습니다. :Value에서 ‘}’을 통해 표시한 부분에서 “This program cannot be run in Dos mode”라는 것을 보아 이 프로그램은 DOS 모드에서 실행될 수 없는 것을 볼 수 있습니다. -IMAGE_DOS_HEADER :Value에서 IMAGE_DOS_SIGNAATURE MZ라고 적힌 것을 보아, exe파일임을 확인할 수 있습니다. :e_magic필드에서 4D 5A로 PE파일 구조임을 확인할 수 있습니다. :e_lfanew필드-가리키는 0xF0으로 가면.. 더보기
webhacking.kr(old) 34번 34번 갑자기 이 알림창이 뜬다. 소스 코드를 봤는데 뭐라는건지 눈에 안 들어왔다. 난 맥북이라서 safari로 들어가 개발자 도구를 통해 소스코드를 봤다. 아까보다 눈에 보기 쉬워졌다. ++++이 부분은 그냥 탐색해보는 구간입니다 = 답이 아니란 소리++++ 여기에 초록색이 뜨길래 도메인에 3R^0c3hQ를 넣어줬는데 아니었다(머쓱) 콘솔창에 b()를 넣어 저게 뭔지 알 수 있도록 넣어봤다. 이것도 아님을 확인할 수 있다 ++++++++++++++++++++++헛발질 끝+++++++++++++++++++++ 소스코드를 보니, 다 정의하거나 return 밖에 없길래 alert를 검색해봤다. alert가 1개만 있는 것을 보니 제대로 짚은 것 같기도 하다. 아까 했던대로, b()를 콘솔창에 넣어보면서 해석.. 더보기
webhacking.kr(old) 58번 들어가면 흰 화면과 아래에 send버튼이 보임을 확인할 수 있다. cmd로 되어 있어, ls와 pwd, flag를 send해봤다. Admin만 된다고 하니 코드를 아래와 같이 바꿔봤다. 바꾼 후 flag를 넣었는데도 풀리지 않았다. 콘솔 창에 var username = "admin"; var socket = io(); socket.emit('cmd',username+":"+'flag'); socket.on('cmd', function(msg){ $('#messages').append($('').text(msg)); }); 를 쳐줬다. 대충 필요없는 부분만 버리고 쳤다. 근데 username : flag만 수정했다면 그냥 콘솔창에 코드 그대로 넣어도 된다. 입력하는 부분에 아무거나 쳤더니 위와 같이 나왔다.. 더보기
webhacking.kr(old) 39번 34번 들어가보니 text창과 제출, 그리고 소스를 보는 창이 있다. 바로 소스를 보러 갔다. 해석해보니 ‘\\’는 -> ' '로, " ' " - > " ' ' "로 바뀐다고 한다. select 1 from member where length(id) 더보기
webhacking.kr(old) 18번 18번 들어가면 이렇게 제출화면이 보인다. 1을 넣어봤는데, 의도치 않게 guest의 no=1임을 확인했다. 위를 보면 admin’s no =2임을 확인할 수 있다. Result = select id from chall18 where id='guest' and no=$_GET[no]인데, 아래를 보니 $result['id']=="admin"을 구해야 함을 확인할 수 있다. 근데 이미 id = guest라서 admin이 될 수 없다. And 연산으로 이미 안 되니, 뒤에 or admin인 것을 넣으면 admin이 됨을 확인할 수 있다. (0 or 1 = 1 이 되는 원리!) 때문에 도메인에서 no=(1이 아닌 숫자) or no=2임일 것이다. 공백을 우회하기 위해 %09 또는 %0a를 써서 풀었다. 문제를.. 더보기

반응형
LIST