본문 바로가기

WEB

[Lord Of SQL injection] vampire → skeleton LOS 문제 화면 볼 때마다 사진보고 쫄았던 뱀파이어다. str_replace함수가 사용된다. $_GET[id]에서 admin을 찾아 “”으로 바꿔준다.(admin을 없앰) 근데 어차피 대문자로 우회가 될 거 같다.대문자로 우회해서 풀자 더보기
[Lord Of SQL injection] troll → vampire 문제를 보면 admin을 예외처리 하는데 id값을 admin으로 맞추란다. 계속 보다가 든 생각이 그전 문제들을 푼다고 우회기법 찾아볼 때 대문자로 우회한다는 걸 자주 봤는데 볼 때마다 그냥 아아 그렇구나 하고 넘어갔는데 그게 이거인 거 같다.대문자로 때려보자! 더보기
[Lord Of SQL injection] orge → troll 우선 문제는 이전 문제(darkelf)에서 Blind SQL injection을 때려야하는 거 말고는 변한 게 없다. 일단 Hello admin을 뽑아보자이제 id가 admin인 곳의 pw 길이를 확인해보자id='admin' && length(pw) 더보기
[Lord Of SQL injection] darkelf → orge 우선 제일 먼저 보이는 부분이 pw에서 ‘or’과 ‘and’를 예외처리해주는 부분이였다. 저걸 우회하려면 어떻게 해야 하나 순간 막막했지만 그냥 일단 ‘or’,‘and’가 안되는 거니까 논리연산자로 함 때려보자 ~.php?pw=’%20||%20id=’admin바로 풀려서 당황했지만 논리연산자로 우회하는 거였다! 더보기
[webhacking.kr] challenge 21 우선 문제 페이지의 소스코드이다.no와 id,pw가 있다.no=1no=2다행이다. no=3에서 False가 떴다. 그럼 이제 length로 id의 길이를 알아보자no=1의 id의 길이를 우선 알아보기 위해 일단 그냥 admin이 다섯글자니까 5를 먼저 넣어봤다.오 바로 True가 떴다. 하지만 no=2에서도 id길이가 5이겠지음 역시 하지만 이로써 id=admin인 곳의 pw를 알아내면 될 거 같다는 느낌이 더 확실히 들었다.우선 no=1인 곳의 id의 첫글자는 a가 아니다.no=2에서 첫글자 a가 True로 떴다. 혹시나 싶으니 정말 admin이 맞는지 확인해보자두번째 글자 'd'세번째 글자도 'm' 이쯤이면 되었다. no=2의 id는 admin일 것이다! 이제 pw가 몇 글자인지 확인해보자우선 pw는.. 더보기
[Lord Of SQL injection] wolfman → darkelf 우선 문제는 단순히 id=’admin’이면 문제가 풀린다. orc에서 파이썬 코드 짜는데 헤매서 그런가 난이도가 갑자기 낮아진 것 같다.일단 처음에 id가 guest라고 되어있으니 pw값을 거짓으로 넣고 id=’admin’을 때리면 될 것 같다. 그래서 했는데 No whitespace ~_~가 뜨길 레 다시 보았더니 공백처리를 우회해야 한다.http://lanian.tistory.com/entry/SQL-%EC%9D%B8%EC%A0%9D%EC%85%98-%EC%9A%B0%ED%9A%8C-%ED%8C%A8%ED%84%B4 여기 sql injection 우회가 잘 나와 있다. 여길 참고하여 나는 공백부분을 /**/로 처리하였다. .php?pw=’/**/or/**/id=’admin그런데 풀고나서 든 생각이 i.. 더보기
[Lord Of SQL injection] orc → wolfman id가 admin이라고 처음부터 되어있다. 문제는 pw인데 우선 addslashes가 무슨 함수인지 알아보자http://www.w3schools.com/php/func_string_addslashes.asp 여기에서 예제를 돌려보면 이 함수가 하는 일을 쉽게 파악할 수 있는데 ‘, “, \, NULL로 문자열을 구분하는 DB 시스템에서 하나의 문자열 안에 따옴표가 들어가면 오류가 발생할 수 있기 때문에 이를 막아주기 위해 백슬래쉬를 추가시킨다.(http://zzaps.tistory.com/45)여기서 Hello admin을 띄워주는 부분은 addslashes 전이다.이렇게 pw값이 TRUE인 상황에서는 Hello admin이 뜨고pw값이 FALSE인 상황에서는 Hello admin이 뜨지 않는다.이처럼 .. 더보기
[Lord Of SQL injection] goblin → orc 쿼리문에서 id값을 guest라고 박았다..!어떻게 풀어야하나일단 id가 guest이면 no의 값이 무엇인지 확인해보자.no=0부터 넣어봤는데 no=1일 때 Hello guest 라고 뜬다. 그렇다면 admin의 no는 0이겠지?!(두근)그렇담 id=admin인 부분은 no=0이라고 추정할 수 있다. 그래서 no=1’or’0으로 공격을 시도했는데아 예외처리에서 걸린다.다 ‘,“,`다 예외처리 해주는데 보면 space는 빠져있다. 우선 id=’guest’ and no=2라고 아예 FALSE로 만들고 or no=0을 붙여 공격해보자!다시 어떻게 하면 좋을지 생각해보자. id=‘admin’이라고 해보자! 아 맞다 예외처리계속 생각을 하다 크게 간과한 부분이 있다. admin의 no가 0이라고 왜 그렇게 확신을.. 더보기
[Lord Of SQL injection] cobolt → goblin 우선 문제를 보면 id와 pw를 받아와서 그에 해당하는 id 컬럼의 값이 admin이면 문제가 풀린다. 쿼리문을 보면 pw는 ma5(‘{$_GET[pw]}’)인데 md5가 무엇인지 검색해보았다.http://php.net/manual/kr/function.md5.php 여기를 참조해보면 문자열의 md5 해시를 계산한다는데 16진수를 32문자로 해시를 반환한다고 한다. 그리고 md5 인자의 불린값의 기본값은 FALSE라고 한다. 그러면 여기서 드는 생각이 TRUE인 값으로 하면 pw는 해결되는 것 아닌가?그래서 1’or’1을 md5해시값으로 만들어 때려보려 했는데 계속 실패했다. http://bbolmin.tistory.com/77 여기를 참고해보면 내가 생각한 것처럼 sql injection을 할 수 있는.. 더보기
[Lord Of SQL injection] gremlin → cobolt 우선 소스 코드를 보면 id와 pw를 받아 id를 뽑아오는 쿼리가 있다.if($result[‘id’]) solve(“gremlin”); 즉, id값이 있으면 그냥 문제가 풀린다. 따라서 그냥 쿼리문이 실행되기만 하면 된다.SQL injection의 제일 기본, 기초가 된다는 id값을 무조건 참값으로 만들어주기‘or’1’=’1’# ‘or’1‘=’1‘--이런 식으로 id에 참값을 만들고 pw부분은 --나 #으로 주석처리를 해준다.php?id=’or’1’=’1’%23이라고 입력하면 된다. 처음에 #이라고 했는데 왜인지 안 먹혀서 그냥 %23으로 했더니 되었다 더보기