전체 글(303)
-
troll
안녕하세요 이번시간에는 troll을 풀어보겠습니다 아직 공부를 하는 입장이니 틀린 것이있더라도 양해부탁드리겠습니다 소스코드를 보니 위 같은 화면이 나왔습니다 일단 기존껀 동일하고 id가 admin이면은 클리어 되는 것 같습니다 preg_match함수로 ', admin을 검열을 해주는데 여기서 중요한 부분이 i옵션인데 i옵션은 대소문자 구분없이 검열을 해줍니다 하지만 admin부분에 preg_match함수에서는 i의 옵션이 없기 때문에 소문자 admin만 검열을 해주고 대소문자를 섞어쓰면 클리어 될 것 같습니다
2022.04.01 -
orge
이번시간에는 orge을 풀어보겠습니다 아직 공부하는 입장이니 틀린 것이 있더라도 양해부탁드리겠습니다 소스코드를 보니 이번에도 preg_match함수로 or, and를 검열해줍니다 addslashes함수로 '를 문자로 만들어 버리기 때문에 sql injection공격이 불가능할 것 같습니다 쿼리문의 pw값과 입력한 pw값이 정확히 일치해야 클리어되기때문에 정확한 pw의 값을 알아내야 될 것 같습니다 따라서 orc문제와 마찬가지로 blind sql injection을 이용해야될 것 같습니다 접근방법은 먼저 length 함수를 통해 pw의 길이를 구하고 길이가 맞다면 Hello admin을 출력하고 substr 함수를 통해 pw에 들어있는 문자열을 추출며 0-9, a-z, A-Z순으로 대입하겠습니다 이것 역시..
2022.03.31 -
darkelf
이번시간에는darkelf을 풀어보겠습니다 아직 공부하는 입장이라서 틀린 것이 있더라도 양해부탁드리겠습니다 소스코드를 보니 이번에는 preg_match함수를 통해 or, and를 대소문자 구분없이 get방식으로 받은 pw값에 이 값들이 있다면 HeHe를 띄우고 종료하기 때문에 or, and를 사용을 못할 것 같습니다 그리고 전 문제와 마찬가지로 id값이 admin이면 클리어입니다 접근방법을 생각해봤는데 or, and를 사용할 수 없다면 ||, &&는 사용이 가능할 것 같다는 생각이 들었습니다 전 문제와 같이 id='guest' and pw=''을 false로 만든 get방식이기 때문에 url에 값을 넣어주어야 되기 때문에 || 을 url인코딩 하여 넣어주겠습니다(%7c%7c) 그리고 id='admin을 넣..
2022.03.31 -
wolfman
이번시간에는 wolfman을 풀어보겠습니다 아직 공부하는 입장이라 틀린것이 있더라도 양해부탁드리겠습니다 먼저 첫번째 preg_match함수를 사용하여 prob _ . ( )이 있으면 No Hack ~_~ 이라 출력을 해주고 두번째 preg_match함수에서 공백이 있으면 No whitespace ~_~라고 출력을해줍니다 prob_wolfman테이블에서 get방식으로 받아온 pw값과 id가 guest인 id값을 query에 저장을하고 id값이 있다면 Hello와 해당 id값을 가진 데이터를 출력해줍니다 그리고 id값이 admin이라면 클리어입니다 이번에는 공백을 검열기때문에 공백 문자(%20)을 사용을 못할 것 같습니다 접근방법은 공백문자 우회를 하여 id값이 admin으로만 만들어 주면 될 것 같습니다 ..
2022.03.31 -
ORC
이번시간에는 orc을 풀어보겠습니다 아직 공부하는 입장이라 틀린 것이 있더라도 양해부탁드립니다 orc을 들어가니 위의 소스코드가 나옵니다 이번에는 addslashes함수로 pw를 변환해서 기존에 '를 넣어 sqlinjection한 방법으로는 접근이 못할것 같습니다 또한 쿼리문에서 받는 id값인 $result['pw']와 get으로 받아온 pw가 일치해야 풀리는 것이 중요해 보입니다 * addslashs() : 특수문자를 포함한 문자열에 \[역슬레쉬]를 넣어주어 오류최소화 * 결국 pw의 정확한 값을 찾아내야 되는데 찾아보니 이럴때에는 blind sql injection이라는 것을 사용해야됩니다 * blind sql injection : 찾고자하는 정보를 직접적으로 알수 없을때 true, false값을 활..
2022.03.31 -
GOBLIN
이번시간에는 GOBLIN에 대하여 작성하겠습니다 아직 공부하는 입장이니 틀린 것이 있더라도 양해부탁드리겠습니다 소스코드를 보니 $db변수에 db를 연결해서 저장을 하고있고 preg_match함수를 통해 get으로 받은 no값중에 /prob, _, ., (, ) 가 있으면 No Hack ~_~을 출력하고 두번째 preg_match함수는 get으로 받은 no값중에 ', ", ` 가 있으면 No Quotes ~_~을 출력합니다 $query에 prob_goblin 테이블에서 get으로 받은 id값이 guest이고 get으로 받은 id값을 no에 대입하여 일치는 id값을 저장을 합니다. 그리고 $result의 id값이 있다면 Hello result[id]값 출력하고 id값이 admin이라면 클리어입니다 정리하면 ..
2022.03.29