본문 바로가기

반응형

분류 전체보기

webhacking.kr(old) 51번 admin page가 있다. 1과 1을 넣었는데 아니라고 한다. 소스를 보도록 한다. 뭔가 많은 듯 하다. 필요한 부분만 봐야겠다. dbconnecd하고, id에 addslash, pw에는 받아온 pw를 md5하는 듯 하다. 근데 여기서 true가 있으므로 바이너리로 반환하는 듯 하다. result가 맞아야 solve된다는 것을 알 수 있다. 근데 여기서, result가 SQL문임을 확인할 수 있다. 보통은 where id='1' and pw='1 or '1'으로 풀 수 있다. 하지만 md5가 들어가서 이렇게 쉽게 생각해선 안 되고, id에는 addslash(\)가 들어가서 우회가 쉽지는 않은 듯 하다. 그래서 md5 SQL injection을 검색해서 찾아봤다. true = false => false .. 더보기
Webhacking.kr(old) 24번 이번 문제는 wrong IP라고 적혀있는 것을 보니, IP주소와 관련 있나 보다. 위쪽 php코드를 보니, config.php와 관련 있는 것을 알 수 있다. 이제 아래쪽 php코드를 본다. 서버와 쿠키를 extract하고, ip와 agent(http_user_agent)를 정해준다. 만약 remote_addr이 있다면, ip에 htmlspecialchars를 반환하고, ..을 .으로, 12,7,0을 ip에서 없애는 것을 볼 수 있다. 다른 정보는 생략하고, ip가 127.0.0.1이어야 풀림을 확인할 수 있다. 근데 위에서 보면 12,7,0을 ip에서 없애고 ..을 .으로 바꾼다는 것을 알 수 있었다. 근데 여기서, str_replace() 함수는 처음에만 값을 검사하고 그 후 다시 저장된 값은 검사를.. 더보기
webhacking.kr(old) 1번 1번에선 이렇게 검정색인 화면을 볼 수 있다. 소스를 봤다. php부분이 2부분이 있는데 일단 윗부분을 보도록 한다. include가 있는 것을 보니, 저 파일과 관련 있는 행동을 하는 듯 하다. view source를 받아오면 소스를 볼 수 있고, cookie를 아래처럼 정하는 듯 하다. 아래쪽을 보니, 6보다 크면, cookie를 1로, user_lv가 5보다 커야 풀린다고 한다. 그럼 한 5와 6의 중간 5.5로 하면 될 듯 하다. 쿠키를 바꾸기 위해선 editThis cookie를 다운 받아도 되고, 그냥 코드보기에서 application부분의 쿠키로 가서 바꿔도 된다. 이렇게 바꾸고 새로고침을 한다. 더보기
webhacking.kr(old) 54번 54번에선 저 빨간색 부분이 바뀌다가 결국 마지막엔 ?로 바뀐다. 일단 script를 본다. function run(){ if(window.ActiveXObject){ try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { try { return new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) { return null; } } }else if(window.XMLHttpRequest){ return new XMLHttpRequest(); }else{ return null; } } x=run(); function answer(i){ x.open('GET','?m='+i,false); x.send(null).. 더보기
webhacking.kr(old) 19번 19번에 들어가면 이렇게 id와 제출 버튼이 있다. 그대로 제출을 눌렀더니, 나보고 admin이 아니라고 한다. 근데 이건 다른 문제와 달리 길이제한이 있는 듯 하다. a를 누르고 제출했는데 이 화면이 떴다. logout을 눌러줬는데도 돌아가지진 않았다,,, 그래서 id=1을 넣어보았다. hello 1로 바뀐 것을 볼 수 있다! 그래서 좀 설레는 마음으로 id=admin을 넣어주었다. 아니라고 한다. admin 중간에 %00을 넣어보았다. 풀렸음을 확인할 수 있다! 더보기
webhacking.kr(old) 11번 11번에 들어갔더니 Wrong이 보인다 view-source를 눌러보도록 한다 pat에다가 [1-3] 중에 하나 [a-f] 중에 하나 골라서 5번 _(.은 +역할) *: 0번이상 반복 서버주소 * \t는 tap p+tap+a+tap+s+tap+s 을 넣어준다고 한다. pat이 val과 같으면 solve된다고 한다. 그래서 문제의 url에 이렇게 덧붙여준다. 더보기
webhacking.kr(old) 10번 3개의 띠(?)가 있다. 일단 f12를 통해 코드를 본다. 코드를 보니, onmouseover이 있다. 대충 클릭하면 1씩 오른쪽으로 움직이는 듯 하다. 근데 O가 1600에 있어야 풀림을 확인할 수 있다. 그래서 이렇게 1을 1599로 변경했다. 마우스를 갖다대면 yOu로 된다. 이를 클릭하면 solve가 된다. 이미 풀었던 거라 이렇게 뜬다. 더보기
webhacking.kr(old) 6번 6번 문제에 들어가면 이렇게 view-source와 ID, PW가 적혀 있다. 일단 소스를 보도록 한다. 일단 php코드를 보니, id, pw를 base64_encode해야 하는데, 이를 20번 반복해야 함을 확인할 수 있다. 또한 1id와 pw에서 ~8을 각각 다른 문자로 대체함을 확인할 수 있다. decode또한 20번 반복함을 확인할 수 있고, 일단 id가 admin이어야 하고 pw가 nimda여야을 확인할 수 있다. 이렇게 온라인 컴파일러로 코드를 작성해 인코딩한다. user와 password에서 setcookie함을 확인할 수 있다. id와 pw는 명시되어 있으니 20번 인코딩해보도록 한다. php코드를 그대로 사용해도 될 것 같아 코드를 사용한다. id를 20번 인코딩한 결과는 아래와 같다. .. 더보기

반응형