Wargame/Webhacking.kr Writeup5 Webhacking.kr - New: NotSQL Writeup 오늘은 webhacking.kr 전 문제들이 아닌, 최근에 올라오기 시작한 새로운 문제들 중 하나를 골라서 풀어보았다. 문제 제목도 NotSQL인거 보니 nosql에 관한 문제 같아 보였다. 우선 접속 해보자 심플한 초기화면이다. 첫번째 라인 링크를 누르면 no=1 이 붙으면서 첫번째 사진이 나오고, 두번째 라인 링크를 누르면 no=2 가 붙으면서 두번째 사진이 나온다. 페이지에는 딱히 단서가 없어보이니 소스코드를 살펴 보자. 아무래도 이 게시판을 view 시켜주는 php 파일 경로는 /view.php 인 것 같다. 거기에 graphsql 에서 사용하는 쿼리를 query 라는 이름의 파라미터로 입력받고 그에 해당하는 게시글을 보여주고 있다. 해당 경로로 가서 쿼리를 직접 입력한 후 보내보자. /view... 2021. 7. 23. Webhacking.kr old-50 Write up SQL INJECTION 공격으로 lv 3을 select 해야한다. 제일 처음 생각나는 공격 구문은 ~~~ where id='' or lv=3#' 이었다. 따라서 id=' or lv=3#' 1차 공격 쿼리 id=%27%20||%20lv%3D3%23%27 하지만 여기서 addslashes(), 띄어쓰기 필터링, = 필터링 등을 bypass 하는 구문으로 바꿔야한다. 따라서 싱글쿼터(%27)앞에 %bf 붙여주고, %20 -> %0a 로 바꿔주었다. 2차 공격 쿼리 id=%bf%27%7C%7Clv%0alike%0a%bf%273%bf%27%23%bf%27 하지만 Wrong이 출력 되었다. 소스코드를 다시 보면, 데이터가 없을 때 Wrong이 출력되는 것으로 보아, union select 로 꺼내야 할 것 같다... 2021. 7. 22. Webhacking.kr old:22 Write up 로그인 페이지와 회원가입 페이지가 있었는데, 로그인 페이지 username 부분에 Blind Sql injection이 터지는 것 같았다. 이유 : admin' and 1=1# --> 참인값 입력 시 Wrong password! 나옴 admin' and 1=2# --> 거짓인 값 입력 시 Login Fail! 나옴 위 구문을 기반으로 파이썬 코드를 작성했다. 위에 사용된 SQL 구문은 admin' and ascii(substring(pw,1,1))=97# 이다. 간단히 분석하면, [ pw의 첫번째 글자의 아스키 코드 = 97 ] 인지 비교하는 구문이다. 만약 이게 참이라면 Wrong password 라는 문구가 출력되므로, 참일 때 해당 문자를 출력하게 했다. 저 hash값을 온라인 디코더로 디코딩하면,.. 2021. 7. 16. Webhacking.kr :old-9 Write up 문제 시작부터 no 파라미터에 BLIND SQL INJECTION 냄새가 폴폴난다. no에 다른 값을 주면 아무것도 출력 되지 않는다. 필터링이 강하게 걸려있어서 몇 가지 우회를 해주었다. (‘ “ = ascii hex ord 등등 필터링 되어있다.) no 는 where 절에 포함될 것이므로 if 구문 사용해서 blind sql을 시도해본다. no3의 id가 password라고 했으므로 id 를 뽑아내보자. if구문 → if(조건,참일때,거짓일때) 따라서 위의 구문은 id 길이가 5이면 Apple 아니면 아무것도 출력하지 않는다. 라는 뜻이다. Apple 이 출력 되었으므로 id 길이는 5? 라고 생각했으나 헷갈려서 바보짓 반복.. if 구문이 끝나고 참이 떨어졌으므로, no 에는 1이 들어간다. 즉, .. 2021. 7. 6. 이전 1 2 다음