본문 바로가기

WEB

[webhacking.kr] Challenge 6 이 문제의 핵심 부분이다. 여기를 보면 id와 pw에 있는 값을 20번 base64 인코딩을 하고 1은 !로, 2는 @로...치환시켜 cookie값으로 설정한다.아래에는 !를 1로, @를 2로..바꿔서 20번 base64 디코딩을 해서 id와 pw가 admin이 되면 문제가 풀린다고 되어있다. 그렇담 문제는 간단하다. admin을 base64로 20번 인코딩시켜서 쿠키값을 설정해주면 된다.그래서 파이썬으로 base64 인코딩하도록 짜고 돌렸는데 틀렸다. 일단 webhacking.kr에 있는 base64 encoder로 20번 클릭하여 나온 값으로 풀었더니 되었다.근데 아직도 왜 파이썬으로 돌린 값이 틀리게 나왔는지 모르겠다.이렇게 짜서 풀었을 때 값이 틀리게 나왔다. 그래서 한번 했을 경우, 두번했을 경.. 더보기
[Lord Of SQL injection] succubus → nightmare 음 전 문제에서 ereg함수 취약점을 알고 기분좋게 succubus로 왔더니 작은따옴표도 preg_match로 제낀다. 흑 일단 검색해서 알아본 것 중에 \를 통해 우회하는 방법이 있는 것 같다.http://security.stackexchange.com/questions/37749/no-single-quotes-is-allowed-is-this-sql-injection-point-still-exploitable 여기에 보면 질문자가 작은따옴표 우회하는 방법을 묻는데 답변자들이 다 \를 통해 우회하라고 한다. 사실 \를 통해 어떻게 우회하란건 지는 잘 모르겠지만 \가 힌트인 것 같다.계속 검색하다가 succubus 풀이까지 왔다ㅋㅋㅋhttp://bluehatsecurity.tistory.com/219 여.. 더보기
[Lord Of SQL injection] zombie_assassin → succubus 문제 소스코드를 보면 id든 pw든 다 '를 제낀다. 저기 if(@ereg(~);부분만 우회하면 될 거 같은데 그 전 문제들에서도 '를 우회하려고 검색해봤는데 마땅히 그렇다할 기법을 찾지 못했다. 이번에도 작은 따옴표 우회하는 방법을 검색해도 잘 모르겠다. 근데 왜 미처 함수에서 취약점을 찾자는 생각을 하지 못했을까. preg_match함수에 작은 따옴표를 넣어도 되는데 ereg 함수를 통해 제끼는 걸 보면 뭔가 있을 거 같다.ereg 치는데 바로 취약점이 연관되어 나온다.http://hackability.kr/entry/PHP-%EB%AC%B8%EC%9E%90%EC%97%B4-%ED%95%84%ED%84%B0%EB%A7%81-%ED%95%A8%EC%88%98ereg-eregi-%EC%B7%A8%EC%9.. 더보기
[Lord Of SQL injection] assassin → zombie_assassin 우선 소스코드가 간단해졌다. like 다음에 GET[pw]가 오니까 %이용해서 한자리씩 알아내면 될 것 같다. 우선 앞의 한자리만 노가다로 알아내보자pw의 맨 앞자리를 알아보기 위해 0부터 z까지 대입했는데 8%에서 Hello guest가 뜨고 아무것도 뜨지 않았다. admin과 guest의 pw가 겹치는 부분인가 보다. 겹치는 부분도 유의하며 코드를 짜서 돌려보자like 다음에 맞는 pw글자들은 코드 처음부분에 아무 값도 없는 변수 하나를 지정하고 그 변수에 차곡차곡 쌓아 이어붙이면 될 것이다. 더보기
[webhacking.kr] Challenge 18 우선 페이지 소스코드가 주어져있다.일단 no=1부터 넣어보자넣자마자 hi guest가 떴다. 그렇다면 admin의 no는 2라고 추측하고 때려보자일단 소스코드를 보면 space, tab 등 예외처리가 많다. 그냥 공백을 때리면 먹히질 않는다. 그러나 공백을 우회할 수 있는 코드에는 여러 가지가 있으니 찾아서 때리면 문제가 풀린다. ~.php?no=2%0bor%0bno=2 더보기
[Lord Of SQL injection] giant → assassin 우선 쿼리문을 보자마자 from과 prob_giant사이를 띄워주고 싶다. 근데 띄워줄려니 space도 막혔고 뭐 죄다 막혔다. 그리고 길이 제한도 해놔서 /**/도 해봤자 안될 거 같다.http://luxs1t.tistory.com/28 여기서 공백 우회를 하는 다양한 코드를 소개해준다. 이 중 예외처리 되지 않는 걸로 shit에 넣으면 풀린다. 더보기
[Lord Of SQL injection] bugbear → giant 우선 문제를 보면 no에 예외처리 되는게 전 문제에 비해 더 많아진 것 같다. and, or, substr, ascii, like, 0x도 예외처리가 된다. 우선 like가 예외처리 되는거에 가장 큰 걱정을 하며 일단 Hello admin을 뽑아내보자.일단 공백은 저번 문제에서 했듯이 /**/로 우회하고 or, and는 논리연산자로 우회한다. 이제 like가 문제인데 찾아보니 like우회는 strcmp, in 등등으로 우회할 수 있다는데 in 구문을 통해 우회하는 게 쉬워서 in으로 우회했다. (IN 구문에 대한 설명 http://makand.tistory.com/entry/SQL-IN-%EA%B5%AC%EB%AC%B8)이제 like 우회하는 방법을 알았으니 파이썬으로 짜서 돌려보자이번에도 pw길이는 8.. 더보기
[Lord Of SQL injection] darkknight → bugbear 다크나이트 문제. 갑자기 이전 문제들에 비해 난이도가 올라간 거 같다.우선 pw에서 '을 예외처리하고 no에서는 substr, ascii, = 포함되면 죄다 예외처리를 한다.pw에서 '를 예외처리하니 no 이후부터 쿼리를 작성에서 공격을 때려야겠다라는 생각이 들었다. 그런데 다시보니 no도 '을 예외처리한다.no 이후로부터 공격을 때려 푸는건 맞는 거 같은데 싱글 쿼터를 어떻게 우회하나 검색하다 결국엔 다른 사람의 풀이에서 답을 얻었다.http://bluehatsecurity.tistory.com/214여기서 보면 no는 숫자를 받으므로 더블쿼더(")를 이용해서 id를 입력한다는 것이다.오 된다.그럼 이제 pw의 길이를 확인해보자. 일단 8부터역시 pw의 길이는 8이다.이제 파이썬으로 짜서 돌리면 끝이다.. 더보기
[Lord Of SQL injection] golem → darkknight 소스코드를 보면 전 문제들과 똑같이 or 과 and가 안먹히니 논리 연산자로 때려야하는데 substr과 =을 예외처리해 버린다.일단 =은 'like' 로 우회한다고 본 기억이 맞는지 때려보았다.Hello guest가 뜬다.일단 substr 우회는 잠깐 던져두고 pw의 길이를 알아내자. 그 전 문제들 pw가 다 8자리길레 8부터 때려보았다.pw의 길이는 8자리이다.substr을 우회하기 위해선 어떻게 해야하나 바로 검색을 해보았다. http://itword.tistory.com/entry/blind-sql-injection-leftright-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9D%B8%EC%A0%9D%EC%85%98 여기에 substr을 우회하는 방법을 간략하고 이.. 더보기
[Lord Of SQL injection] skeleton → golem 쿼리문 마지막에 and 1=0이 붙는다.이런 식으로 항상 마지막에 붙는다. 그럼 주석처리를 하자ㅇㅅaㅇ ㅇㅅㅇr’ ~.php?pw=' or id='admin'%23풀렸다.and 1=0을 살려서 풀어보자~.php?pw=' or id='admin' or id='guest 더보기