워게임,CTF/lord of sql injection 8

[ lord of sql injection ] darkelf write up

이번에는 darkelf 문제를 풀어볼 것이다. darkelf는 prob 과 _ 을 필터링하고 있고특이하게 or와 and를 필터링하고 있다.어떻게 하면 좋을까...... 저번 wolfman에서 썼던 방법처럼 or 1=1 같은 논리를 적용해야 prob_을 우회할 수 있다.직접 select 구문을 쓰려고 하면 prob_을 우회하기 쉽지 않기 때문이다. or을 우회할 방법을 찾다가&& > and 우회|| > or 우회가 가능하다는 것을 알았다. || 를 이용해서 '1'='1 구문을 삽입하니 where 조건이 참이 되면서Hello guest 가 출력되는 것을 볼 수 있다. 이제 조건문을 id='admin'을 출력하도록 조절만 해주면 된다.  '1'='1 대신 id='admin 을 삽입해주니 문제가 풀렸다.

[워게임] Lord of SQL Injection 5번 문제 - wolfman

이번 문제는 이름이 늑대인간이다..  문제 형태를 보니 php 뒤에 pw 파라미터로 쿼리를 전달해주면 되는 것 같다. 이 문제의 제한 조건을 보니 preg_match 함수로 prob과 _ , . , \ 과 같은 특수문자 및 문자열을 막아놨다.공백도 쓰면 안된다고 한다.  공백을 그냥 주지 않고 %09를 이용해 삽입했더니 공백적용이 되었다. 공백 필터링을 이걸로 우회하면 될 것 같다 그 후, or 를 이용해 1=1를 주고 뒤는 주석처리를 해줬더니 조건문이 참이 되어 guest가 출력된 것을 알 수 있다.그런데 mysql은 and가 or 보다 연산 순위가 높아 id='guest'와 pw='test'가 먼저 처리된 후, 1=1이 처리되었을 것이다.그럼 사실상 앞의 id='guest'는 없어진 것이나 다름없으므..

[lord of sql injection] dark_eyes writeup

오늘 풀어볼 문제는 dark_eyes 이다. lord of sql injection은 가상 머신을 킬 필요도 없고 간편하게 풀 수 있지만 간단해보이는 이면에 시간이 굉장히 오래 걸린다 ㅠ 문제는 요렇게 생겼다. if나 case when 같은 조건문 구문이 막혀있어 이를 우회하여 문제를 풀어야 할 것 같다.  pw=1을 테스트삼아 넣어보자. 그 이후 1' 을 넣어보면 구문이 문법에 맞지 않아 exit()가 실행되어 아무것도 출력되지 않는다. 주석으로 뒤 따옴표를 없애주니 잘 출력된다. 이전 문제에서도 봤듯이 error based가 아니라도 에러가 발생하는상황을 통해 참/거짓을 구분할 수 있는 error based blind sql injection을 실행할 수 있을 것 같다. 그럼 참일 때는 정상적인 구문..

[lord of sql injection] goblin writeup

워게임 문제를 풀다가preg_match라는 필터링 함수를 만났습니다. 사용법은 다음과 같습니다.$matches 뒤에 PREG_OFFSET_CAPTURE를 쓰는 유형도 존재합니다. 대조할 문자를 슬래시를 붙여서 기입하면 됩니다. 그런데 특수문자를 필터링 할 때는특수문자 앞에 \를 붙입니다./ \ ' / 이런식으로 하면 됩니다. 대조할 문자 다음 /대조할 문자/i 이런식으로 i 가 붙을 수 있는데 이럴 때는 대문자와 소문자를 구분하지 않겠다는 소리입니다. php 함수 내에 선언된 $matches는 대조할 문자와 입력한 문자가 같아서 검거가 되면 $matches에 저장하게 하는 저장소 역할을 합니다. 검거된 문자는 배열 형태로 저장됩니다. 전체 문자열 star 라는 열에서 s 와 r 이 검거되었다면 s와 r이..

[lord of sql injection] gremlin, cobolt writeup

워게임 중에서도 sql injection에 특화되어 만들었다는 lord of sql injection을 한번 풀어보겠습니다. 던전같이 생겨가지고 문제이름도 몬스터 이름입니다. SQL Injection을 통해 몬스터를 처치하는 컨셉의 워게임이 되겠습니다 ㅋㅋㅋ 던전에 입장한 후, enter to the dungeon을 누르고 로그인을 해줍니다.  Gremlin1번 문제는 gremlin이네요. 그렘린 처치하러 가볼까요? 들어가면 php 소스코드가 그대로 나와있고 GET 방식으로 id와 pw를 받고 있습니다. id와 pw 부분이 모두 참 값이 되야하므로 따옴표와 '1'='1 을 활용하여 참 값을 맞춰주니 gremlin clear!라는 글귀가 나왔습니다. 주석처리를 이용해서 URL에 %23을 전송해도 pw값을 ..