본문 바로가기

Web Hacking/Lord of SQLInjection

(11)
[Lord of SQLInjection] 3번 goblin write up 이번 문제는 no에 값을 받고 있으며 ', ", `를 추가적으로 필터링하고 있다. 우선 id가 admin일때 문제가 해결된다. 현재 코드상엔 id가 guest로 코딩되어 있으므로 or를 이용하여 앞 조건문을 거짓으로 만든 후 id에 admin을 입력하면 된다. no에 1을 줬더니 guest가 참이 됐다. admin의 no를 막 입력해봤는데, 풀렸다 ㄷㄷ.. 정석 풀이 👇 1. char 함수 이용 char함수에 아스키 코드값을 주면 문자열을 반환환다. 2. 16진수 이용 admin의 16진수를 입력하여 우회하였다.
[Lord of SQLInjection] 2번 cobolt write up 1번 문제와 마찬가지로 id와 pw를 get 방식으로 입력 받고 있다. 필터링 하는 문자들도 똑같다! 다만 다른점이 있다면 pw를 md5 해시화 시켜 비교하고 있기 때문에 pw에서 싱글쿼터 탈출은 불가능해 보인다. 문제는 id가 admin일 경우 해결된다. id=admin%23을 이용하여 해결했다.
[Lord of SQLInjection] 1번 gremlin write up get 방식으로 id와 pw를 입력받고 있다. 정규표현식 필터링으론 "prob", "_", ".", "(", ")" 을 id와 pw 동일하게 필터링 중이다. select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}' 👆 위와 같은 쿼리문이 참이 될경우 문제는 해결되기 때문에 위 조건식을 참으로 만들면 된다. a' or 1=1 # 👆 위 문자열을 id에게 넘겨주어 조건식을 항상 참으로 만든 후 뒷 부분을 주석처리 하였지만 풀리지 않았다. 주석을 #말고 --%09를 이용하여 해봤다. (--이후에는 공백이 나와야 주석처리가 된다.) 클리어! #이 안풀린 이유는 URL Encoding을 안해주었기 때문 위 사진은 URL Encoding을 하지..