WarGame
[LOSI] Lord of SQL Injection Level 36 - Cyclops
키클롭스를 만났다. 싸이클롭스라고도 읽더라. 그리스 신화에 등장하는 거인인데, 눈이 한쪽밖에 없다. 얘는 눈 건강부터 챙겨야 되겠다. 안대 같은 것도 못쓸 테니 말이다. 코드 URL을 보아서는 Mod seucrity(WAF)가 적용되어 있으며 id와 pw에 대해서 prob, 언더바(_) 등 국룰을 차단하고 있다. 해결을 위해서는 id에 first와 pw에 second를 가져오면 성공이다. 주석으로 union select를 사용하여야 한다고 이 몬스터를 잡을 힌트를 준다. 해결방법 Answer Url : modsec.rubiya.kr/chall/XXXX.php?id=1%27&pw=union%20--%20%0a%0ddistinct%20select%200x6669727374,%200x7365636f6e64%2..
[LOSI] Lord of SQL Injection Level 35 - Godzilla
갓-질라. 한국에서 '갓'이라는 접두어는 뭔가 엄청난 것에게 부여된다. 이번에 풀어볼 몬스터는 얼마나 대단한지, 코드를 통해서 알아보자 코드 blind sql injection이다. 정확한 pw를 요청하고 있고, query의 결과를 알 수 있는 특정한 조건문이 있다. 혹시? try : ?id=%27%20or%20id=%27admin%27 이제 익숙해지자... WAF가 또 사용되었다. 해결방법 Answer Url : modsec.rubiya.kr/chall/XXXX.php?pw=a18a6cc5 import string from requests import get if __name__=="__main__" : url = "### GODZILLA의 URL ###" cookie = dict(PHPSESSID =..
[LOSI] Lord of SQL Injection Level 34 - Death
Death에는 사신이라는 의미도 있다. 그니까 "죽음"그 자체가 아니라, 사신을 만난 것이다. 아래 우리나라 사신은 아니지만, 그러려니 하고 코드로 넘어가 보자 코드 필터링되는 문자열은 전달되는 2개의 파라미터에 대해 다음과 같다. 언더바(_), 점(.), admin, 이스케이프(\) 이걸 뚫고, PW는 md5로 해싱한 결과와 비교한다. 혹시? try : ?id=' or id=0x61646d696e-- ; 쳇... WAF 썼으면 이야기 좀 해주지.... 해결방법 Answer Url : modsec.rubiya.kr/chall/XXXX.php?id=-1%27%3C@=1%20OR%20id%3C%27admio%27%20OR%20%27 저번 시간에 사용한 WAF 우회 법을 다시 들고 오자 즉 일 번에도 사용할 ..
[LOSI] Lord of SQL Injection Level 33 - Cthulhu
크툴루다. 크툴루 신화를 모르는 사람은 어떡하라고.... 러브크래프트의 코즈믹 호러 신화에 나오는 가상의 존재이다. 위엄과는 다르게 이번 문제에서는 비겁하게 출몰한다. 코드를 확인해보자 코드 아이구... 영어 잘 못하는데, 위에 영어가 많다. 한번 읽어보면 Paranoia level 1의 ModSecurity Core Rule Set v3.1.0으로 WAF(Web Application Firewall)이 보호한다고 되어있다.(비겁하다! 크툴루! 방화벽 뒤에 숨어서!) 링크를 눌러보면 OWASP Mod Security홈페이지가 나온다. 해결방법 Answer Url : modsec.rubiya.kr/chall/XXXX.php?id=-1'
[LOSI] Lord of SQL Injection Level 32 - Alien
귀여운 외계 생물 이미지를 기대한 독자들에게 미안하지만, 필자는 프로메테우스를 너무 재미있게 봤다. 에일리언 시리즈의 광팬 중 한 명이다. 코드 코드를 보면 아래와 같은 각종 예약어들이 막혀있다. 금지당한 예약어 : administrator, and, or, if, coalesce, case, 언더바(_), 점(.), prob, time query는 두 가지가 동작하고 있는데, query1은 파라미터가 작은따옴표 처리되어있지 않고, query2는 작음 따옴표 처리되어있으며 각각 두 가지의 조건문을 통과하여야만 solve("alien")이 호출된다. * coalesce는 주어진 파라미터(여러 개 들어갈 수 있다.)에서 NULL이 아닌 첫 값을 반환한다.... 뭘 막으려고 한 거지? 지X맞다. 여러 가지 시..
[LOSI] Lord of SQL Injection Level 31 - Zombie
으어어어어어ㅓ어엉ㅇ..ㅓㅓㅓㅓㅓ.....어어어ㅓㅓㅓㅓ...ㅓㅓ ㅋ........ㅗ....ㄷ.........ㅡ..ㄹ.....ㅡ...ㄹ.....ㅂ..........ㅈ.......ㅏ...... 코드 이번시간에는 저번과 비슷한데, rollup, join, ace가 금지되어있다. 역시 정확한 PW가 필요하다. ace.... 아마 REPL"ace"를 금지하겠다는 거니까 QUINE은 사용치 못하겠다. * 참 저번시간 이야기하지 않았는데, rollup은 group by와 같이 사용되는 함수로 그룹별 결과뿐만이 아니라 집계까지 보여준다. 혹시나??? try1 : ?pw=' or 1=1-- ; 역시 테이블이 텅 비어있다. 으으응어어ㅓ어어어어어ㅜㅡㅊ어어엉........해......ㄱ...ㅕ..ㄹ.......ㅂ.....ㅏㅇ...