Yozzang의 해킹일기 💻
article thumbnail
Lord of SQLInjection (16. succubus)

이번 포스트에서는 Lord of SQLInjection의 succubus문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), '를 필터링한 것을 알 수 있다. 또한 id값이 존재할 때만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 해당 문제는 역슬래시(\)를 활용하여 id의 두번째 '(싱글쿼터)를 문자로 만들어서 풀 수 있다. ### 사용할 공격문 : id=\&pw= or 1 %23 ### 실행 결과 : ## 추가 해석 : 쿼리문 : id='\' and pw=' or 1 #' 해당 쿼리문을 역슬래시(\)를 이용하여 뒤에 오는 '(싱글 쿼터)를 문..

article thumbnail
Lord of SQLInjection (15. assassin)

이번 포스트에서는 Lord of SQLInjection의 assassin문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 '를 필터링한 것을 알 수 있다. 또한 id값이 admin일때만 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 해당 문제는 "%"와 "_"를 활용하여 풀어낼 수 있다. %, _ %a : a로 끝나는 문자열 a%: a로 시작하는 문자열 %a%: a가 포함된 문자열 _%: 임의의 글자로 시작하는 문자열 ### 사용할 공격문 : pw=9% ### 실행 결과 : Hello guest가 출력된 것을 보아 guest의 비밀번호는 9로 시작하는 것을 알 수 있다. 이렇..

article thumbnail
Lord of SQLInjection (14. giant)
Wargame/Lord of SQLInjection 2022. 5. 31. 00:07

이번 포스트에서는 Lord of SQLInjection의 giant문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 공백, \n, \r, \t를 필터링한 것을 알 수 있고, shit의 문자열 길이가 1보다 크면 안되다는 것을 알 수 있다. 또한 반환된 "1234"라는 값이 있어야 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 해당 문제는 from과 prob_gaint 사이에 공백을 하나 넣으면 해결할 수 있다. 여기서는 Tab문자의 우회법인 "vertical tab"을 활용하여 풀어보겠다. ### 사용할 공격문 : shit=%0b ### 실행 결과 : 공격에 성공한 것을..

article thumbnail
Lord of SQLInjection (13. bugbear)
Wargame/Lord of SQLInjection 2022. 5. 30. 00:33

이번 포스트에서는 Lord of SQLInjection의 bugbear문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), ', substr, ascii, =, or, and, 공백, like, 0x를 필터링한 것을 알 수 있다. 또한 id "admin"의 pw값을 알아야 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선, 필터링된 문자들을 우회하면서 pw의 길이를 알아낸 쿼리문을 작성해보겠다. ### 사용할 공격문 : no=1%09||%09instr(id,"admin")%09%26%26%09length(pw)%09>%097 ### 실행 결..

article thumbnail
Lord of SQLInjection (12. darkknight)
Wargame/Lord of SQLInjection 2022. 5. 28. 00:38

이번 포스트에서는 Lord of SQLInjection의 darkknight문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), ', substr, ascii, =를 필터링한 것을 알 수 있다. 또한 id "admin"의 pw값을 알아야 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선, 필터링된 문자들을 우회하면서 pw의 길이를 알아낸 쿼리문을 작성해보겠다. ### 사용할 공격문 : no=1 or instr(id, "admin") and length(pw) > 7 ### 실행 결과 : "Hello admin"이 출력된 것을 보아 pw의 길..

article thumbnail
Lord of SQLInjection (11. golem)
Wargame/Lord of SQLInjection 2022. 5. 27. 00:58

이번 포스트에서는 Lord of SQLInjection의 golem문제에 대해 다루겠다. 문재를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, ), ir, and, substr, =를 필터링한 것을 알 수 있다. 또한 id "admin"의 pw값을 알아야 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선, 필터링된 문자들을 우회하면서 pw의 길이를 알아낸 쿼리문을 작성해보겠다. ### 사용할 공격문 : pw=' || instr(id, "admin") %26%26 length(pw) > 7 %23 ### 실행 결과 : "Hello admin"이 출력된 것을 보니 pw의 ..

article thumbnail
Lord of SQLInjection (10. skeleton)
Wargame/Lord of SQLInjection 2022. 5. 25. 00:15

이번 포스트에서는 Lord of SQLInjection의 skeleton 문제를 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 prob, _, ., (, )를 필터링한 것을 알 수 있다. 쿼리문의 마지막 부분에 and 1=0이 붙어있는 것을 보면 해당 쿼리는 무조건 False가 반환한다는 것을 알 수 있다. 또한 id값이 admin이 될때만 문제를 해결하는 것으로 보인다. ## 문제 풀이 : 우선 id를 admin으로 바꿔야 하기 때문에 id 바꾸는 공격문을 먼저 삽입한다. ### 사용할 공격문 : pw=' or id = 'admin ### 실행 결과 : id값은 바뀌었지만 쿼리문 뒤에 붙어 있는..

article thumbnail
Lord of SQLInjection (9. vampire)
Wargame/Lord of SQLInjection 2022. 5. 22. 00:24

이번 포스트에서는 Lord of SQLInjection의 vampire문제를 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 '를 필터링하고 있으며, strtolower() 함수를 통해 입력된 값을 소문자로 바꾸고, str_replace() 함수를 통해 admin을 공백으로 바꾼 것을 알 수 있다. 또한 id값이 admin일때만 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : 우선 ADMIN을 넣어서 시도해보겠다. ### 사용할 공격문 : id=ADMIN ### 실행 결과 : 화면에 변화가 없다. 즉, 우리가 입력한 ADMIN이 admin으로 변경된 다음에 str_replace()에..

article thumbnail
Lord of SQLInjection (8. troll)
Wargame/Lord of SQLInjection 2022. 5. 21. 00:14

이번 포스트에서는 Lord of SQLInjection의 troll문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 통해 '와 admin을 필터링한 것을 알 수 있다. 또한 id값이 admin일때 해당 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : php코드의 6번째 줄을 보면 admin이 필터링 되어있지만, admin을 대소문자 구분하면서 필터링한 것은 아닌 것으로 보아 admin의 대문자로 시도해보겠다. ### 사용할 공격문 : id=ADMIN ### 실행 결과 :

article thumbnail
Lord of SQLInjection (7. orge)
Wargame/Lord of SQLInjection 2022. 5. 20. 00:41

이번 포스트에서는 Lord of SQLInjection의 orge문제에 대해 다루겠다. 문제를 클릭하면 다음과 같이 쿼리와 php코드가 표시된 화면을 볼 수 있다. ## 문제 해석 : 해당 문제는 preg_match() 함수를 사용하여 prob, _, ., (, ), or와 and를 필터링한 것을 알 수 있다. 또한 id 값만 있는 경우 Hello $id를 출력하고, pw값이 있어야 문제를 해결할 수 있는 것으로 보인다. ## 문제 풀이 : Blind SQL Injection 기법을 통해 풀어보고자 한다. pw를 알아야 하기 때문에 먼저 pw의 길이를 알아야한다. 참고로 OR연사자의 기로가 ||이고, AND연사자의 URL 인코딩 문자는 %26이며, 주석(#)의 URL 인코딩 문자는 %23이다. ### 사..