webhacking.kr3 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. 이전 1 다음